implemented encryption of EncryptedBlockInfo
This commit is contained in:
parent
2fb4657fed
commit
992fcf6b98
@ -61,11 +61,14 @@ void EncryptorAES_destroy(EncryptorAES* ptr){
|
||||
void EncryptorAES_encrypt(EncryptorAES* ptr, Array src, Array dst){
|
||||
assert(dst.size >= EncryptorAES_calcDstSize(src.size));
|
||||
|
||||
const EncryptedBlockInfo block_info = { .padding_size = 16 - src.size % 16 };
|
||||
memcpy(ptr->buf.data, &block_info, sizeof(EncryptedBlockInfo));
|
||||
// encrypt this struct
|
||||
br_aes_ct64_cbcenc_run(&ptr->enc_ctx, ptr->iv.data, ptr->buf.data, sizeof(EncryptedBlockInfo));
|
||||
// emit EncryptedBlockInfo to beginning of result
|
||||
EncryptedBlockInfo block_info = { .padding_size = 16 - src.size % 16 };
|
||||
memcpy(dst.data, &block_info, sizeof(block_info));
|
||||
dst.data += sizeof(block_info);
|
||||
dst.size -= sizeof(block_info);
|
||||
memcpy(dst.data, ptr->buf.data, sizeof(EncryptedBlockInfo));
|
||||
dst.data += sizeof(EncryptedBlockInfo);
|
||||
dst.size -= sizeof(EncryptedBlockInfo);
|
||||
|
||||
// write full blocks
|
||||
while(src.size > ptr->buf.size){
|
||||
@ -114,9 +117,11 @@ void DecryptorAES_decrypt(DecryptorAES* ptr, Array src, Array dst, u32* decrypte
|
||||
|
||||
// read EncryptedBlockInfo from beginning of data
|
||||
EncryptedBlockInfo block_info;
|
||||
memcpy(&block_info, src.data, sizeof(block_info));
|
||||
src.data += sizeof(block_info);
|
||||
src.size -= sizeof(block_info);
|
||||
memcpy(&block_info, src.data, sizeof(EncryptedBlockInfo));
|
||||
src.data += sizeof(EncryptedBlockInfo);
|
||||
src.size -= sizeof(EncryptedBlockInfo);
|
||||
// decrypt this struct
|
||||
br_aes_ct64_cbcdec_run(&ptr->dec_ctx, ptr->iv.data, &block_info, sizeof(EncryptedBlockInfo));
|
||||
*decrypted_size = src.size - block_info.padding_size;
|
||||
|
||||
// write full blocks
|
||||
|
||||
Loading…
Reference in New Issue
Block a user