diff options
Diffstat (limited to 'src/lib/modes')
-rw-r--r-- | src/lib/modes/aead/gcm/gcm.cpp | 2 | ||||
-rw-r--r-- | src/lib/modes/mode_pad/mode_pad.cpp | 4 | ||||
-rw-r--r-- | src/lib/modes/mode_pad/mode_pad.h | 3 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/lib/modes/aead/gcm/gcm.cpp b/src/lib/modes/aead/gcm/gcm.cpp index 1dc5efe4f..e23551cb4 100644 --- a/src/lib/modes/aead/gcm/gcm.cpp +++ b/src/lib/modes/aead/gcm/gcm.cpp @@ -168,7 +168,7 @@ GCM_Mode::GCM_Mode(BlockCipher* cipher, size_t tag_size) : m_ghash.reset(new GHASH); - m_ctr.reset(new CTR_BE(cipher)); // CTR_BE takes ownership of cipher + m_ctr.reset(new CTR_BE(cipher, 4)); // CTR_BE takes ownership of cipher if(m_tag_size != 8 && m_tag_size != 16) throw Invalid_Argument(name() + ": Bad tag size " + std::to_string(m_tag_size)); diff --git a/src/lib/modes/mode_pad/mode_pad.cpp b/src/lib/modes/mode_pad/mode_pad.cpp index 0f1df9e8a..7b4546c86 100644 --- a/src/lib/modes/mode_pad/mode_pad.cpp +++ b/src/lib/modes/mode_pad/mode_pad.cpp @@ -69,8 +69,10 @@ void ANSI_X923_Padding::add_padding(secure_vector<byte>& buffer, { const byte pad_value = static_cast<byte>(block_size - last_byte_pos); - for(size_t i = last_byte_pos; i < block_size; ++i) + for(size_t i = last_byte_pos; i < block_size-1; ++i) + { buffer.push_back(0); + } buffer.push_back(pad_value); } diff --git a/src/lib/modes/mode_pad/mode_pad.h b/src/lib/modes/mode_pad/mode_pad.h index 0a775b1ea..bc2b7c132 100644 --- a/src/lib/modes/mode_pad/mode_pad.h +++ b/src/lib/modes/mode_pad/mode_pad.h @@ -32,6 +32,7 @@ class BOTAN_DLL BlockCipherModePaddingMethod /** * @param block the last block * @param size the of the block + * @return number of padding bytes */ virtual size_t unpad(const byte block[], size_t size) const = 0; @@ -119,7 +120,7 @@ class BOTAN_DLL Null_Padding final : public BlockCipherModePaddingMethod std::string name() const override { return "NoPadding"; } }; -BlockCipherModePaddingMethod* get_bc_pad(const std::string& algo_spec); +BOTAN_DLL BlockCipherModePaddingMethod* get_bc_pad(const std::string& algo_spec); } |