summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-04-10 16:31:02 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-04-10 16:31:02 +0000
commit1885e8805103c95aa75d73af8ee2fd55ad1b67e1 (patch)
tree7fd9863b463f3b28a6065b49b327a25a0067b140
parentc492f5a98732d9d856e0846ece467d964dab646a (diff)
This now passes all the RIPEMD160 test vectors and is a complete and usable module:
[17:27] --- ripemd160 hashed password for a is 0bdc9d2d256b3ee9daae347be6f4dc835a467ffe [17:27] --- ripemd160 hashed password for abc is 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc [17:27] --- ripemd160 hashed password for message is 1dddbe1bea18cfda41f3fa4e6e66dbbbab93774e [17:27] --- ripemd160 hashed password for message digest is 5d0689ef49d2fae572b881b123a85ffa21595f36 [17:28] --- ripemd160 hashed password for abcdefghijklmnopqrstuvwxyz is f71c27109c692c1b56bbdceb5b9d2865b3708dbc [17:28] --- ripemd160 hashed password for is 9c1185a5c5e9fc54612808977ee8f548b2258d31 [17:28] --- ripemd160 hashed password for abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq is 12a053384a9c0c88e405a06c27dcf49ada62eb2b [17:29] --- ripemd160 hashed password for ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 is b0e20b6e3116640286ed3a87a5713079b21f5189 [17:29] --- ripemd160 hashed password for 12345678901234567890123456789012345678901234567890123456789012345678901234567890 is 9b752e45573d4b39f4dbd3323cab82bf63326bfb git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9448 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/modules/m_ripemd160.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/modules/m_ripemd160.cpp b/src/modules/m_ripemd160.cpp
index b6fd27344..eed343243 100644
--- a/src/modules/m_ripemd160.cpp
+++ b/src/modules/m_ripemd160.cpp
@@ -156,6 +156,7 @@ class ModuleRIPEMD160 : public Module
{
if (key)
{
+ ServerInstance->Logs->Log("m_ripemd160.so", DEBUG, "initialize with custom mdbuf");
MDbuf[0] = key[0];
MDbuf[1] = key[1];
MDbuf[2] = key[2];
@@ -164,6 +165,7 @@ class ModuleRIPEMD160 : public Module
}
else
{
+ ServerInstance->Logs->Log("m_ripemd160.so", DEBUG, "initialize with default mdbuf");
MDbuf[0] = 0x67452301UL;
MDbuf[1] = 0xefcdab89UL;
MDbuf[2] = 0x98badcfeUL;
@@ -404,6 +406,7 @@ class ModuleRIPEMD160 : public Module
byte *RMD(byte *message, dword length, unsigned int* key)
{
+ ServerInstance->Logs->Log("m_ripemd160", DEBUG, "RMD: '%s' length=%u", (const char*)message, length);
dword MDbuf[RMDsize/32]; /* contains (A, B, C, D(, E)) */
static byte hashcode[RMDsize/8]; /* for final hash-value */
dword X[16]; /* current 16-word chunk */
@@ -466,13 +469,15 @@ class ModuleRIPEMD160 : public Module
else if (strcmp("SUM", request->GetId()) == 0)
{
static char output[MAXBUF];
- char* data = (char*)RMD((byte *)SHA->GetHashData().data(),SHA->GetHashData().length(), currkey);
- for (int i = 0, j = 0; i < RMDsize / 8; i++)
+ unsigned char* data = (unsigned char*)RMD((byte *)SHA->GetHashData().data(),SHA->GetHashData().length(), currkey);
+ int j = 0;
+ for (int i = 0; i < RMDsize / 8; i++)
{
output[j++] = chars[data[i] / 16];
output[j++] = chars[data[i] % 16];
- output[j] = '\0';
+ ServerInstance->Logs->Log("m_ripemd160", DEBUG, "Hash: %02x", data[i]);
}
+ output[j] = '\0';
return output;
}
else if (strcmp("NAME", request->GetId()) == 0)