aboutsummaryrefslogtreecommitdiffstats
path: root/src/hash/has160
diff options
context:
space:
mode:
Diffstat (limited to 'src/hash/has160')
-rw-r--r--src/hash/has160/has160.cpp20
-rw-r--r--src/hash/has160/has160.h2
-rw-r--r--src/hash/has160/info.txt2
3 files changed, 13 insertions, 11 deletions
diff --git a/src/hash/has160/has160.cpp b/src/hash/has160/has160.cpp
index 9a505d31d..ae45418ce 100644
--- a/src/hash/has160/has160.cpp
+++ b/src/hash/has160/has160.cpp
@@ -60,13 +60,12 @@ inline void F4(u32bit A, u32bit& B, u32bit C, u32bit D, u32bit& E,
*/
void HAS_160::compress_n(const byte input[], u32bit blocks)
{
+ u32bit A = digest[0], B = digest[1], C = digest[2],
+ D = digest[3], E = digest[4];
+
for(u32bit i = 0; i != blocks; ++i)
{
- for(u32bit j = 0; j != 16; ++j)
- X[j] = load_le<u32bit>(input, j);
-
- u32bit A = digest[0], B = digest[1], C = digest[2],
- D = digest[3], E = digest[4];
+ load_le(X.begin(), input, 16);
X[16] = X[ 0] ^ X[ 1] ^ X[ 2] ^ X[ 3];
X[17] = X[ 4] ^ X[ 5] ^ X[ 6] ^ X[ 7];
@@ -128,8 +127,13 @@ void HAS_160::compress_n(const byte input[], u32bit blocks)
F4(E,A,B,C,D,X[11], 9); F4(D,E,A,B,C,X[ 6],14);
F4(C,D,E,A,B,X[ 1], 5); F4(B,C,D,E,A,X[12],13);
- digest[0] += A; digest[1] += B; digest[2] += C;
- digest[3] += D; digest[4] += E;
+ A = (digest[0] += A);
+ B = (digest[1] += B);
+ C = (digest[2] += C);
+ D = (digest[3] += D);
+ E = (digest[4] += E);
+
+ input += HASH_BLOCK_SIZE;
}
}
@@ -145,7 +149,7 @@ void HAS_160::copy_out(byte output[])
/*
* Clear memory of sensitive data
*/
-void HAS_160::clear() throw()
+void HAS_160::clear()
{
MDx_HashFunction::clear();
X.clear();
diff --git a/src/hash/has160/has160.h b/src/hash/has160/has160.h
index 44bb63b9d..cae66c93a 100644
--- a/src/hash/has160/has160.h
+++ b/src/hash/has160/has160.h
@@ -18,7 +18,7 @@ namespace Botan {
class BOTAN_DLL HAS_160 : public MDx_HashFunction
{
public:
- void clear() throw();
+ void clear();
std::string name() const { return "HAS-160"; }
HashFunction* clone() const { return new HAS_160; }
HAS_160() : MDx_HashFunction(20, 64, false, true) { clear(); }
diff --git a/src/hash/has160/info.txt b/src/hash/has160/info.txt
index 98cbc5155..f862bdb20 100644
--- a/src/hash/has160/info.txt
+++ b/src/hash/has160/info.txt
@@ -1,5 +1,3 @@
-realname "HAS-160"
-
define HAS_160
<requires>