aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/modes/cbc/cbc.cpp12
-rw-r--r--src/modes/cfb/cfb.cpp12
-rw-r--r--src/modes/ctr/ctr.cpp6
-rw-r--r--src/modes/cts/cts.cpp12
-rw-r--r--src/modes/ecb/ecb.cpp3
-rw-r--r--src/modes/modebase/modebase.cpp7
-rw-r--r--src/modes/modebase/modebase.h2
-rw-r--r--src/modes/ofb/ofb.cpp6
8 files changed, 38 insertions, 22 deletions
diff --git a/src/modes/cbc/cbc.cpp b/src/modes/cbc/cbc.cpp
index 9ad598bed..eea039ce3 100644
--- a/src/modes/cbc/cbc.cpp
+++ b/src/modes/cbc/cbc.cpp
@@ -15,7 +15,8 @@ namespace Botan {
*************************************************/
CBC_Encryption::CBC_Encryption(const std::string& cipher_name,
const std::string& padding_name) :
- BlockCipherMode(cipher_name, "CBC", block_size_of(cipher_name)),
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CBC", block_size_of(cipher_name)),
padder(get_bc_pad(padding_name))
{
if(!padder->valid_blocksize(BLOCK_SIZE))
@@ -29,7 +30,8 @@ CBC_Encryption::CBC_Encryption(const std::string& cipher_name,
const std::string& padding_name,
const SymmetricKey& key,
const InitializationVector& iv) :
- BlockCipherMode(cipher_name, "CBC", block_size_of(cipher_name)),
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CBC", block_size_of(cipher_name)),
padder(get_bc_pad(padding_name))
{
if(!padder->valid_blocksize(BLOCK_SIZE))
@@ -84,7 +86,8 @@ std::string CBC_Encryption::name() const
*************************************************/
CBC_Decryption::CBC_Decryption(const std::string& cipher_name,
const std::string& padding_name) :
- BlockCipherMode(cipher_name, "CBC", block_size_of(cipher_name)),
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CBC", block_size_of(cipher_name)),
padder(get_bc_pad(padding_name))
{
if(!padder->valid_blocksize(BLOCK_SIZE))
@@ -99,7 +102,8 @@ CBC_Decryption::CBC_Decryption(const std::string& cipher_name,
const std::string& padding_name,
const SymmetricKey& key,
const InitializationVector& iv) :
- BlockCipherMode(cipher_name, "CBC", block_size_of(cipher_name)),
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CBC", block_size_of(cipher_name)),
padder(get_bc_pad(padding_name))
{
if(!padder->valid_blocksize(BLOCK_SIZE))
diff --git a/src/modes/cfb/cfb.cpp b/src/modes/cfb/cfb.cpp
index dbfbff6ae..60599464b 100644
--- a/src/modes/cfb/cfb.cpp
+++ b/src/modes/cfb/cfb.cpp
@@ -31,7 +31,8 @@ void check_feedback(u32bit BLOCK_SIZE, u32bit FEEDBACK_SIZE, u32bit bits,
*************************************************/
CFB_Encryption::CFB_Encryption(const std::string& cipher_name,
u32bit fback_bits) :
- BlockCipherMode(cipher_name, "CFB", block_size_of(cipher_name), 1),
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CFB", block_size_of(cipher_name), 1),
FEEDBACK_SIZE(fback_bits ? fback_bits / 8: BLOCK_SIZE)
{
check_feedback(BLOCK_SIZE, FEEDBACK_SIZE, fback_bits, name());
@@ -44,7 +45,8 @@ CFB_Encryption::CFB_Encryption(const std::string& cipher_name,
const SymmetricKey& key,
const InitializationVector& iv,
u32bit fback_bits) :
- BlockCipherMode(cipher_name, "CFB", block_size_of(cipher_name), 1),
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CFB", block_size_of(cipher_name), 1),
FEEDBACK_SIZE(fback_bits ? fback_bits / 8: BLOCK_SIZE)
{
check_feedback(BLOCK_SIZE, FEEDBACK_SIZE, fback_bits, name());
@@ -87,7 +89,8 @@ void CFB_Encryption::feedback()
*************************************************/
CFB_Decryption::CFB_Decryption(const std::string& cipher_name,
u32bit fback_bits) :
- BlockCipherMode(cipher_name, "CFB", block_size_of(cipher_name), 1),
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CFB", block_size_of(cipher_name), 1),
FEEDBACK_SIZE(fback_bits ? fback_bits / 8 : BLOCK_SIZE)
{
check_feedback(BLOCK_SIZE, FEEDBACK_SIZE, fback_bits, name());
@@ -100,7 +103,8 @@ CFB_Decryption::CFB_Decryption(const std::string& cipher_name,
const SymmetricKey& key,
const InitializationVector& iv,
u32bit fback_bits) :
- BlockCipherMode(cipher_name, "CFB", block_size_of(cipher_name), 1),
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CFB", block_size_of(cipher_name), 1),
FEEDBACK_SIZE(fback_bits ? fback_bits / 8 : BLOCK_SIZE)
{
check_feedback(BLOCK_SIZE, FEEDBACK_SIZE, fback_bits, name());
diff --git a/src/modes/ctr/ctr.cpp b/src/modes/ctr/ctr.cpp
index 8b8c5f35f..c537178f9 100644
--- a/src/modes/ctr/ctr.cpp
+++ b/src/modes/ctr/ctr.cpp
@@ -14,7 +14,8 @@ namespace Botan {
* CTR-BE Constructor *
*************************************************/
CTR_BE::CTR_BE(const std::string& cipher_name) :
- BlockCipherMode(cipher_name, "CTR-BE", block_size_of(cipher_name), 1)
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CTR-BE", block_size_of(cipher_name), 1)
{
}
@@ -23,7 +24,8 @@ CTR_BE::CTR_BE(const std::string& cipher_name) :
*************************************************/
CTR_BE::CTR_BE(const std::string& cipher_name, const SymmetricKey& key,
const InitializationVector& iv) :
- BlockCipherMode(cipher_name, "CTR-BE", block_size_of(cipher_name), 1)
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CTR-BE", block_size_of(cipher_name), 1)
{
set_key(key);
set_iv(iv);
diff --git a/src/modes/cts/cts.cpp b/src/modes/cts/cts.cpp
index 8af775713..0bce248b5 100644
--- a/src/modes/cts/cts.cpp
+++ b/src/modes/cts/cts.cpp
@@ -14,7 +14,8 @@ namespace Botan {
* CTS Encryption Constructor *
*************************************************/
CTS_Encryption::CTS_Encryption(const std::string& cipher_name) :
- BlockCipherMode(cipher_name, "CTS", block_size_of(cipher_name), 0, 2)
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CTS", block_size_of(cipher_name), 0, 2)
{
}
@@ -24,7 +25,8 @@ CTS_Encryption::CTS_Encryption(const std::string& cipher_name) :
CTS_Encryption::CTS_Encryption(const std::string& cipher_name,
const SymmetricKey& key,
const InitializationVector& iv) :
- BlockCipherMode(cipher_name, "CTS", block_size_of(cipher_name), 0, 2)
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CTS", block_size_of(cipher_name), 0, 2)
{
set_key(key);
set_iv(iv);
@@ -93,7 +95,8 @@ void CTS_Encryption::end_msg()
* CTS Decryption Constructor *
*************************************************/
CTS_Decryption::CTS_Decryption(const std::string& cipher_name) :
- BlockCipherMode(cipher_name, "CTS", block_size_of(cipher_name), 0, 2)
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CTS", block_size_of(cipher_name), 0, 2)
{
temp.create(BLOCK_SIZE);
}
@@ -104,7 +107,8 @@ CTS_Decryption::CTS_Decryption(const std::string& cipher_name) :
CTS_Decryption::CTS_Decryption(const std::string& cipher_name,
const SymmetricKey& key,
const InitializationVector& iv) :
- BlockCipherMode(cipher_name, "CTS", block_size_of(cipher_name), 0, 2)
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "CTS", block_size_of(cipher_name), 0, 2)
{
temp.create(BLOCK_SIZE);
set_key(key);
diff --git a/src/modes/ecb/ecb.cpp b/src/modes/ecb/ecb.cpp
index 8effac1d5..2d0888cea 100644
--- a/src/modes/ecb/ecb.cpp
+++ b/src/modes/ecb/ecb.cpp
@@ -12,7 +12,8 @@ namespace Botan {
* ECB Constructor *
*************************************************/
ECB::ECB(const std::string& cipher_name, const std::string& padding_name) :
- BlockCipherMode(cipher_name, "ECB", 0), padder(get_bc_pad(padding_name))
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "ECB", 0), padder(get_bc_pad(padding_name))
{
}
diff --git a/src/modes/modebase/modebase.cpp b/src/modes/modebase/modebase.cpp
index 6661d9f33..bf3de2572 100644
--- a/src/modes/modebase/modebase.cpp
+++ b/src/modes/modebase/modebase.cpp
@@ -4,21 +4,20 @@
*************************************************/
#include <botan/modebase.h>
-#include <botan/lookup.h>
namespace Botan {
/*************************************************
* Block Cipher Mode Constructor *
*************************************************/
-BlockCipherMode::BlockCipherMode(const std::string& cipher_name,
+BlockCipherMode::BlockCipherMode(BlockCipher* cipher_ptr,
const std::string& cipher_mode_name,
u32bit iv_size, u32bit iv_meth,
u32bit buf_mult) :
- BLOCK_SIZE(block_size_of(cipher_name)), BUFFER_SIZE(buf_mult * BLOCK_SIZE),
+ BLOCK_SIZE(cipher_ptr->BLOCK_SIZE), BUFFER_SIZE(buf_mult * BLOCK_SIZE),
IV_METHOD(iv_meth), mode_name(cipher_mode_name)
{
- base_ptr = cipher = get_block_cipher(cipher_name);
+ base_ptr = cipher = cipher_ptr;
buffer.create(BUFFER_SIZE);
state.create(iv_size);
position = 0;
diff --git a/src/modes/modebase/modebase.h b/src/modes/modebase/modebase.h
index a16b149be..9793c23d2 100644
--- a/src/modes/modebase/modebase.h
+++ b/src/modes/modebase/modebase.h
@@ -19,7 +19,7 @@ class BOTAN_DLL BlockCipherMode : public Keyed_Filter
public:
std::string name() const;
- BlockCipherMode(const std::string&, const std::string&,
+ BlockCipherMode(BlockCipher*, const std::string&,
u32bit, u32bit = 0, u32bit = 1);
virtual ~BlockCipherMode() { delete cipher; }
diff --git a/src/modes/ofb/ofb.cpp b/src/modes/ofb/ofb.cpp
index db254d329..8162f97ba 100644
--- a/src/modes/ofb/ofb.cpp
+++ b/src/modes/ofb/ofb.cpp
@@ -14,7 +14,8 @@ namespace Botan {
* OFB Constructor *
*************************************************/
OFB::OFB(const std::string& cipher_name) :
- BlockCipherMode(cipher_name, "OFB", block_size_of(cipher_name), 2)
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "OFB", block_size_of(cipher_name), 2)
{
}
@@ -23,7 +24,8 @@ OFB::OFB(const std::string& cipher_name) :
*************************************************/
OFB::OFB(const std::string& cipher_name, const SymmetricKey& key,
const InitializationVector& iv) :
- BlockCipherMode(cipher_name, "OFB", block_size_of(cipher_name), 2)
+ BlockCipherMode(get_block_cipher(cipher_name),
+ "OFB", block_size_of(cipher_name), 2)
{
set_key(key);
set_iv(iv);