| 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 } |