Set mangle to create a base64-encoded hmac-md5
[pwdhash.git] / salted.c
index dadd650..0d1dab0 100644 (file)
--- a/salted.c
+++ b/salted.c
@@ -48,7 +48,7 @@ u32x mangle_md5 (u32x w0[4], u32x w1[4], const u32x in_len)
         digest[2] = MD5M_C;
         digest[3] = MD5M_D;
 
-        md5_transform (w0_t, w1_t, w2_t, w3_t, digest);
+        md5_transform_cl (w0_t, w1_t, w2_t, w3_t, digest);
 
         u8 b64encoded[16];
 
@@ -93,10 +93,11 @@ u32x mangle_md5 (u32x w0[4], u32x w1[4], const u32x in_len)
 u32x mangle_hmac (u32x w0[4], u32x w1[4], const u32x in_len)
 {
         u32x out_len = in_len;
+
                u32 digest[4];
                u32 data[8];
                u32 i;
-               
+
                data[0] = w0[0];
                data[1] = w0[1];
                data[2] = w0[2];
@@ -105,14 +106,14 @@ u32x mangle_hmac (u32x w0[4], u32x w1[4], const u32x in_len)
                data[5] = w1[1];
                data[6] = w1[2];
                data[7] = w1[3];
-       
-               md5hmac_cl("flypig.co.uk", strlen("flypig.co.uk"), (u8 *)data, in_len, (u8 *)digest);
 
-               printf("HMAC: ");
-               for (i = 0; i < 16; i++) {
-                       printf("%x", ((u8 *)digest)[i]);
-               }
-               printf("\n");
+               md5hmac_domain((u8 *)data, in_len, (u8 *)digest);
+
+//             printf("HMAC: ");
+//             for (i = 0; i < 16; i++) {
+//                     printf("%x", ((u8 *)digest)[i]);
+//             }
+//             printf("\n");
 
                w0[0] = digest[0];
                w0[1] = digest[1];
@@ -124,11 +125,12 @@ u32x mangle_hmac (u32x w0[4], u32x w1[4], const u32x in_len)
                w1[3] = 0;
 
         out_len = b64_encode ((u8 *)data, 16, (u8 *)w0);
+               //out_len = 8;
 
-        for (i = out_len; i < 32; i++) {
-                ((u8 *)data)[i] = 0;
-        }
-        
+               for (i = out_len; i < 32; i++) {
+                               ((u8 *)data)[i] = 0;
+               }
+      
                w0[0] = data[0];
                w0[1] = data[1];
                w0[2] = data[2];
@@ -141,6 +143,13 @@ u32x mangle_hmac (u32x w0[4], u32x w1[4], const u32x in_len)
         return (out_len);
 }
 
+void writeHexByte(unsigned char byte, unsigned char * hex) {
+       static char number[] = "0123456789abcdef";
+       
+       hex[0] = number[(byte >> 4)];
+       hex[1] = number[(byte % 16)];
+}
+
 int main(int argc, char * argv[]) {
        unsigned char result[RESULT_MAX];
        unsigned char salt[SALT_MAX];
@@ -170,15 +179,15 @@ int main(int argc, char * argv[]) {
        }
        salt[SALT_MAX - 1] = '\0';
 
-       SPH_HashedPassowrd("hashcat", "flypig.co.uk", result);
+       //SPH_HashedPassowrd("hashcat", "flypig.co.uk", result);
 
        //mangle(password);
 
-       mangle_hmac ((u32x *)password, (u32x *)(password + 16), strlen(password));
+       size = mangle_hmac ((u32x *)password, (u32x *)(password + 16), strlen(password));
 
        //md5hmac(salt, password, digest);
 
-       md5hmac_cl(salt, strlen(salt), password, strlen(password), digest);
+       md5hmac_cl(salt, strlen(salt), password, size, digest);
 
 
        for (pos = 0; pos < DIGEST_SIZE; pos++) {