}
try {
- char[] saltTmp = new char[SALT_SIZE];
+ Array<char> *saltTmp = new char[SALT_SIZE];
random->nextBytes(saltTmp);
for (int i = 0; i < SALT_SIZE; i++) {
Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding");
cipher->init(Cipher.ENCRYPT_MODE, key, ivSpec);
- char[] encryptedBytes = cipher->doFinal(rawData);
+ Array<char> *encryptedBytes = cipher->doFinal(rawData);
- char[] chars = new char[encryptedBytes->length + IV_SIZE];
+ Array<char> *chars = new char[encryptedBytes->length + IV_SIZE];
System.arraycopy(ivBytes, 0, chars, 0, ivBytes.length);
System.arraycopy(encryptedBytes, 0, chars, IV_SIZE, encryptedBytes.length);
}
int64_t sequencenumber = slot->getSequenceNumber();
- char[] slotBytes = slot->encode(mac);
+ Array<char> *slotBytes = slot->encode(mac);
// slotBytes = encryptCipher.doFinal(slotBytes);
- // char[] iVBytes = slot.getSlotCryptIV();
+ // Array<char> * iVBytes = slot.getSlotCryptIV();
- // char[] chars = new char[slotBytes.length + IV_SIZE];
+ // Array<char> * chars = new char[slotBytes.length + IV_SIZE];
// System.arraycopy(iVBytes, 0, chars, 0, iVBytes.length);
// System.arraycopy(slotBytes, 0, chars, IV_SIZE, slotBytes.length);
- char[] chars = encryptSlotAndPrependIV(slotBytes, slot->getSlotCryptIV());
+ Array<char> *chars = encryptSlotAndPrependIV(slotBytes, slot->getSlotCryptIV());
url = buildRequest(true, sequencenumber, max);
timer->startTime();
InputStream is = http->getInputStream();
DataInputStream dis = new DataInputStream(is);
- char[] resptype = new char[7];
+ Array<char> *resptype = new char[7];
dis->readFully(resptype);
timer->endTime();
timer->startTime();
InputStream is = http->getInputStream();
DataInputStream dis = new DataInputStream(is);
- char[] resptype = new char[7];
+ Array<char> *resptype = new char[7];
dis->readFully(resptype);
timer->endTime();
for (int i = 0; i < numberofslots; i++) {
- char[] rawData = new char[sizesofslots[i]];
+ Array<char> *rawData = new char[sizesofslots[i]];
dis->readFully(rawData);
- // char[] data = new char[rawData.length - IV_SIZE];
+ // Array<char> * data = new char[rawData.length - IV_SIZE];
// System.arraycopy(rawData, IV_SIZE, data, 0, data.length);
- char[] data = stripIVAndDecryptSlot(rawData);
+ Array<char> *data = stripIVAndDecryptSlot(rawData);
// data = decryptCipher.doFinal(data);
System.out.println("Passing Locally");
mac->update(sendData);
- char[] genmac = mac->doFinal();
- char[] totalData = new char[sendData->length + genmac->length];
+ Array<char> *genmac = mac->doFinal();
+ Array<char> *totalData = new char[sendData->length + genmac->length];
System.arraycopy(sendData, 0, totalData, 0, sendData.length);
System.arraycopy(genmac, 0, totalData, sendData.length, genmac->length);
// Encrypt the data for sending
- // char[] encryptedData = encryptCipher.doFinal(totalData);
- // char[] encryptedData = encryptCipher.doFinal(totalData);
- char[] iv = createIV(table->getMachineId(), table->getLocalSequenceNumber());
- char[] encryptedData = encryptSlotAndPrependIV(totalData, iv);
+ // Array<char> * encryptedData = encryptCipher.doFinal(totalData);
+ // Array<char> * encryptedData = encryptCipher.doFinal(totalData);
+ Array<char> *iv = createIV(table->getMachineId(), table->getLocalSequenceNumber());
+ Array<char> *encryptedData = encryptSlotAndPrependIV(totalData, iv);
// Open a TCP socket connection to a local device
Socket socket = new Socket(host, port);
output->flush();
int lengthOfReturnData = input->readInt();
- char[] returnData = new char[lengthOfReturnData];
+ Array<char> *returnData = new char[lengthOfReturnData];
input->readFully(returnData);
timer->endTime();
socket->close();
mac->update(returnData, 0, returnData->length - HMAC_SIZE);
- char[] realmac = mac->doFinal();
- char[] recmac = new char[HMAC_SIZE];
+ Array<char> *realmac = mac->doFinal();
+ Array<char> *recmac = new char[HMAC_SIZE];
System->arraycopy(returnData, returnData->length - realmac->length, recmac, 0, realmac->length);
if (!Arrays->equals(recmac, realmac))
throw new Error("Local Error: Invalid HMAC! Potential Attack!");
- char[] returnData2 = new char[lengthOfReturnData - recmac->length];
+ Array<char> *returnData2 = new char[lengthOfReturnData - recmac->length];
System->arraycopy(returnData, 0, returnData2, 0, returnData2->length);
return returnData2;
// Get the encrypted data from the server
int dataSize = input->readInt();
- char[] readData = new char[dataSize];
+ Array<char> *readData = new char[dataSize];
input->readFully(readData);
timer->endTime();
readData = stripIVAndDecryptSlot(readData);
mac->update(readData, 0, readData->length - HMAC_SIZE);
- char[] genmac = mac->doFinal();
- char[] recmac = new char[HMAC_SIZE];
+ Array<char> *genmac = mac->doFinal();
+ Array<char> *recmac = new char[HMAC_SIZE];
System->arraycopy(readData, readData->length - recmac->length, recmac, 0, recmac->length);
if (!Arrays->equals(recmac, genmac))
throw new Error("Local Error: Invalid HMAC! Potential Attack!");
- char[] returnData = new char[readData->length - recmac->length];
+ Array<char> *returnData = new char[readData->length - recmac->length];
System->arraycopy(readData, 0, returnData, 0, returnData->length);
// Process the data
- // char[] sendData = table->acceptDataFromLocal(readData);
- char[] sendData = table->acceptDataFromLocal(returnData);
+ // Array<char> * sendData = table->acceptDataFromLocal(readData);
+ Array<char> *sendData = table->acceptDataFromLocal(returnData);
mac->update(sendData);
- char[] realmac = mac->doFinal();
- char[] totalData = new char[sendData->length + realmac->length];
+ Array<char> *realmac = mac->doFinal();
+ Array<char> *totalData = new char[sendData->length + realmac->length];
System->arraycopy(sendData, 0, totalData, 0, sendData->length);
System->arraycopy(realmac, 0, totalData, sendData->length, realmac->length);
// Encrypt the data for sending
- // char[] encryptedData = encryptCipher->doFinal(totalData);
- char[] iv = createIV(table->getMachineId(), table->getLocalSequenceNumber());
- char[] encryptedData = encryptSlotAndPrependIV(totalData, iv);
+ // Array<char> * encryptedData = encryptCipher->doFinal(totalData);
+ Array<char> *iv = createIV(table->getMachineId(), table->getLocalSequenceNumber());
+ Array<char> *encryptedData = encryptSlotAndPrependIV(totalData, iv);
timer->startTime();