]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_ripemd160.cpp
converting m_d* done
[user/henk/code/inspircd.git] / src / modules / m_ripemd160.cpp
index 78b164315c154112a07c9ce893513244ff29f355..eed343243a3a7fb1620012801c5a8c7cbe1bd20b 100644 (file)
@@ -64,8 +64,8 @@
 typedef                unsigned char           byte;
 typedef                unsigned int            dword;
 #else
-typedef                uint8_t                         byte;
-typedef                uint32_t                        dword;
+typedef                uint8_t                 byte;
+typedef                uint32_t                dword;
 #endif
 
 /* collect four bytes into one word: */
@@ -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        */
@@ -435,7 +438,7 @@ class ModuleRIPEMD160 : public Module
        }
 
        unsigned int* currkey;
-       char* chars;
+       const char* chars;
 
  public:
 
@@ -461,19 +464,21 @@ class ModuleRIPEMD160 : public Module
                }
                else if (strcmp("HEX", request->GetId()) == 0)
                {
-                       this->chars = (char*)SHA->GetOutputs();
+                       this->chars = SHA->GetOutputs();
                }
                else if (strcmp("SUM", request->GetId()) == 0)
                {
-                       static char* data;
-                       data = (char*)RMD((byte *)SHA->GetHashData().data(),SHA->GetHashData().length(), currkey);
-                       for (int i = 0, j = 0; i < RMDsize / 8; i++)
+                       static char output[MAXBUF];
+                       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++)
                        {
-                               data[j++] = chars[data[i] / 16];
-                               data[j++] = chars[data[i] % 16];
-                               data[j] = '\0';
+                               output[j++] = chars[data[i] / 16];
+                               output[j++] = chars[data[i] % 16];
+                               ServerInstance->Logs->Log("m_ripemd160", DEBUG, "Hash: %02x", data[i]);
                        }
-                       return data;
+                       output[j] = '\0';
+                       return output;
                }
                else if (strcmp("NAME", request->GetId()) == 0)
                {