diff options
author | Jack Lloyd <[email protected]> | 2015-08-04 22:06:44 -0400 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2015-08-04 22:06:44 -0400 |
commit | eddf0d75e60740017de20301bcf5dffef9dfbb95 (patch) | |
tree | d2e7bda33077e0433b3d1e97b7563056b0f8c3f5 /src/lib/modes/xts/xts.cpp | |
parent | 1c6c1bdf2a59af37c287c972b4f133ddecff4656 (diff) |
For CBC, ECB, and XTS the output length of a zero length input is well
defined, so don't fail. Fix XTS, as XTS always uses ciphertext
stealing the value of output_length had been incorrect in rounding up
to the block size.
Diffstat (limited to 'src/lib/modes/xts/xts.cpp')
-rw-r--r-- | src/lib/modes/xts/xts.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/lib/modes/xts/xts.cpp b/src/lib/modes/xts/xts.cpp index 4eaf03fe5..046de216f 100644 --- a/src/lib/modes/xts/xts.cpp +++ b/src/lib/modes/xts/xts.cpp @@ -135,8 +135,7 @@ void XTS_Mode::update_tweak(size_t which) size_t XTS_Encryption::output_length(size_t input_length) const { - BOTAN_ASSERT(input_length != 0, "XTS_Encryption::output_length() call"); - return round_up(input_length, cipher().block_size()); + return input_length; } void XTS_Encryption::update(secure_vector<byte>& buffer, size_t offset) @@ -214,7 +213,6 @@ void XTS_Encryption::finish(secure_vector<byte>& buffer, size_t offset) size_t XTS_Decryption::output_length(size_t input_length) const { - // might be less return input_length; } |