test/crypto.c

branch
dav-2
changeset 879
255a5ef46400
parent 816
839fefbdedc7
child 886
da79af4baec8
--- a/test/crypto.c	Sun Sep 07 15:36:24 2025 +0200
+++ b/test/crypto.c	Sun Sep 07 15:57:36 2025 +0200
@@ -192,146 +192,138 @@
     }
 }
 
-UCX_TEST(test_util_decrypt_str_k) {
+CX_TEST(test_util_decrypt_str_k) {
     create_keys();
     
     DavContext *ctx = dav_context_new();
     DavSession *sn = dav_session_new(ctx, "http://localhost/");
     
-    UCX_TEST_BEGIN;
-    
-    for(int k=0;k<2;k++) {
-        for(int i=0;i<20;i++) {
-            char *c1;
-            char *c2;
-            if(k == 0) {
-                c1 = cryptkey0aes128strings[i];
-                c2 = cryptkey0aes256strings[i];
-            } else {
-                c1 = cryptkey1aes128strings[i];
-                c2 = cryptkey1aes256strings[i];
+    CX_TEST_DO {
+        for(int k=0;k<2;k++) {
+            for(int i=0;i<20;i++) {
+                char *c1;
+                char *c2;
+                if(k == 0) {
+                    c1 = cryptkey0aes128strings[i];
+                    c2 = cryptkey0aes256strings[i];
+                } else {
+                    c1 = cryptkey1aes128strings[i];
+                    c2 = cryptkey1aes256strings[i];
+                }
+
+                char *s128 = util_decrypt_str_k(sn, c1, &keys128[k]);
+                char *s256 = util_decrypt_str_k(sn, c2, &keys256[k]);
+
+                CX_TEST_ASSERT(!strcmp(s128, strings[i]));
+                CX_TEST_ASSERT(!strcmp(s256, strings[i]));
             }
-            
-            char *s128 = util_decrypt_str_k(sn, c1, &keys128[k]);
-            char *s256 = util_decrypt_str_k(sn, c2, &keys256[k]);
-            
-            UCX_TEST_ASSERT(!strcmp(s128, strings[i]), "s128 wrong");
-            UCX_TEST_ASSERT(!strcmp(s256, strings[i]), "s256 wrong");
         }
     }
     
-    UCX_TEST_END;
-    
     dav_context_destroy(ctx);
 }
 
-UCX_TEST(test_util_encrypt_str_k) {
+CX_TEST(test_util_encrypt_str_k) {
     DavContext *ctx = dav_context_new();
     DavSession *sn = dav_session_new(ctx, "http://localhost/");
     
-    UCX_TEST_BEGIN;
-    
-    for(int k=0;k<16;k++) {
-        for(int i=0;i<20;i++) {
-            char *aes128 = util_encrypt_str_k(sn, strings[i], &keys128[k]);
-            char *aes256 = util_encrypt_str_k(sn, strings[i], &keys256[k]);
-            
-            char *dec1 = util_decrypt_str_k(sn, aes128, &keys128[k]);
-            char *dec2 = util_decrypt_str_k(sn, aes256, &keys256[k]);
-            
-            UCX_TEST_ASSERT(!strcmp(dec1, strings[i]), "aes128 encrypt failed");
-            UCX_TEST_ASSERT(!strcmp(dec2, strings[i]), "aes256 encrypt failed");
+    CX_TEST_DO {
+        for(int k=0;k<16;k++) {
+            for(int i=0;i<20;i++) {
+                char *aes128 = util_encrypt_str_k(sn, strings[i], &keys128[k]);
+                char *aes256 = util_encrypt_str_k(sn, strings[i], &keys256[k]);
+
+                char *dec1 = util_decrypt_str_k(sn, aes128, &keys128[k]);
+                char *dec2 = util_decrypt_str_k(sn, aes256, &keys256[k]);
+
+                CX_TEST_ASSERT(!strcmp(dec1, strings[i]));
+                CX_TEST_ASSERT(!strcmp(dec2, strings[i]));
+            }
         }
     }
-    
-    UCX_TEST_END;
 }
 
-UCX_TEST(test_crypto_buffer) {
-    UCX_TEST_BEGIN;
-    
-    for(int i=0;i<32;i++) {
-        DavKey *key = i < 16 ? &keys256[i] : &keys128[i%16];
-        
-        for(int j=0;j<20;j++) {
-            CxBuffer *content = cxBufferCreate(NULL, 256, cxDefaultAllocator, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND);
-            cxBufferPutString(content, strings[j]);
-            content->pos = 0;
-            
-            CxBuffer *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");
-            
-            CxBuffer *dec = aes_decrypt_buffer(enc, key);
-            UCX_TEST_ASSERT(dec->size == content->size, "aes_decrypt_buffer failed");
-            
-            UCX_TEST_ASSERT(!memcmp(content->space, dec->space, dec->size), "decrypted buffer has wrong content");
-            
-            cxBufferFree(content);
-            cxBufferFree(enc);
-            cxBufferFree(dec);
-            free(base64);
-            free(plain);
+CX_TEST(test_crypto_buffer) {
+    CX_TEST_DO {
+        for(int i=0;i<32;i++) {
+            DavKey *key = i < 16 ? &keys256[i] : &keys128[i%16];
+
+            for(int j=0;j<20;j++) {
+                CxBuffer *content = cxBufferCreate(NULL, 256, cxDefaultAllocator, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND);
+                cxBufferPutString(content, strings[j]);
+                content->pos = 0;
+
+                CxBuffer *enc = aes_encrypt_buffer(content, key);
+                CX_TEST_ASSERT(enc->size >= content->size + 16);
+
+                char *base64 = util_base64encode(enc->space, enc->size);
+                size_t plainlen = 0;
+                char *plain = aes_decrypt(base64, &plainlen, key);
+
+                CX_TEST_ASSERT(plain);
+                CX_TEST_ASSERT(plainlen == content->size);
+                CX_TEST_ASSERT(!memcmp(plain, content->space, plainlen));
+
+                CxBuffer *dec = aes_decrypt_buffer(enc, key);
+                CX_TEST_ASSERT(dec->size == content->size);
+
+                CX_TEST_ASSERT(!memcmp(content->space, dec->space, dec->size));
+
+                cxBufferFree(content);
+                cxBufferFree(enc);
+                cxBufferFree(dec);
+                free(base64);
+                free(plain);
+            }
         }
     }
-    
-    UCX_TEST_END;
 }
 
-UCX_TEST(test_crypto_stream) {
+CX_TEST(test_crypto_stream) {
     CxBuffer *data = cxBufferCreate(NULL, 1024, cxDefaultAllocator, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND);
     CxBuffer *cbuf = cxBufferCreate(NULL, 1024, cxDefaultAllocator, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND);
     CxBuffer *pbuf = cxBufferCreate(NULL, 1024, cxDefaultAllocator, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND);
     
-    UCX_TEST_BEGIN;
-    
-    for(int i=0;i<32;i++) {
-        DavKey *key = i < 16 ? &keys256[i] : &keys128[i%16];
-        for(int j=0;j<20;j++) {
-            data->pos = 0;
-            data->size = 0;
-            size_t slen = strlen(strings[j]);
-            cxBufferWrite(strings[j], 1, slen, data);
-            cxBufferSeek(data, 0, SEEK_SET);
+    CX_TEST_DO {
+        for(int i=0;i<32;i++) {
+            DavKey *key = i < 16 ? &keys256[i] : &keys128[i%16];
+            for(int j=0;j<20;j++) {
+                data->pos = 0;
+                data->size = 0;
+                size_t slen = strlen(strings[j]);
+                cxBufferWrite(strings[j], 1, slen, data);
+                cxBufferSeek(data, 0, SEEK_SET);
 
-            cbuf->pos = 0;
-            cbuf->size = 0;
-            pbuf->pos = 0;
-            pbuf->size = 0;
+                cbuf->pos = 0;
+                cbuf->size = 0;
+                pbuf->pos = 0;
+                pbuf->size = 0;
 
-            AESEncrypter *enc = aes_encrypter_new(key, data, (dav_read_func)cxBufferRead, NULL);
-            char buf[1024];
-            size_t r = 0;
-            while((r = aes_read(buf, 1, 1024, enc)) != 0) {
-                cxBufferWrite(buf, 1, r, cbuf);
-            }
-            aes_encrypter_close(enc);
+                AESEncrypter *enc = aes_encrypter_new(key, data, (dav_read_func)cxBufferRead, NULL);
+                char buf[1024];
+                size_t r = 0;
+                while((r = aes_read(buf, 1, 1024, enc)) != 0) {
+                    cxBufferWrite(buf, 1, r, cbuf);
+                }
+                aes_encrypter_close(enc);
 
-            AESDecrypter *dec = aes_decrypter_new(key, pbuf, (dav_write_func)cxBufferWrite);
-            aes_write(cbuf->space, 1, cbuf->pos, dec);
-            aes_decrypter_shutdown(dec);
-            aes_decrypter_close(dec);
+                AESDecrypter *dec = aes_decrypter_new(key, pbuf, (dav_write_func)cxBufferWrite);
+                aes_write(cbuf->space, 1, cbuf->pos, dec);
+                aes_decrypter_shutdown(dec);
+                aes_decrypter_close(dec);
+
+                CX_TEST_ASSERT(slen == pbuf->pos);
+                CX_TEST_ASSERT(!memcmp(strings[j], pbuf->space, slen));
 
-            UCX_TEST_ASSERT(slen == pbuf->pos, "wrong length after enc-dec");
-            UCX_TEST_ASSERT(!memcmp(strings[j], pbuf->space, slen), "wrong content after enc-dec");
-            
-            data->pos = 0;
-            CxBuffer *enc2 = aes_encrypt_buffer(data, key);
-            CxBuffer *dec2 = aes_decrypt_buffer(enc2, key);
-            
-            UCX_TEST_ASSERT(dec2->size == data->size, "dec2 has wrong size");
-            UCX_TEST_ASSERT(!memcmp(strings[j], dec2->space, dec2->size), "dec2 has wrong content");
+                data->pos = 0;
+                CxBuffer *enc2 = aes_encrypt_buffer(data, key);
+                CxBuffer *dec2 = aes_decrypt_buffer(enc2, key);
+
+                CX_TEST_ASSERT(dec2->size == data->size);
+                CX_TEST_ASSERT(!memcmp(strings[j], dec2->space, dec2->size));
+            }
         }
     }
-    
-    UCX_TEST_END;
 }
 
 static char *pws[] = {
@@ -418,51 +410,50 @@
 };
 
 
-UCX_TEST(test_dav_pw2key) {
+CX_TEST(test_dav_pw2key) {
     
-    
-    UCX_TEST_BEGIN;
+    CX_TEST_DO {
     
-    for(int p=0;p<4;p++) {
-        for(int s=0;s<4;s++) {
-            DavKey *keys[4];
-            keys[0] =  dav_pw2key(
-                    pws[p],
-                    salt[s],
-                    saltlen[s],
-                    DAV_PWFUNC_PBKDF2_SHA256,
-                    DAV_KEY_AES128);
-            keys[1] = dav_pw2key(
-                    pws[p],
-                    salt[s],
-                    saltlen[s],
-                    DAV_PWFUNC_PBKDF2_SHA256,
-                    DAV_KEY_AES256);
-            keys[2] = dav_pw2key(
-                    pws[p],
-                    salt[s],
-                    saltlen[s],
-                    DAV_PWFUNC_PBKDF2_SHA512,
-                    DAV_KEY_AES128);
-            keys[3] = dav_pw2key(
-                    pws[p],
-                    salt[s],
-                    saltlen[s],
-                    DAV_PWFUNC_PBKDF2_SHA512,
-                    DAV_KEY_AES256);
-            
-            for(int i=0;i<4;i++) {
-                DavKey *key = keys[i];
-                
-                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");
+        for(int p=0;p<4;p++) {
+            for(int s=0;s<4;s++) {
+                DavKey *keys[4];
+                keys[0] =  dav_pw2key(
+                        pws[p],
+                        salt[s],
+                        saltlen[s],
+                        DAV_PWFUNC_PBKDF2_SHA256,
+                        DAV_KEY_AES128);
+                keys[1] = dav_pw2key(
+                        pws[p],
+                        salt[s],
+                        saltlen[s],
+                        DAV_PWFUNC_PBKDF2_SHA256,
+                        DAV_KEY_AES256);
+                keys[2] = dav_pw2key(
+                        pws[p],
+                        salt[s],
+                        saltlen[s],
+                        DAV_PWFUNC_PBKDF2_SHA512,
+                        DAV_KEY_AES128);
+                keys[3] = dav_pw2key(
+                        pws[p],
+                        salt[s],
+                        saltlen[s],
+                        DAV_PWFUNC_PBKDF2_SHA512,
+                        DAV_KEY_AES256);
+
+                for(int i=0;i<4;i++) {
+                    DavKey *key = keys[i];
+
+                    int index = 16*p + 4*s + i;
+                    int keylen = index % 2 == 0 ? 16 : 32;
+
+                    CX_TEST_ASSERT(key);
+                    CX_TEST_ASSERT(keylen == key->length);
+                    CX_TEST_ASSERT(!memcmp(key->data, pwgenkeys[index], keylen));
+                }
             }
         }
+    
     }
-    
-    UCX_TEST_END;
 }

mercurial