aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/hash/has160
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/hash/has160')
-rw-r--r--src/lib/hash/has160/has160.cpp152
-rw-r--r--src/lib/hash/has160/has160.h4
2 files changed, 78 insertions, 78 deletions
diff --git a/src/lib/hash/has160/has160.cpp b/src/lib/hash/has160/has160.cpp
index 6b12e10ad..114b5f8b5 100644
--- a/src/lib/hash/has160/has160.cpp
+++ b/src/lib/hash/has160/has160.cpp
@@ -60,78 +60,78 @@ void HAS_160::compress_n(const byte input[], size_t blocks)
{
using namespace HAS_160_F;
- u32bit A = digest[0], B = digest[1], C = digest[2],
- D = digest[3], E = digest[4];
+ u32bit A = m_digest[0], B = m_digest[1], C = m_digest[2],
+ D = m_digest[3], E = m_digest[4];
for(size_t i = 0; i != blocks; ++i)
{
- load_le(X.data(), input, 16);
-
- X[16] = X[ 0] ^ X[ 1] ^ X[ 2] ^ X[ 3];
- X[17] = X[ 4] ^ X[ 5] ^ X[ 6] ^ X[ 7];
- X[18] = X[ 8] ^ X[ 9] ^ X[10] ^ X[11];
- X[19] = X[12] ^ X[13] ^ X[14] ^ X[15];
- F1(A,B,C,D,E,X[18], 5); F1(E,A,B,C,D,X[ 0],11);
- F1(D,E,A,B,C,X[ 1], 7); F1(C,D,E,A,B,X[ 2],15);
- F1(B,C,D,E,A,X[ 3], 6); F1(A,B,C,D,E,X[19],13);
- F1(E,A,B,C,D,X[ 4], 8); F1(D,E,A,B,C,X[ 5],14);
- F1(C,D,E,A,B,X[ 6], 7); F1(B,C,D,E,A,X[ 7],12);
- F1(A,B,C,D,E,X[16], 9); F1(E,A,B,C,D,X[ 8],11);
- F1(D,E,A,B,C,X[ 9], 8); F1(C,D,E,A,B,X[10],15);
- F1(B,C,D,E,A,X[11], 6); F1(A,B,C,D,E,X[17],12);
- F1(E,A,B,C,D,X[12], 9); F1(D,E,A,B,C,X[13],14);
- F1(C,D,E,A,B,X[14], 5); F1(B,C,D,E,A,X[15],13);
-
- X[16] = X[ 3] ^ X[ 6] ^ X[ 9] ^ X[12];
- X[17] = X[ 2] ^ X[ 5] ^ X[ 8] ^ X[15];
- X[18] = X[ 1] ^ X[ 4] ^ X[11] ^ X[14];
- X[19] = X[ 0] ^ X[ 7] ^ X[10] ^ X[13];
- F2(A,B,C,D,E,X[18], 5); F2(E,A,B,C,D,X[ 3],11);
- F2(D,E,A,B,C,X[ 6], 7); F2(C,D,E,A,B,X[ 9],15);
- F2(B,C,D,E,A,X[12], 6); F2(A,B,C,D,E,X[19],13);
- F2(E,A,B,C,D,X[15], 8); F2(D,E,A,B,C,X[ 2],14);
- F2(C,D,E,A,B,X[ 5], 7); F2(B,C,D,E,A,X[ 8],12);
- F2(A,B,C,D,E,X[16], 9); F2(E,A,B,C,D,X[11],11);
- F2(D,E,A,B,C,X[14], 8); F2(C,D,E,A,B,X[ 1],15);
- F2(B,C,D,E,A,X[ 4], 6); F2(A,B,C,D,E,X[17],12);
- F2(E,A,B,C,D,X[ 7], 9); F2(D,E,A,B,C,X[10],14);
- F2(C,D,E,A,B,X[13], 5); F2(B,C,D,E,A,X[ 0],13);
-
- X[16] = X[ 5] ^ X[ 7] ^ X[12] ^ X[14];
- X[17] = X[ 0] ^ X[ 2] ^ X[ 9] ^ X[11];
- X[18] = X[ 4] ^ X[ 6] ^ X[13] ^ X[15];
- X[19] = X[ 1] ^ X[ 3] ^ X[ 8] ^ X[10];
- F3(A,B,C,D,E,X[18], 5); F3(E,A,B,C,D,X[12],11);
- F3(D,E,A,B,C,X[ 5], 7); F3(C,D,E,A,B,X[14],15);
- F3(B,C,D,E,A,X[ 7], 6); F3(A,B,C,D,E,X[19],13);
- F3(E,A,B,C,D,X[ 0], 8); F3(D,E,A,B,C,X[ 9],14);
- F3(C,D,E,A,B,X[ 2], 7); F3(B,C,D,E,A,X[11],12);
- F3(A,B,C,D,E,X[16], 9); F3(E,A,B,C,D,X[ 4],11);
- F3(D,E,A,B,C,X[13], 8); F3(C,D,E,A,B,X[ 6],15);
- F3(B,C,D,E,A,X[15], 6); F3(A,B,C,D,E,X[17],12);
- F3(E,A,B,C,D,X[ 8], 9); F3(D,E,A,B,C,X[ 1],14);
- F3(C,D,E,A,B,X[10], 5); F3(B,C,D,E,A,X[ 3],13);
-
- X[16] = X[ 2] ^ X[ 7] ^ X[ 8] ^ X[13];
- X[17] = X[ 3] ^ X[ 4] ^ X[ 9] ^ X[14];
- X[18] = X[ 0] ^ X[ 5] ^ X[10] ^ X[15];
- X[19] = X[ 1] ^ X[ 6] ^ X[11] ^ X[12];
- F4(A,B,C,D,E,X[18], 5); F4(E,A,B,C,D,X[ 7],11);
- F4(D,E,A,B,C,X[ 2], 7); F4(C,D,E,A,B,X[13],15);
- F4(B,C,D,E,A,X[ 8], 6); F4(A,B,C,D,E,X[19],13);
- F4(E,A,B,C,D,X[ 3], 8); F4(D,E,A,B,C,X[14],14);
- F4(C,D,E,A,B,X[ 9], 7); F4(B,C,D,E,A,X[ 4],12);
- F4(A,B,C,D,E,X[16], 9); F4(E,A,B,C,D,X[15],11);
- F4(D,E,A,B,C,X[10], 8); F4(C,D,E,A,B,X[ 5],15);
- F4(B,C,D,E,A,X[ 0], 6); F4(A,B,C,D,E,X[17],12);
- 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);
-
- A = (digest[0] += A);
- B = (digest[1] += B);
- C = (digest[2] += C);
- D = (digest[3] += D);
- E = (digest[4] += E);
+ load_le(m_X.data(), input, 16);
+
+ m_X[16] = m_X[ 0] ^ m_X[ 1] ^ m_X[ 2] ^ m_X[ 3];
+ m_X[17] = m_X[ 4] ^ m_X[ 5] ^ m_X[ 6] ^ m_X[ 7];
+ m_X[18] = m_X[ 8] ^ m_X[ 9] ^ m_X[10] ^ m_X[11];
+ m_X[19] = m_X[12] ^ m_X[13] ^ m_X[14] ^ m_X[15];
+ F1(A,B,C,D,E,m_X[18], 5); F1(E,A,B,C,D,m_X[ 0],11);
+ F1(D,E,A,B,C,m_X[ 1], 7); F1(C,D,E,A,B,m_X[ 2],15);
+ F1(B,C,D,E,A,m_X[ 3], 6); F1(A,B,C,D,E,m_X[19],13);
+ F1(E,A,B,C,D,m_X[ 4], 8); F1(D,E,A,B,C,m_X[ 5],14);
+ F1(C,D,E,A,B,m_X[ 6], 7); F1(B,C,D,E,A,m_X[ 7],12);
+ F1(A,B,C,D,E,m_X[16], 9); F1(E,A,B,C,D,m_X[ 8],11);
+ F1(D,E,A,B,C,m_X[ 9], 8); F1(C,D,E,A,B,m_X[10],15);
+ F1(B,C,D,E,A,m_X[11], 6); F1(A,B,C,D,E,m_X[17],12);
+ F1(E,A,B,C,D,m_X[12], 9); F1(D,E,A,B,C,m_X[13],14);
+ F1(C,D,E,A,B,m_X[14], 5); F1(B,C,D,E,A,m_X[15],13);
+
+ m_X[16] = m_X[ 3] ^ m_X[ 6] ^ m_X[ 9] ^ m_X[12];
+ m_X[17] = m_X[ 2] ^ m_X[ 5] ^ m_X[ 8] ^ m_X[15];
+ m_X[18] = m_X[ 1] ^ m_X[ 4] ^ m_X[11] ^ m_X[14];
+ m_X[19] = m_X[ 0] ^ m_X[ 7] ^ m_X[10] ^ m_X[13];
+ F2(A,B,C,D,E,m_X[18], 5); F2(E,A,B,C,D,m_X[ 3],11);
+ F2(D,E,A,B,C,m_X[ 6], 7); F2(C,D,E,A,B,m_X[ 9],15);
+ F2(B,C,D,E,A,m_X[12], 6); F2(A,B,C,D,E,m_X[19],13);
+ F2(E,A,B,C,D,m_X[15], 8); F2(D,E,A,B,C,m_X[ 2],14);
+ F2(C,D,E,A,B,m_X[ 5], 7); F2(B,C,D,E,A,m_X[ 8],12);
+ F2(A,B,C,D,E,m_X[16], 9); F2(E,A,B,C,D,m_X[11],11);
+ F2(D,E,A,B,C,m_X[14], 8); F2(C,D,E,A,B,m_X[ 1],15);
+ F2(B,C,D,E,A,m_X[ 4], 6); F2(A,B,C,D,E,m_X[17],12);
+ F2(E,A,B,C,D,m_X[ 7], 9); F2(D,E,A,B,C,m_X[10],14);
+ F2(C,D,E,A,B,m_X[13], 5); F2(B,C,D,E,A,m_X[ 0],13);
+
+ m_X[16] = m_X[ 5] ^ m_X[ 7] ^ m_X[12] ^ m_X[14];
+ m_X[17] = m_X[ 0] ^ m_X[ 2] ^ m_X[ 9] ^ m_X[11];
+ m_X[18] = m_X[ 4] ^ m_X[ 6] ^ m_X[13] ^ m_X[15];
+ m_X[19] = m_X[ 1] ^ m_X[ 3] ^ m_X[ 8] ^ m_X[10];
+ F3(A,B,C,D,E,m_X[18], 5); F3(E,A,B,C,D,m_X[12],11);
+ F3(D,E,A,B,C,m_X[ 5], 7); F3(C,D,E,A,B,m_X[14],15);
+ F3(B,C,D,E,A,m_X[ 7], 6); F3(A,B,C,D,E,m_X[19],13);
+ F3(E,A,B,C,D,m_X[ 0], 8); F3(D,E,A,B,C,m_X[ 9],14);
+ F3(C,D,E,A,B,m_X[ 2], 7); F3(B,C,D,E,A,m_X[11],12);
+ F3(A,B,C,D,E,m_X[16], 9); F3(E,A,B,C,D,m_X[ 4],11);
+ F3(D,E,A,B,C,m_X[13], 8); F3(C,D,E,A,B,m_X[ 6],15);
+ F3(B,C,D,E,A,m_X[15], 6); F3(A,B,C,D,E,m_X[17],12);
+ F3(E,A,B,C,D,m_X[ 8], 9); F3(D,E,A,B,C,m_X[ 1],14);
+ F3(C,D,E,A,B,m_X[10], 5); F3(B,C,D,E,A,m_X[ 3],13);
+
+ m_X[16] = m_X[ 2] ^ m_X[ 7] ^ m_X[ 8] ^ m_X[13];
+ m_X[17] = m_X[ 3] ^ m_X[ 4] ^ m_X[ 9] ^ m_X[14];
+ m_X[18] = m_X[ 0] ^ m_X[ 5] ^ m_X[10] ^ m_X[15];
+ m_X[19] = m_X[ 1] ^ m_X[ 6] ^ m_X[11] ^ m_X[12];
+ F4(A,B,C,D,E,m_X[18], 5); F4(E,A,B,C,D,m_X[ 7],11);
+ F4(D,E,A,B,C,m_X[ 2], 7); F4(C,D,E,A,B,m_X[13],15);
+ F4(B,C,D,E,A,m_X[ 8], 6); F4(A,B,C,D,E,m_X[19],13);
+ F4(E,A,B,C,D,m_X[ 3], 8); F4(D,E,A,B,C,m_X[14],14);
+ F4(C,D,E,A,B,m_X[ 9], 7); F4(B,C,D,E,A,m_X[ 4],12);
+ F4(A,B,C,D,E,m_X[16], 9); F4(E,A,B,C,D,m_X[15],11);
+ F4(D,E,A,B,C,m_X[10], 8); F4(C,D,E,A,B,m_X[ 5],15);
+ F4(B,C,D,E,A,m_X[ 0], 6); F4(A,B,C,D,E,m_X[17],12);
+ F4(E,A,B,C,D,m_X[11], 9); F4(D,E,A,B,C,m_X[ 6],14);
+ F4(C,D,E,A,B,m_X[ 1], 5); F4(B,C,D,E,A,m_X[12],13);
+
+ A = (m_digest[0] += A);
+ B = (m_digest[1] += B);
+ C = (m_digest[2] += C);
+ D = (m_digest[3] += D);
+ E = (m_digest[4] += E);
input += hash_block_size();
}
@@ -142,7 +142,7 @@ void HAS_160::compress_n(const byte input[], size_t blocks)
*/
void HAS_160::copy_out(byte output[])
{
- copy_out_vec_le(output, output_length(), digest);
+ copy_out_vec_le(output, output_length(), m_digest);
}
/*
@@ -151,12 +151,12 @@ void HAS_160::copy_out(byte output[])
void HAS_160::clear()
{
MDx_HashFunction::clear();
- zeroise(X);
- digest[0] = 0x67452301;
- digest[1] = 0xEFCDAB89;
- digest[2] = 0x98BADCFE;
- digest[3] = 0x10325476;
- digest[4] = 0xC3D2E1F0;
+ zeroise(m_X);
+ m_digest[0] = 0x67452301;
+ m_digest[1] = 0xEFCDAB89;
+ m_digest[2] = 0x98BADCFE;
+ m_digest[3] = 0x10325476;
+ m_digest[4] = 0xC3D2E1F0;
}
}
diff --git a/src/lib/hash/has160/has160.h b/src/lib/hash/has160/has160.h
index 75d0bda90..ca9be03b0 100644
--- a/src/lib/hash/has160/has160.h
+++ b/src/lib/hash/has160/has160.h
@@ -25,13 +25,13 @@ class BOTAN_DLL HAS_160 : public MDx_HashFunction
void clear() override;
- HAS_160() : MDx_HashFunction(64, false, true), X(20), digest(5)
+ HAS_160() : MDx_HashFunction(64, false, true), m_X(20), m_digest(5)
{ clear(); }
private:
void compress_n(const byte[], size_t blocks) override;
void copy_out(byte[]) override;
- secure_vector<u32bit> X, digest;
+ secure_vector<u32bit> m_X, m_digest;
};
}