diff --git a/src/core/crypto/aes_util.cpp b/src/core/crypto/aes_util.cpp index 3d939da15d..e2dc4acb3f 100644 --- a/src/core/crypto/aes_util.cpp +++ b/src/core/crypto/aes_util.cpp @@ -58,27 +58,28 @@ void AESCipher::SetIV(std::vector iv) { } template -void AESCipher::Transcode(const u8* src, size_t size, u8* dest, Op op) { - size_t written = 0; - - const auto context = op == Op::Encrypt ? &ctx->encryption_context : &ctx->decryption_context; +void AESCipher::Transcode(const u8* src, size_t size, u8* dest, Op op) const { + auto* const context = op == Op::Encrypt ? &ctx->encryption_context : &ctx->decryption_context; mbedtls_cipher_reset(context); + size_t written = 0; if (mbedtls_cipher_get_cipher_mode(context) == MBEDTLS_MODE_XTS) { mbedtls_cipher_update(context, src, size, dest, &written); - if (written != size) + if (written != size) { LOG_WARNING(Crypto, "Not all data was decrypted requested={:016X}, actual={:016X}.", size, written); + } } else { const auto block_size = mbedtls_cipher_get_block_size(context); for (size_t offset = 0; offset < size; offset += block_size) { auto length = std::min(block_size, size - offset); mbedtls_cipher_update(context, src + offset, length, dest + offset, &written); - if (written != length) + if (written != length) { LOG_WARNING(Crypto, "Not all data was decrypted requested={:016X}, actual={:016X}.", length, written); + } } } diff --git a/src/core/crypto/aes_util.h b/src/core/crypto/aes_util.h index 81fa0d73f8..bda41b144b 100644 --- a/src/core/crypto/aes_util.h +++ b/src/core/crypto/aes_util.h @@ -38,11 +38,11 @@ public: void SetIV(std::vector iv); template - void Transcode(const Source* src, size_t size, Dest* dest, Op op) { + void Transcode(const Source* src, size_t size, Dest* dest, Op op) const { Transcode(reinterpret_cast(src), size, reinterpret_cast(dest), op); } - void Transcode(const u8* src, size_t size, u8* dest, Op op); + void Transcode(const u8* src, size_t size, u8* dest, Op op) const; template void XTSTranscode(const Source* src, size_t size, Dest* dest, size_t sector_id,