edits
[iotcloud.git] / version2 / src / C / CloudComm.cc
index 82982ba9572648c258ae075cd00a2003b165556b..4674af20020647036b4eb799866dc8da96e9725a 100644 (file)
@@ -113,7 +113,7 @@ void CloudComm::setSalt() {
        }
 
        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++) {
@@ -237,9 +237,9 @@ Array<char> *CloudComm::encryptSlotAndPrependIV(Array<char> *rawData, Array<char
                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);
 
@@ -291,17 +291,17 @@ Array<Slot *> *CloudComm::putSlot(Slot *slot, int max) {
                }
 
                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);
 
@@ -343,7 +343,7 @@ Array<Slot *> *CloudComm::putSlot(Slot *slot, int 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();
 
@@ -411,7 +411,7 @@ Array<Slot *> *CloudComm::getSlots(int64_t sequencenumber) {
                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();
@@ -444,15 +444,15 @@ Array<Slot *> *CloudComm::processSlots(DataInputStream dis) {
 
        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);
 
@@ -471,16 +471,16 @@ Array<char> *sendLocalData(Array<char> *sendData, int64_t localSequenceNumber, S
                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);
@@ -496,7 +496,7 @@ Array<char> *sendLocalData(Array<char> *sendData, int64_t localSequenceNumber, S
                output->flush();
 
                int lengthOfReturnData = input->readInt();
-               char[] returnData = new char[lengthOfReturnData];
+               Array<char> *returnData = new char[lengthOfReturnData];
                input->readFully(returnData);
 
                timer->endTime();
@@ -509,14 +509,14 @@ Array<char> *sendLocalData(Array<char> *sendData, int64_t localSequenceNumber, S
                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;
@@ -554,7 +554,7 @@ void CloudComm::localServerWorkerFunction() {
 
                        // 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();
@@ -564,31 +564,31 @@ void CloudComm::localServerWorkerFunction() {
                        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();