X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_ripemd160.cpp;h=eed343243a3a7fb1620012801c5a8c7cbe1bd20b;hb=8e89fe75f9467969bce1dc6930befc6ef273edf6;hp=78b164315c154112a07c9ce893513244ff29f355;hpb=839f5721f5f4c317deebc5d207bcba5f90037e42;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_ripemd160.cpp b/src/modules/m_ripemd160.cpp index 78b164315..eed343243 100644 --- a/src/modules/m_ripemd160.cpp +++ b/src/modules/m_ripemd160.cpp @@ -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) {