localSequenceNumber(_localSequenceNumber) {
}
+Slot::~Slot() {
+ if (hmac != NULL)
+ delete hmac;
+ delete prevhmac;
+ for(uint i=0; i< entries->size(); i++)
+ delete entries->get(i);
+ delete entries;
+}
+
Entry *Slot::addEntry(Entry *e) {
e = e->getCopy(this);
entries->add(e);
bb->get(prevhmac);
if (!realmac->equals(hmac))
throw new Error("Server Error: Invalid HMAC! Potential Attack!");
-
+ delete realmac;
+
int64_t seqnum = bb->getLong();
int64_t machineid = bb->getLong();
int numentries = bb->getInt();
for (int i = 0; i < numentries; i++) {
slot->addShallowEntry(Entry_decode(slot, bb));
}
-
+ bb->releaseArray();
+ delete bb;
return slot;
}
+char Slot::getType() {
+ return TypeSlot;
+}
+
Array<char> *Slot::encode(Mac *mac) {
Array<char> *array = new Array<char>(SLOT_SIZE);
ByteBuffer *bb = ByteBuffer_wrap(array);
hmac = realmac;
bb->position(0);
bb->put(realmac);
+ bb->releaseArray();
+ delete bb;
return array;
}