diff --git a/tester/message_tester.c b/tester/message_tester.c
index 0b9df872b..abdf8edf2 100644
--- a/tester/message_tester.c
+++ b/tester/message_tester.c
@@ -965,170 +965,174 @@ static void printHex(char *title, uint8_t *data, size_t length) {
}
static void lime_unit(void) {
- const char* PLAIN_TEXT_TEST_MESSAGE = "Ceci est un fabuleux msg de test à encrypter";
- int retval;
- size_t size;
- uint8_t *cacheBufferString;
- xmlDocPtr cacheBufferAlice;
- xmlDocPtr cacheBufferBob;
- uint8_t *multipartMessage = NULL;
- uint8_t *decryptedMessage = NULL;
- xmlChar *xmlStringOutput;
- int xmlStringLength;
- limeURIKeys_t associatedKeys;
- int i;
- limeKey_t associatedKey;
- uint8_t targetZID[12] = {0x00, 0x5d, 0xbe, 0x03, 0x99, 0x64, 0x3d, 0x95, 0x3a, 0x22, 0x02, 0xdd};
- uint8_t senderZID[12] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0};
- uint8_t encryptedMessage[1024];
- uint8_t plainMessage[1024];
- uint8_t receiverZID[12];
- xmlDocPtr cacheBuffer;
- FILE *CACHE;
-
- /**** Low level tests using on cache file to extract keys, encrypt/decrypt ****/
- /**** use functions that are not directly used by external entities ****/
-
- /* create and load cache file */
- CACHE = fopen_from_write_dir("ZIDCache.xml", "wb");
- fprintf (CACHE, "\nef7692d0792a67491ae2d44e005dbe0399643d953a2202dd9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899pipo1@pipo.com963c57bb28e62068d2df23e8f9b771932d3c57bb28e62068d2df23e8f9b7719305d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b771935f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719302ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000069000001e8011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899pipo1@pipo.com123456789012345678901234567890123456765431262068d2df23e8f9b7719325d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b77193000000010000000001");
- fclose(CACHE);
- CACHE = fopen_from_write_dir("ZIDCache.xml", "rb+");
- cacheBufferString = (uint8_t*) ms_load_file_content(CACHE, &size);
- *(cacheBufferString+size) = '\0';
- fclose(CACHE);
- /* parse it to an xmlDoc */
- cacheBuffer = xmlParseDoc(cacheBufferString);
- ms_free(cacheBufferString);
-
- /* get data from cache : sender */
- associatedKeys.peerURI = (uint8_t *)malloc(15);
- memcpy(associatedKeys.peerURI, "pipo1@pipo.com", 15);
- associatedKeys.associatedZIDNumber = 0;
- retval = lime_getCachedSndKeysByURI(cacheBuffer, &associatedKeys);
- BC_ASSERT_EQUAL(retval, 0, int, "%d");
- BC_ASSERT_EQUAL(associatedKeys.associatedZIDNumber, 2, int, "%d"); /* there are 2 keys associated to pipo1@pipo.com address in the cache above*/
- ms_message("Get cached key by URI, for sender, return %d keys", associatedKeys.associatedZIDNumber);
-
- for (i=0; ipeerZID, 12);
- printHex("key", associatedKeys.peerKeys[i]->key, 32);
- printHex("sessionID", associatedKeys.peerKeys[i]->sessionId, 32);
- ms_message("session index %d\n", associatedKeys.peerKeys[i]->sessionIndex);
+ if (lime_is_available()) {
+ const char* PLAIN_TEXT_TEST_MESSAGE = "Ceci est un fabuleux msg de test à encrypter";
+ int retval;
+ size_t size;
+ uint8_t *cacheBufferString;
+ xmlDocPtr cacheBufferAlice;
+ xmlDocPtr cacheBufferBob;
+ uint8_t *multipartMessage = NULL;
+ uint8_t *decryptedMessage = NULL;
+ xmlChar *xmlStringOutput;
+ int xmlStringLength;
+ limeURIKeys_t associatedKeys;
+ int i;
+ limeKey_t associatedKey;
+ uint8_t targetZID[12] = {0x00, 0x5d, 0xbe, 0x03, 0x99, 0x64, 0x3d, 0x95, 0x3a, 0x22, 0x02, 0xdd};
+ uint8_t senderZID[12] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0};
+ uint8_t encryptedMessage[1024];
+ uint8_t plainMessage[1024];
+ uint8_t receiverZID[12];
+ xmlDocPtr cacheBuffer;
+ FILE *CACHE;
+
+ /**** Low level tests using on cache file to extract keys, encrypt/decrypt ****/
+ /**** use functions that are not directly used by external entities ****/
+
+ /* create and load cache file */
+ CACHE = fopen_from_write_dir("ZIDCache.xml", "wb");
+ fprintf (CACHE, "\nef7692d0792a67491ae2d44e005dbe0399643d953a2202dd9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899pipo1@pipo.com963c57bb28e62068d2df23e8f9b771932d3c57bb28e62068d2df23e8f9b7719305d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b771935f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719302ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000069000001e8011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899pipo1@pipo.com123456789012345678901234567890123456765431262068d2df23e8f9b7719325d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b77193000000010000000001");
+ fclose(CACHE);
+ CACHE = fopen_from_write_dir("ZIDCache.xml", "rb+");
+ cacheBufferString = (uint8_t*) ms_load_file_content(CACHE, &size);
+ *(cacheBufferString+size) = '\0';
+ fclose(CACHE);
+ /* parse it to an xmlDoc */
+ cacheBuffer = xmlParseDoc(cacheBufferString);
+ ms_free(cacheBufferString);
+
+ /* get data from cache : sender */
+ associatedKeys.peerURI = (uint8_t *)malloc(15);
+ memcpy(associatedKeys.peerURI, "pipo1@pipo.com", 15);
+ associatedKeys.associatedZIDNumber = 0;
+ retval = lime_getCachedSndKeysByURI(cacheBuffer, &associatedKeys);
+ BC_ASSERT_EQUAL(retval, 0, int, "%d");
+ BC_ASSERT_EQUAL(associatedKeys.associatedZIDNumber, 2, int, "%d"); /* there are 2 keys associated to pipo1@pipo.com address in the cache above*/
+ ms_message("Get cached key by URI, for sender, return %d keys", associatedKeys.associatedZIDNumber);
+
+ for (i=0; ipeerZID, 12);
+ printHex("key", associatedKeys.peerKeys[i]->key, 32);
+ printHex("sessionID", associatedKeys.peerKeys[i]->sessionId, 32);
+ ms_message("session index %d\n", associatedKeys.peerKeys[i]->sessionIndex);
+ }
+
+ /* get data from cache : receiver */
+ memcpy(associatedKey.peerZID, targetZID, 12);
+ retval = lime_getCachedRcvKeyByZid(cacheBuffer, &associatedKey);
+ BC_ASSERT_EQUAL(retval, 0, int, "%d");
+ printHex("Got receiver key for ZID", targetZID, 12);
+ printHex("Key", associatedKey.key, 32);
+ printHex("sessionID", associatedKey.sessionId, 32);
+ ms_message("session index %d\n", associatedKey.sessionIndex);
+
+ /* encrypt/decrypt a msg */
+ lime_encryptMessage(associatedKeys.peerKeys[0], (uint8_t *)PLAIN_TEXT_TEST_MESSAGE, strlen(PLAIN_TEXT_TEST_MESSAGE), senderZID, encryptedMessage);
+ printHex("Ciphered", encryptedMessage, strlen((char *)encryptedMessage));
+ /* invert sender and receiverZID to decrypt/authenticate */
+ memcpy(receiverZID, associatedKeys.peerKeys[0]->peerZID, 12);
+ memcpy(associatedKeys.peerKeys[0]->peerZID, senderZID, 12);
+ retval = lime_decryptMessage(associatedKeys.peerKeys[0], encryptedMessage, strlen(PLAIN_TEXT_TEST_MESSAGE)+16, receiverZID, plainMessage);
+ BC_ASSERT_EQUAL(retval, 0, int, "%d");
+ BC_ASSERT_STRING_EQUAL((char *)plainMessage, (char *)PLAIN_TEXT_TEST_MESSAGE);
+ ms_message("Decrypt and auth returned %d\nPlain text is %s\n", retval, plainMessage);
+
+ /* update receiver data */
+ associatedKey.sessionIndex++;
+ associatedKey.key[0]++;
+ associatedKey.sessionId[0]++;
+ retval = lime_setCachedKey(cacheBuffer, &associatedKey, LIME_RECEIVER);
+ BC_ASSERT_EQUAL(retval, 0, int, "%d");
+
+ /* update sender data */
+ associatedKeys.peerKeys[0]->sessionIndex++;
+ associatedKeys.peerKeys[0]->key[0]++;
+ associatedKeys.peerKeys[0]->sessionId[0]++;
+ retval = lime_setCachedKey(cacheBuffer, associatedKeys.peerKeys[0], LIME_SENDER);
+ BC_ASSERT_EQUAL(retval, 0, int, "%d");
+
+ /* free memory */
+ lime_freeKeys(&associatedKeys);
+
+ /* write the file */
+ /* dump the xml document into a string */
+ xmlDocDumpFormatMemoryEnc(cacheBuffer, &xmlStringOutput, &xmlStringLength, "UTF-8", 0);
+ /* write it to the file */
+ CACHE = fopen_from_write_dir("ZIDCache.xml", "w+");
+ fwrite(xmlStringOutput, 1, xmlStringLength, CACHE);
+ xmlFree(xmlStringOutput);
+ fclose(CACHE);
+ xmlFreeDoc(cacheBuffer);
+
+ /**** Higher level tests using 2 caches to encrypt/decrypt a msg ****/
+ /* Create Alice cache file and then load it */
+ CACHE = fopen_from_write_dir("ZIDCacheAlice.xml", "wb");
+ fprintf(CACHE, "\nef7692d0792a67491ae2d44e005dbe0399643d953a2202dd9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:pauline@sip.example.org9111ebeb52e50edcc6fcb3eea1a2d3ae3c2c75d3668923e83c59d0f47245515060f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000080000001cf011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:pauline@sip.example.org72d80ab1cad243cf45634980c1d02cfb2df81ce0dd5dfcf1ebeacfc5345a917625d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000000f00000000");
+ fclose(CACHE);
+ CACHE = fopen_from_write_dir("ZIDCacheAlice.xml", "rb+");
+ cacheBufferString = (uint8_t *)ms_load_file_content(CACHE, &size);
+ *(cacheBufferString+size) = '\0';
+ fclose(CACHE);
+ /* parse it to an xmlDoc */
+ cacheBufferAlice = xmlParseDoc(cacheBufferString);
+ ms_free(cacheBufferString);
+
+ /* Create Bob cache file and then load it */
+ CACHE = fopen_from_write_dir("ZIDCacheBob.xml", "wb");
+ fprintf(CACHE, "\n005dbe0399643d953a2202ddef7692d0792a67491ae2d44e9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:marie@sip.example.org9111ebeb52e50edcc6fcb3eea1a2d3ae3c2c75d3668923e83c59d0f47245515060f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000080000001cf011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:marie@sip.example.org81e6e6362c34dc974263d1f77cbb9a8d6d6a718330994379099a8fa19fb12faa25d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000002e0000000001");
+ fclose(CACHE);
+ CACHE = fopen_from_write_dir("ZIDCacheBob.xml", "rb+");
+ cacheBufferString = (uint8_t *)ms_load_file_content(CACHE, &size);
+ *(cacheBufferString+size) = '\0';
+ fclose(CACHE);
+ /* parse it to an xmlDoc */
+ cacheBufferBob = xmlParseDoc(cacheBufferString);
+ ms_free(cacheBufferString);
+
+
+
+ /* encrypt a msg */
+ retval = lime_createMultipartMessage(cacheBufferAlice, (uint8_t *)PLAIN_TEXT_TEST_MESSAGE, (uint8_t *)"sip:pauline@sip.example.org", &multipartMessage);
+
+ BC_ASSERT_EQUAL(retval, 0, int, "%d");
+ if (retval == 0) {
+ ms_message("Encrypted msg created is %s", multipartMessage);
+ }
+
+ /* decrypt the multipart msg */
+ retval = lime_decryptMultipartMessage(cacheBufferBob, multipartMessage, &decryptedMessage);
+
+ BC_ASSERT_EQUAL(retval, 0, int, "%d");
+ if (retval == 0) {
+ BC_ASSERT_STRING_EQUAL((char *)decryptedMessage, (char *)PLAIN_TEXT_TEST_MESSAGE);
+ ms_message("Succesfully decrypted msg is %s", decryptedMessage);
+ }
+ free(multipartMessage);
+ free(decryptedMessage);
+
+ /* update ZID files */
+ /* dump the xml document into a string */
+ xmlDocDumpFormatMemoryEnc(cacheBufferAlice, &xmlStringOutput, &xmlStringLength, "UTF-8", 0);
+ /* write it to the file */
+ CACHE = fopen_from_write_dir("ZIDCacheAlice.xml", "wb+");
+ fwrite(xmlStringOutput, 1, xmlStringLength, CACHE);
+ xmlFree(xmlStringOutput);
+ fclose(CACHE);
+
+ xmlDocDumpFormatMemoryEnc(cacheBufferBob, &xmlStringOutput, &xmlStringLength, "UTF-8", 0);
+ /* write it to the file */
+ CACHE = fopen_from_write_dir("ZIDCacheBob.xml", "wb+");
+ fwrite(xmlStringOutput, 1, xmlStringLength, CACHE);
+ xmlFree(xmlStringOutput);
+ fclose(CACHE);
+
+
+ xmlFreeDoc(cacheBufferAlice);
+ xmlFreeDoc(cacheBufferBob);
+ } else {
+ ms_warning("Lime not available, skiping");
}
-
- /* get data from cache : receiver */
- memcpy(associatedKey.peerZID, targetZID, 12);
- retval = lime_getCachedRcvKeyByZid(cacheBuffer, &associatedKey);
- BC_ASSERT_EQUAL(retval, 0, int, "%d");
- printHex("Got receiver key for ZID", targetZID, 12);
- printHex("Key", associatedKey.key, 32);
- printHex("sessionID", associatedKey.sessionId, 32);
- ms_message("session index %d\n", associatedKey.sessionIndex);
-
- /* encrypt/decrypt a msg */
- lime_encryptMessage(associatedKeys.peerKeys[0], (uint8_t *)PLAIN_TEXT_TEST_MESSAGE, strlen(PLAIN_TEXT_TEST_MESSAGE), senderZID, encryptedMessage);
- printHex("Ciphered", encryptedMessage, strlen((char *)encryptedMessage));
- /* invert sender and receiverZID to decrypt/authenticate */
- memcpy(receiverZID, associatedKeys.peerKeys[0]->peerZID, 12);
- memcpy(associatedKeys.peerKeys[0]->peerZID, senderZID, 12);
- retval = lime_decryptMessage(associatedKeys.peerKeys[0], encryptedMessage, strlen(PLAIN_TEXT_TEST_MESSAGE)+16, receiverZID, plainMessage);
- BC_ASSERT_EQUAL(retval, 0, int, "%d");
- BC_ASSERT_STRING_EQUAL((char *)plainMessage, (char *)PLAIN_TEXT_TEST_MESSAGE);
- ms_message("Decrypt and auth returned %d\nPlain text is %s\n", retval, plainMessage);
-
- /* update receiver data */
- associatedKey.sessionIndex++;
- associatedKey.key[0]++;
- associatedKey.sessionId[0]++;
- retval = lime_setCachedKey(cacheBuffer, &associatedKey, LIME_RECEIVER);
- BC_ASSERT_EQUAL(retval, 0, int, "%d");
-
- /* update sender data */
- associatedKeys.peerKeys[0]->sessionIndex++;
- associatedKeys.peerKeys[0]->key[0]++;
- associatedKeys.peerKeys[0]->sessionId[0]++;
- retval = lime_setCachedKey(cacheBuffer, associatedKeys.peerKeys[0], LIME_SENDER);
- BC_ASSERT_EQUAL(retval, 0, int, "%d");
-
- /* free memory */
- lime_freeKeys(&associatedKeys);
-
- /* write the file */
- /* dump the xml document into a string */
- xmlDocDumpFormatMemoryEnc(cacheBuffer, &xmlStringOutput, &xmlStringLength, "UTF-8", 0);
- /* write it to the file */
- CACHE = fopen_from_write_dir("ZIDCache.xml", "w+");
- fwrite(xmlStringOutput, 1, xmlStringLength, CACHE);
- xmlFree(xmlStringOutput);
- fclose(CACHE);
- xmlFreeDoc(cacheBuffer);
-
- /**** Higher level tests using 2 caches to encrypt/decrypt a msg ****/
- /* Create Alice cache file and then load it */
- CACHE = fopen_from_write_dir("ZIDCacheAlice.xml", "wb");
- fprintf(CACHE, "\nef7692d0792a67491ae2d44e005dbe0399643d953a2202dd9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:pauline@sip.example.org9111ebeb52e50edcc6fcb3eea1a2d3ae3c2c75d3668923e83c59d0f47245515060f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000080000001cf011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:pauline@sip.example.org72d80ab1cad243cf45634980c1d02cfb2df81ce0dd5dfcf1ebeacfc5345a917625d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000000f00000000");
- fclose(CACHE);
- CACHE = fopen_from_write_dir("ZIDCacheAlice.xml", "rb+");
- cacheBufferString = (uint8_t *)ms_load_file_content(CACHE, &size);
- *(cacheBufferString+size) = '\0';
- fclose(CACHE);
- /* parse it to an xmlDoc */
- cacheBufferAlice = xmlParseDoc(cacheBufferString);
- ms_free(cacheBufferString);
-
- /* Create Bob cache file and then load it */
- CACHE = fopen_from_write_dir("ZIDCacheBob.xml", "wb");
- fprintf(CACHE, "\n005dbe0399643d953a2202ddef7692d0792a67491ae2d44e9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:marie@sip.example.org9111ebeb52e50edcc6fcb3eea1a2d3ae3c2c75d3668923e83c59d0f47245515060f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000080000001cf011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:marie@sip.example.org81e6e6362c34dc974263d1f77cbb9a8d6d6a718330994379099a8fa19fb12faa25d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000002e0000000001");
- fclose(CACHE);
- CACHE = fopen_from_write_dir("ZIDCacheBob.xml", "rb+");
- cacheBufferString = (uint8_t *)ms_load_file_content(CACHE, &size);
- *(cacheBufferString+size) = '\0';
- fclose(CACHE);
- /* parse it to an xmlDoc */
- cacheBufferBob = xmlParseDoc(cacheBufferString);
- ms_free(cacheBufferString);
-
-
-
- /* encrypt a msg */
- retval = lime_createMultipartMessage(cacheBufferAlice, (uint8_t *)PLAIN_TEXT_TEST_MESSAGE, (uint8_t *)"sip:pauline@sip.example.org", &multipartMessage);
-
- BC_ASSERT_EQUAL(retval, 0, int, "%d");
- if (retval == 0) {
- ms_message("Encrypted msg created is %s", multipartMessage);
- }
-
- /* decrypt the multipart msg */
- retval = lime_decryptMultipartMessage(cacheBufferBob, multipartMessage, &decryptedMessage);
-
- BC_ASSERT_EQUAL(retval, 0, int, "%d");
- if (retval == 0) {
- BC_ASSERT_STRING_EQUAL((char *)decryptedMessage, (char *)PLAIN_TEXT_TEST_MESSAGE);
- ms_message("Succesfully decrypted msg is %s", decryptedMessage);
- }
- free(multipartMessage);
- free(decryptedMessage);
-
- /* update ZID files */
- /* dump the xml document into a string */
- xmlDocDumpFormatMemoryEnc(cacheBufferAlice, &xmlStringOutput, &xmlStringLength, "UTF-8", 0);
- /* write it to the file */
- CACHE = fopen_from_write_dir("ZIDCacheAlice.xml", "wb+");
- fwrite(xmlStringOutput, 1, xmlStringLength, CACHE);
- xmlFree(xmlStringOutput);
- fclose(CACHE);
-
- xmlDocDumpFormatMemoryEnc(cacheBufferBob, &xmlStringOutput, &xmlStringLength, "UTF-8", 0);
- /* write it to the file */
- CACHE = fopen_from_write_dir("ZIDCacheBob.xml", "wb+");
- fwrite(xmlStringOutput, 1, xmlStringLength, CACHE);
- xmlFree(xmlStringOutput);
- fclose(CACHE);
-
-
- xmlFreeDoc(cacheBufferAlice);
- xmlFreeDoc(cacheBufferBob);
}
#ifdef SQLITE_STORAGE_ENABLED