From bd8ed530b9cc5235c6327b93120780fdad83b71e Mon Sep 17 00:00:00 2001 From: root Date: Mon, 31 Oct 2016 21:18:24 +0000 Subject: [PATCH] add md5 support --- build/httpd | Bin 45172 -> 0 bytes plugins/utils.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++ plugins/utils.h | 3 ++ 3 files changed, 127 insertions(+) delete mode 100755 build/httpd diff --git a/build/httpd b/build/httpd deleted file mode 100755 index 48502089090958bc6396d3b830e7eac2dea9ecc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45172 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 diff --git a/plugins/utils.c b/plugins/utils.c index f13dae2..c85bb12 100644 --- a/plugins/utils.c +++ b/plugins/utils.c @@ -335,4 +335,128 @@ int is_file(const char* f) { struct stat st; return !(stat(f, &st) == -1); +} + +// These vars will contain the hash + +void md5(uint8_t *initial_msg, size_t initial_len, char* buff) { + uint32_t h0, h1, h2, h3; + char tmp[80]; + uint8_t *msg = NULL; + uint32_t r[] = {7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, + 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, + 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, + 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21}; + // Use binary integer part of the sines of integers (in radians) as constants// Initialize variables: + uint32_t k[] = { + 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, + 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, + 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, + 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821, + 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, + 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8, + 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, + 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a, + 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, + 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, + 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05, + 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, + 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, + 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, + 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, + 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391}; + + h0 = 0x67452301; + h1 = 0xefcdab89; + h2 = 0x98badcfe; + h3 = 0x10325476; + + // Pre-processing: adding a single 1 bit + //append "1" bit to message + /* Notice: the input bytes are considered as bits strings, + where the first bit is the most significant bit of the byte.[37] */ + + // Pre-processing: padding with zeros + //append "0" bit until message length in bit ≡ 448 (mod 512) + //append length mod (2 pow 64) to message + + int new_len; + for(new_len = initial_len*8 + 1; new_len%512!=448; new_len++); + new_len /= 8; + + msg = calloc(new_len + 64, 1); // also appends "0" bits + // (we alloc also 64 extra bytes...) + memcpy(msg, initial_msg, initial_len); + msg[initial_len] = 128; // write the "1" bit + + uint32_t bits_len = 8*initial_len; // note, we append the len + memcpy(msg + new_len, &bits_len, 4); // in bits at the end of the buffer + + // Process the message in successive 512-bit chunks: + //for each 512-bit chunk of message: + int offset; + for(offset=0; offset #include #include +#include +#define LEFTROTATE(x, c) (((x) << (c)) | ((x) >> (32 - (c)))) #define EQU(a,b) (strcmp(a,b) == 0) #define IEQU(a,b) (strcasecmp(a,b) == 0) #define IS_INT(a) (match_int(a)) @@ -82,4 +84,5 @@ char to_hex(char code); unsigned hash(const char*, int); unsigned simple_hash(const char*); int is_file(const char* f); +void md5(uint8_t *, size_t , char*); #endif