1485 } |
1485 } |
1486 #endif |
1486 #endif |
1487 |
1487 |
1488 |
1488 |
1489 |
1489 |
1490 UcxBuffer* aes_encrypt_buffer(UcxBuffer *in, DavKey *key) { |
1490 CxBuffer* aes_encrypt_buffer(CxBuffer *in, DavKey *key) { |
1491 UcxBuffer *encbuf = ucx_buffer_new( |
1491 CxBuffer *encbuf = cxBufferCreate(NULL, in->size, cxDefaultAllocator, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND); |
1492 NULL, |
1492 if(!encbuf) { |
1493 in->size+16, |
1493 return NULL; |
1494 UCX_BUFFER_AUTOEXTEND); |
1494 } |
1495 |
1495 |
1496 AESEncrypter *enc = aes_encrypter_new( |
1496 AESEncrypter *enc = aes_encrypter_new( |
1497 key, |
1497 key, |
1498 in, |
1498 in, |
1499 (dav_read_func)ucx_buffer_read, |
1499 (dav_read_func)cxBufferRead, |
1500 NULL); |
1500 NULL); |
1501 if(!enc) { |
1501 if(!enc) { |
1502 ucx_buffer_free(encbuf); |
1502 cxBufferFree(encbuf); |
1503 return NULL; |
1503 return NULL; |
1504 } |
1504 } |
1505 |
1505 |
1506 char buf[1024]; |
1506 char buf[1024]; |
1507 size_t r; |
1507 size_t r; |
1508 while((r = aes_read(buf, 1, 1024, enc)) > 0) { |
1508 while((r = aes_read(buf, 1, 1024, enc)) > 0) { |
1509 ucx_buffer_write(buf, 1, r, encbuf); |
1509 cxBufferWrite(buf, 1, r, encbuf); |
1510 } |
1510 } |
1511 aes_encrypter_close(enc); |
1511 aes_encrypter_close(enc); |
1512 |
1512 |
1513 encbuf->pos = 0; |
1513 encbuf->pos = 0; |
1514 return encbuf; |
1514 return encbuf; |
1515 } |
1515 } |
1516 |
1516 |
1517 UcxBuffer* aes_decrypt_buffer(UcxBuffer *in, DavKey *key) { |
1517 CxBuffer* aes_decrypt_buffer(CxBuffer *in, DavKey *key) { |
1518 UcxBuffer *decbuf = ucx_buffer_new( |
1518 CxBuffer *decbuf = cxBufferCreate(NULL, in->size, cxDefaultAllocator, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND); |
1519 NULL, |
1519 if(!decbuf) { |
1520 in->size, |
1520 return NULL; |
1521 UCX_BUFFER_AUTOEXTEND); |
1521 } |
1522 AESDecrypter *dec = aes_decrypter_new( |
1522 AESDecrypter *dec = aes_decrypter_new( |
1523 key, |
1523 key, |
1524 decbuf, |
1524 decbuf, |
1525 (dav_write_func)ucx_buffer_write); |
1525 (dav_write_func)cxBufferWrite); |
|
1526 if(!dec) { |
|
1527 cxBufferFree(decbuf); |
|
1528 return NULL; |
|
1529 } |
1526 |
1530 |
1527 aes_write(in->space, 1, in->size, dec); |
1531 aes_write(in->space, 1, in->size, dec); |
1528 aes_decrypter_shutdown(dec); |
1532 aes_decrypter_shutdown(dec); |
1529 aes_decrypter_close(dec); |
1533 aes_decrypter_close(dec); |
1530 decbuf->pos = 0; |
1534 decbuf->pos = 0; |