test/crypto.c

changeset 688
d405d2ac78e6
parent 515
2465dd550bb5
child 747
efbd59642577
--- a/test/crypto.c	Mon Dec 02 13:29:36 2019 +0100
+++ b/test/crypto.c	Wed Dec 04 11:47:51 2019 +0100
@@ -261,6 +261,14 @@
             UcxBuffer *enc = aes_encrypt_buffer(content, key);
             UCX_TEST_ASSERT(enc->size >= content->size + 16, "aes_encrypt_buffer failed");
             
+            char *base64 = util_base64encode(enc->space, enc->size);
+            size_t plainlen = 0;
+            char *plain = aes_decrypt(base64, &plainlen, key);
+            
+            UCX_TEST_ASSERT(plain, "aes_decrypt failed");
+            UCX_TEST_ASSERT(plainlen == content->size, "aes_decrypt: wrong length");
+            UCX_TEST_ASSERT(!memcmp(plain, content->space, plainlen), "aes_decrypt: wrong content");
+            
             UcxBuffer *dec = aes_decrypt_buffer(enc, key);
             UCX_TEST_ASSERT(dec->size == content->size, "aes_decrypt_buffer failed");
             
@@ -269,6 +277,8 @@
             ucx_buffer_free(content);
             ucx_buffer_free(enc);
             ucx_buffer_free(dec);
+            free(base64);
+            free(plain);
         }
     }
     
@@ -447,6 +457,7 @@
                 int index = 16*p + 4*s + i;
                 int keylen = index % 2 == 0 ? 16 : 32;
                 
+                UCX_TEST_ASSERT(key, "no key");
                 UCX_TEST_ASSERT(keylen == key->length, "wrong key length");
                 UCX_TEST_ASSERT(!memcmp(key->data, pwgenkeys[index], keylen), "wrong key data");
             }

mercurial