test/crypto.c

branch
dav-2
changeset 896
2c765c286536
parent 895
87638f19f6dd
equal deleted inserted replaced
895:87638f19f6dd 896:2c765c286536
212 } 212 }
213 213
214 char *s128 = util_decrypt_str_k(sn, c1, &keys128[k]); 214 char *s128 = util_decrypt_str_k(sn, c1, &keys128[k]);
215 char *s256 = util_decrypt_str_k(sn, c2, &keys256[k]); 215 char *s256 = util_decrypt_str_k(sn, c2, &keys256[k]);
216 216
217 CX_TEST_ASSERTMM(!strcmp(s128, strings[i]), "s128 wrong"); 217 CX_TEST_ASSERTM(!strcmp(s128, strings[i]), "s128 wrong");
218 CX_TEST_ASSERTMM(!strcmp(s256, strings[i]), "s256 wrong"); 218 CX_TEST_ASSERTM(!strcmp(s256, strings[i]), "s256 wrong");
219 } 219 }
220 } 220 }
221 221
222 } 222 }
223 223
236 char *aes256 = util_encrypt_str_k(sn, strings[i], &keys256[k]); 236 char *aes256 = util_encrypt_str_k(sn, strings[i], &keys256[k]);
237 237
238 char *dec1 = util_decrypt_str_k(sn, aes128, &keys128[k]); 238 char *dec1 = util_decrypt_str_k(sn, aes128, &keys128[k]);
239 char *dec2 = util_decrypt_str_k(sn, aes256, &keys256[k]); 239 char *dec2 = util_decrypt_str_k(sn, aes256, &keys256[k]);
240 240
241 CX_TEST_ASSERTMM(!strcmp(dec1, strings[i]), "aes128 encrypt failed"); 241 CX_TEST_ASSERTM(!strcmp(dec1, strings[i]), "aes128 encrypt failed");
242 CX_TEST_ASSERTMM(!strcmp(dec2, strings[i]), "aes256 encrypt failed"); 242 CX_TEST_ASSERTM(!strcmp(dec2, strings[i]), "aes256 encrypt failed");
243 } 243 }
244 } 244 }
245 245
246 } 246 }
247 } 247 }
256 CxBuffer *content = cxBufferCreate(cxDefaultAllocator, NULL, 256, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND); 256 CxBuffer *content = cxBufferCreate(cxDefaultAllocator, NULL, 256, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND);
257 cxBufferPutString(content, strings[j]); 257 cxBufferPutString(content, strings[j]);
258 content->pos = 0; 258 content->pos = 0;
259 259
260 CxBuffer *enc = aes_encrypt_buffer(content, key); 260 CxBuffer *enc = aes_encrypt_buffer(content, key);
261 CX_TEST_ASSERTMM(enc->size >= content->size + 16, "aes_encrypt_buffer failed"); 261 CX_TEST_ASSERTM(enc->size >= content->size + 16, "aes_encrypt_buffer failed");
262 262
263 char *base64 = util_base64encode(enc->space, enc->size); 263 char *base64 = util_base64encode(enc->space, enc->size);
264 size_t plainlen = 0; 264 size_t plainlen = 0;
265 char *plain = aes_decrypt(base64, &plainlen, key); 265 char *plain = aes_decrypt(base64, &plainlen, key);
266 266
267 CX_TEST_ASSERTMM(plain, "aes_decrypt failed"); 267 CX_TEST_ASSERTM(plain, "aes_decrypt failed");
268 CX_TEST_ASSERTMM(plainlen == content->size, "aes_decrypt: wrong length"); 268 CX_TEST_ASSERTM(plainlen == content->size, "aes_decrypt: wrong length");
269 CX_TEST_ASSERTMM(!memcmp(plain, content->space, plainlen), "aes_decrypt: wrong content"); 269 CX_TEST_ASSERTM(!memcmp(plain, content->space, plainlen), "aes_decrypt: wrong content");
270 270
271 CxBuffer *dec = aes_decrypt_buffer(enc, key); 271 CxBuffer *dec = aes_decrypt_buffer(enc, key);
272 CX_TEST_ASSERTMM(dec->size == content->size, "aes_decrypt_buffer failed"); 272 CX_TEST_ASSERTM(dec->size == content->size, "aes_decrypt_buffer failed");
273 273
274 CX_TEST_ASSERTMM(!memcmp(content->space, dec->space, dec->size), "decrypted buffer has wrong content"); 274 CX_TEST_ASSERTM(!memcmp(content->space, dec->space, dec->size), "decrypted buffer has wrong content");
275 275
276 cxBufferFree(content); 276 cxBufferFree(content);
277 cxBufferFree(enc); 277 cxBufferFree(enc);
278 cxBufferFree(dec); 278 cxBufferFree(dec);
279 free(base64); 279 free(base64);
316 AESDecrypter *dec = aes_decrypter_new(key, pbuf, (dav_write_func)cxBufferWrite); 316 AESDecrypter *dec = aes_decrypter_new(key, pbuf, (dav_write_func)cxBufferWrite);
317 aes_write(cbuf->space, 1, cbuf->pos, dec); 317 aes_write(cbuf->space, 1, cbuf->pos, dec);
318 aes_decrypter_shutdown(dec); 318 aes_decrypter_shutdown(dec);
319 aes_decrypter_close(dec); 319 aes_decrypter_close(dec);
320 320
321 CX_TEST_ASSERTMM(slen == pbuf->pos, "wrong length after enc-dec"); 321 CX_TEST_ASSERTM(slen == pbuf->pos, "wrong length after enc-dec");
322 CX_TEST_ASSERTMM(!memcmp(strings[j], pbuf->space, slen), "wrong content after enc-dec"); 322 CX_TEST_ASSERTM(!memcmp(strings[j], pbuf->space, slen), "wrong content after enc-dec");
323 323
324 data->pos = 0; 324 data->pos = 0;
325 CxBuffer *enc2 = aes_encrypt_buffer(data, key); 325 CxBuffer *enc2 = aes_encrypt_buffer(data, key);
326 CxBuffer *dec2 = aes_decrypt_buffer(enc2, key); 326 CxBuffer *dec2 = aes_decrypt_buffer(enc2, key);
327 327
328 CX_TEST_ASSERTMM(dec2->size == data->size, "dec2 has wrong size"); 328 CX_TEST_ASSERTM(dec2->size == data->size, "dec2 has wrong size");
329 CX_TEST_ASSERTMM(!memcmp(strings[j], dec2->space, dec2->size), "dec2 has wrong content"); 329 CX_TEST_ASSERTM(!memcmp(strings[j], dec2->space, dec2->size), "dec2 has wrong content");
330 } 330 }
331 } 331 }
332 332
333 } 333 }
334 } 334 }
454 DavKey *key = keys[i]; 454 DavKey *key = keys[i];
455 455
456 int index = 16*p + 4*s + i; 456 int index = 16*p + 4*s + i;
457 int keylen = index % 2 == 0 ? 16 : 32; 457 int keylen = index % 2 == 0 ? 16 : 32;
458 458
459 CX_TEST_ASSERTMM(key, "no key"); 459 CX_TEST_ASSERTM(key, "no key");
460 CX_TEST_ASSERTMM(keylen == key->length, "wrong key length"); 460 CX_TEST_ASSERTM(keylen == key->length, "wrong key length");
461 CX_TEST_ASSERTMM(!memcmp(key->data, pwgenkeys[index], keylen), "wrong key data"); 461 CX_TEST_ASSERTM(!memcmp(key->data, pwgenkeys[index], keylen), "wrong key data");
462 } 462 }
463 } 463 }
464 } 464 }
465 465
466 } 466 }

mercurial