test/crypto.c

branch
dav-2
changeset 889
42cdbf9bbd49
parent 886
da79af4baec8
--- a/test/crypto.c	Tue Oct 14 21:02:26 2025 +0200
+++ b/test/crypto.c	Sat Nov 08 23:06:11 2025 +0100
@@ -191,138 +191,146 @@
     }
 }
 
-CX_TEST(test_util_decrypt_str_k) {
+UCX_TEST(test_util_decrypt_str_k) {
     create_keys();
     
     DavContext *ctx = dav_context_new();
     DavSession *sn = dav_session_new(ctx, "http://localhost/");
     
-    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]));
+    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];
             }
+            
+            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);
 }
 
-CX_TEST(test_util_encrypt_str_k) {
+UCX_TEST(test_util_encrypt_str_k) {
     DavContext *ctx = dav_context_new();
     DavSession *sn = dav_session_new(ctx, "http://localhost/");
     
-    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_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");
         }
     }
+    
+    UCX_TEST_END;
 }
 
-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(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);
         }
     }
+    
+    UCX_TEST_END;
 }
 
-CX_TEST(test_crypto_stream) {
+UCX_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);
     
-    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);
+    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);
 
-                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);
-
-                CX_TEST_ASSERT(slen == pbuf->pos);
-                CX_TEST_ASSERT(!memcmp(strings[j], pbuf->space, slen));
+            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);
 
-                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_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");
         }
     }
+    
+    UCX_TEST_END;
 }
 
 static char *pws[] = {
@@ -409,50 +417,51 @@
 };
 
 
-CX_TEST(test_dav_pw2key) {
+UCX_TEST(test_dav_pw2key) {
     
-    CX_TEST_DO {
+    
+    UCX_TEST_BEGIN;
     
-        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));
-                }
+    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");
             }
         }
+    }
     
-    }
+    UCX_TEST_END;
 }

mercurial