aboutsummaryrefslogtreecommitdiffstats
path: root/src/hash
diff options
context:
space:
mode:
Diffstat (limited to 'src/hash')
-rw-r--r--src/hash/bmw/bmw_512.cpp2
-rw-r--r--src/hash/comb4p/comb4p.cpp4
-rw-r--r--src/hash/gost_3411/gost_3411.cpp12
-rw-r--r--src/hash/has160/has160.cpp2
-rw-r--r--src/hash/hash.h7
-rw-r--r--src/hash/md2/md2.cpp22
-rw-r--r--src/hash/md4/md4.cpp2
-rw-r--r--src/hash/md4_ia32/md4_ia32.cpp2
-rw-r--r--src/hash/md5/md5.cpp2
-rw-r--r--src/hash/md5_ia32/md5_ia32.cpp2
-rw-r--r--src/hash/mdx_hash/mdx_hash.cpp20
-rw-r--r--src/hash/rmd128/rmd128.cpp2
-rw-r--r--src/hash/rmd160/rmd160.cpp2
-rw-r--r--src/hash/sha1/sha160.cpp2
-rw-r--r--src/hash/sha1_amd64/sha1_amd64.cpp2
-rw-r--r--src/hash/sha1_ia32/sha1_ia32.cpp2
-rw-r--r--src/hash/sha1_sse2/sha1_sse2.cpp2
-rw-r--r--src/hash/tiger/tiger.cpp2
-rw-r--r--src/hash/whirlpool/whrlpool.cpp2
19 files changed, 49 insertions, 44 deletions
diff --git a/src/hash/bmw/bmw_512.cpp b/src/hash/bmw/bmw_512.cpp
index 3999cb95c..40338fdf0 100644
--- a/src/hash/bmw/bmw_512.cpp
+++ b/src/hash/bmw/bmw_512.cpp
@@ -147,7 +147,7 @@ void BMW_512::compress_n(const byte input[], size_t blocks)
BMW_512_compress(&H[0], &M[0], &Q[0]);
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/comb4p/comb4p.cpp b/src/hash/comb4p/comb4p.cpp
index c4cd1cc79..5e336e98b 100644
--- a/src/hash/comb4p/comb4p.cpp
+++ b/src/hash/comb4p/comb4p.cpp
@@ -16,8 +16,8 @@ namespace {
size_t comb4p_block_size(const HashFunction* h1,
const HashFunction* h2)
{
- if(h1->HASH_BLOCK_SIZE == h2->HASH_BLOCK_SIZE)
- return h1->HASH_BLOCK_SIZE;
+ if(h1->hash_block_size() == h2->hash_block_size())
+ return h1->hash_block_size();
/*
* Return LCM of the block sizes? This would probably be OK for
diff --git a/src/hash/gost_3411/gost_3411.cpp b/src/hash/gost_3411/gost_3411.cpp
index dbd6335bd..47e073e1f 100644
--- a/src/hash/gost_3411/gost_3411.cpp
+++ b/src/hash/gost_3411/gost_3411.cpp
@@ -46,22 +46,22 @@ void GOST_34_11::add_data(const byte input[], size_t length)
{
buffer.copy(position, input, length);
- if(position + length >= HASH_BLOCK_SIZE)
+ if(position + length >= hash_block_size())
{
compress_n(&buffer[0], 1);
- input += (HASH_BLOCK_SIZE - position);
- length -= (HASH_BLOCK_SIZE - position);
+ input += (hash_block_size() - position);
+ length -= (hash_block_size() - position);
position = 0;
}
}
- const size_t full_blocks = length / HASH_BLOCK_SIZE;
- const size_t remaining = length % HASH_BLOCK_SIZE;
+ const size_t full_blocks = length / hash_block_size();
+ const size_t remaining = length % hash_block_size();
if(full_blocks)
compress_n(input, full_blocks);
- buffer.copy(position, input + full_blocks * HASH_BLOCK_SIZE, remaining);
+ buffer.copy(position, input + full_blocks * hash_block_size(), remaining);
position += remaining;
}
diff --git a/src/hash/has160/has160.cpp b/src/hash/has160/has160.cpp
index 72246a845..6890ccb85 100644
--- a/src/hash/has160/has160.cpp
+++ b/src/hash/has160/has160.cpp
@@ -135,7 +135,7 @@ void HAS_160::compress_n(const byte input[], size_t blocks)
D = (digest[3] += D);
E = (digest[4] += E);
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/hash.h b/src/hash/hash.h
index cdf90f184..b331debc2 100644
--- a/src/hash/hash.h
+++ b/src/hash/hash.h
@@ -18,12 +18,17 @@ namespace Botan {
*/
class BOTAN_DLL HashFunction : public BufferedComputation
{
- public:
/**
* The hash block size as defined for this algorithm.
*/
const u32bit HASH_BLOCK_SIZE;
+ public:
+ /**
+ * The hash block size as defined for this algorithm
+ */
+ virtual size_t hash_block_size() const { return HASH_BLOCK_SIZE; }
+
/**
* Get a new object representing the same algorithm as *this
*/
diff --git a/src/hash/md2/md2.cpp b/src/hash/md2/md2.cpp
index f2d6d800b..195c0843e 100644
--- a/src/hash/md2/md2.cpp
+++ b/src/hash/md2/md2.cpp
@@ -39,8 +39,8 @@ void MD2::hash(const byte input[])
0x31, 0x44, 0x50, 0xB4, 0x8F, 0xED, 0x1F, 0x1A, 0xDB, 0x99, 0x8D, 0x33,
0x9F, 0x11, 0x83, 0x14 };
- X.copy(16, input, HASH_BLOCK_SIZE);
- xor_buf(&X[32], &X[0], &X[16], HASH_BLOCK_SIZE);
+ X.copy(16, input, hash_block_size());
+ xor_buf(&X[32], &X[0], &X[16], hash_block_size());
byte T = 0;
for(size_t i = 0; i != 18; ++i)
@@ -56,7 +56,7 @@ void MD2::hash(const byte input[])
}
T = checksum[15];
- for(size_t i = 0; i != HASH_BLOCK_SIZE; ++i)
+ for(size_t i = 0; i != hash_block_size(); ++i)
T = checksum[i] ^= SBOX[input[i] ^ T];
}
@@ -67,16 +67,16 @@ void MD2::add_data(const byte input[], size_t length)
{
buffer.copy(position, input, length);
- if(position + length >= HASH_BLOCK_SIZE)
+ if(position + length >= hash_block_size())
{
hash(&buffer[0]);
- input += (HASH_BLOCK_SIZE - position);
- length -= (HASH_BLOCK_SIZE - position);
- while(length >= HASH_BLOCK_SIZE)
+ input += (hash_block_size() - position);
+ length -= (hash_block_size() - position);
+ while(length >= hash_block_size())
{
hash(input);
- input += HASH_BLOCK_SIZE;
- length -= HASH_BLOCK_SIZE;
+ input += hash_block_size();
+ length -= hash_block_size();
}
buffer.copy(input, length);
position = 0;
@@ -89,8 +89,8 @@ void MD2::add_data(const byte input[], size_t length)
*/
void MD2::final_result(byte output[])
{
- for(size_t i = position; i != HASH_BLOCK_SIZE; ++i)
- buffer[i] = static_cast<byte>(HASH_BLOCK_SIZE - position);
+ for(size_t i = position; i != hash_block_size(); ++i)
+ buffer[i] = static_cast<byte>(hash_block_size() - position);
hash(&buffer[0]);
hash(&checksum[0]);
diff --git a/src/hash/md4/md4.cpp b/src/hash/md4/md4.cpp
index 2b24d10fd..9b9ebab36 100644
--- a/src/hash/md4/md4.cpp
+++ b/src/hash/md4/md4.cpp
@@ -85,7 +85,7 @@ void MD4::compress_n(const byte input[], size_t blocks)
C = (digest[2] += C);
D = (digest[3] += D);
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/md4_ia32/md4_ia32.cpp b/src/hash/md4_ia32/md4_ia32.cpp
index 8983995fc..1e3cd64c3 100644
--- a/src/hash/md4_ia32/md4_ia32.cpp
+++ b/src/hash/md4_ia32/md4_ia32.cpp
@@ -19,7 +19,7 @@ void MD4_IA32::compress_n(const byte input[], size_t blocks)
for(size_t i = 0; i != blocks; ++i)
{
botan_md4_ia32_compress(digest, input, M);
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/md5/md5.cpp b/src/hash/md5/md5.cpp
index 9a5f95ca8..948f4e73b 100644
--- a/src/hash/md5/md5.cpp
+++ b/src/hash/md5/md5.cpp
@@ -107,7 +107,7 @@ void MD5::compress_n(const byte input[], size_t blocks)
C = (digest[2] += C);
D = (digest[3] += D);
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/md5_ia32/md5_ia32.cpp b/src/hash/md5_ia32/md5_ia32.cpp
index 66a18e6f5..6ae235d2b 100644
--- a/src/hash/md5_ia32/md5_ia32.cpp
+++ b/src/hash/md5_ia32/md5_ia32.cpp
@@ -24,7 +24,7 @@ void MD5_IA32::compress_n(const byte input[], size_t blocks)
for(size_t i = 0; i != blocks; ++i)
{
botan_md5_ia32_compress(digest, input, M);
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/mdx_hash/mdx_hash.cpp b/src/hash/mdx_hash/mdx_hash.cpp
index 9bf6b573a..930f9a938 100644
--- a/src/hash/mdx_hash/mdx_hash.cpp
+++ b/src/hash/mdx_hash/mdx_hash.cpp
@@ -20,7 +20,7 @@ MDx_HashFunction::MDx_HashFunction(size_t hash_len, size_t block_len,
HashFunction(hash_len, block_len), buffer(block_len),
BIG_BYTE_ENDIAN(byte_end), BIG_BIT_ENDIAN(bit_end), COUNT_SIZE(cnt_size)
{
- if(COUNT_SIZE >= output_length() || COUNT_SIZE >= HASH_BLOCK_SIZE)
+ if(COUNT_SIZE >= output_length() || COUNT_SIZE >= hash_block_size())
throw Invalid_Argument("MDx_HashFunction: COUNT_SIZE is too big");
count = position = 0;
}
@@ -45,22 +45,22 @@ void MDx_HashFunction::add_data(const byte input[], size_t length)
{
buffer.copy(position, input, length);
- if(position + length >= HASH_BLOCK_SIZE)
+ if(position + length >= hash_block_size())
{
compress_n(&buffer[0], 1);
- input += (HASH_BLOCK_SIZE - position);
- length -= (HASH_BLOCK_SIZE - position);
+ input += (hash_block_size() - position);
+ length -= (hash_block_size() - position);
position = 0;
}
}
- const size_t full_blocks = length / HASH_BLOCK_SIZE;
- const size_t remaining = length % HASH_BLOCK_SIZE;
+ const size_t full_blocks = length / hash_block_size();
+ const size_t remaining = length % hash_block_size();
if(full_blocks)
compress_n(input, full_blocks);
- buffer.copy(position, input + full_blocks * HASH_BLOCK_SIZE, remaining);
+ buffer.copy(position, input + full_blocks * hash_block_size(), remaining);
position += remaining;
}
@@ -70,16 +70,16 @@ void MDx_HashFunction::add_data(const byte input[], size_t length)
void MDx_HashFunction::final_result(byte output[])
{
buffer[position] = (BIG_BIT_ENDIAN ? 0x80 : 0x01);
- for(size_t i = position+1; i != HASH_BLOCK_SIZE; ++i)
+ for(size_t i = position+1; i != hash_block_size(); ++i)
buffer[i] = 0;
- if(position >= HASH_BLOCK_SIZE - COUNT_SIZE)
+ if(position >= hash_block_size() - COUNT_SIZE)
{
compress_n(&buffer[0], 1);
zeroise(buffer);
}
- write_count(&buffer[HASH_BLOCK_SIZE - COUNT_SIZE]);
+ write_count(&buffer[hash_block_size() - COUNT_SIZE]);
compress_n(&buffer[0], 1);
copy_out(output);
diff --git a/src/hash/rmd128/rmd128.cpp b/src/hash/rmd128/rmd128.cpp
index edbe9fa84..cab4adf8b 100644
--- a/src/hash/rmd128/rmd128.cpp
+++ b/src/hash/rmd128/rmd128.cpp
@@ -147,7 +147,7 @@ void RIPEMD_128::compress_n(const byte input[], size_t blocks)
digest[3] = digest[0] + B1 + C2;
digest[0] = D2;
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/rmd160/rmd160.cpp b/src/hash/rmd160/rmd160.cpp
index c3ae7119b..ff1c1c4ec 100644
--- a/src/hash/rmd160/rmd160.cpp
+++ b/src/hash/rmd160/rmd160.cpp
@@ -180,7 +180,7 @@ void RIPEMD_160::compress_n(const byte input[], size_t blocks)
digest[4] = digest[0] + B1 + C2;
digest[0] = C1;
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/sha1/sha160.cpp b/src/hash/sha1/sha160.cpp
index 4778e5765..aa6a066e8 100644
--- a/src/hash/sha1/sha160.cpp
+++ b/src/hash/sha1/sha160.cpp
@@ -125,7 +125,7 @@ void SHA_160::compress_n(const byte input[], size_t blocks)
D = (digest[3] += D);
E = (digest[4] += E);
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/sha1_amd64/sha1_amd64.cpp b/src/hash/sha1_amd64/sha1_amd64.cpp
index 00b1788cb..d32b44901 100644
--- a/src/hash/sha1_amd64/sha1_amd64.cpp
+++ b/src/hash/sha1_amd64/sha1_amd64.cpp
@@ -24,7 +24,7 @@ void SHA_160_AMD64::compress_n(const byte input[], size_t blocks)
for(size_t i = 0; i != blocks; ++i)
{
botan_sha160_amd64_compress(&digest[0], input, &W[0]);
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/sha1_ia32/sha1_ia32.cpp b/src/hash/sha1_ia32/sha1_ia32.cpp
index 6bc9f31ec..3e9cff047 100644
--- a/src/hash/sha1_ia32/sha1_ia32.cpp
+++ b/src/hash/sha1_ia32/sha1_ia32.cpp
@@ -24,7 +24,7 @@ void SHA_160_IA32::compress_n(const byte input[], size_t blocks)
for(size_t i = 0; i != blocks; ++i)
{
botan_sha160_ia32_compress(&digest[0], input, &W[0]);
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/sha1_sse2/sha1_sse2.cpp b/src/hash/sha1_sse2/sha1_sse2.cpp
index 8270f9ac4..e890967c6 100644
--- a/src/hash/sha1_sse2/sha1_sse2.cpp
+++ b/src/hash/sha1_sse2/sha1_sse2.cpp
@@ -317,7 +317,7 @@ void SHA_160_SSE2::compress_n(const byte input_bytes[], size_t blocks)
D = (digest[3] += D);
E = (digest[4] += E);
- input += (HASH_BLOCK_SIZE / 16);
+ input += (hash_block_size() / 16);
}
#undef GET_P_32
diff --git a/src/hash/tiger/tiger.cpp b/src/hash/tiger/tiger.cpp
index 67baf8d19..7f95267aa 100644
--- a/src/hash/tiger/tiger.cpp
+++ b/src/hash/tiger/tiger.cpp
@@ -66,7 +66,7 @@ void Tiger::compress_n(const byte input[], size_t blocks)
B = digest[1] = B - digest[1];
C = (digest[2] += C);
- input += HASH_BLOCK_SIZE;
+ input += hash_block_size();
}
}
diff --git a/src/hash/whirlpool/whrlpool.cpp b/src/hash/whirlpool/whrlpool.cpp
index bff4b27ad..5356252b2 100644
--- a/src/hash/whirlpool/whrlpool.cpp
+++ b/src/hash/whirlpool/whrlpool.cpp
@@ -120,7 +120,7 @@ void Whirlpool::compress_n(const byte in[], size_t blocks)
digest[6] ^= B6 ^ M[6];
digest[7] ^= B7 ^ M[7];
- in += HASH_BLOCK_SIZE;
+ in += hash_block_size();
}
}