[prev in list] [next in list] [prev in thread] [next in thread]
List: john-users
Subject: Re: [john-users] A couple broken formats from jumbo-2
From: "JFoug" <jfoug () cox ! net>
Date: 2009-11-08 3:11:08
Message-ID: E20543B1DAA04F9D8BF099042B8EF6E0 () ath64dual
[Download RAW message or body]
Here are working copies of mysql_fmt.c and mysql05_fmt.c The ones in the
current jumbo patch is broken for any MMX/SSE builds. These correct that
problem.
Jim.
["mssql-postjumbo2-1.patch" (application/octet-stream)]
diff -urpN john-1.7.3.4.jumbo-2/src/mssql05_fmt.c john-1.7.3.4/src/mssql05_fmt.c
@@ -139,15 +144,12 @@ static void mssql05_set_key(char *key, i
if(len>PLAINTEXT_LENGTH)
len = PLAINTEXT_LENGTH;
- total_len += (len*2+SALT_SIZE ) << ( ( (32/MMX_COEF) * index ) );
+ total_len += (len*2) << ( ( (32/MMX_COEF) * index ) );
for(i=0;i<len;i++)
{
saved_key[GETPOS((i*2), index)] = key[i];
saved_key[GETPOS((i*2+1), index)] = 0;
}
- for(i=0;i<4;i++)
- saved_key[GETPOS( (len*2+i), index)] = cursalt[i];
- saved_key[GETPOS( (len*2+SALT_SIZE) , index)] = 0x80;
#else
key_length = 0;
while( (((unsigned short *)saved_key)[key_length] = key[key_length] ENDIAN_SHIFT_L ))
@@ -218,6 +220,15 @@ static int mssql05_cmp_one(void * binary
static void mssql05_crypt_all(int count) {
// get plaintext input in saved_key put it into ciphertext crypt_key
#ifdef MMX_COEF
+ unsigned i, index;
+ for (index = 0; index < count; ++index)
+ {
+ unsigned len = (total_len >> ((32/MMX_COEF)*index)) & 0xFF;
+ for(i=0;i<SALT_SIZE;i++)
+ saved_key[GETPOS((len+i), index)] = cursalt[i];
+ saved_key[GETPOS((len+SALT_SIZE) , index)] = 0x80;
+ total_len += (SALT_SIZE) << ( ( (32/MMX_COEF) * index ) );
+ }
shammx((unsigned char *) crypt_key, (unsigned char *) saved_key, total_len);
#else
memcpy(saved_key+key_length*2, cursalt, SALT_SIZE);
diff -urpN john-1.7.3.4.jumbo-2/src/mssql_fmt.c john-1.7.3.4/src/mssql_fmt.c
@@ -147,15 +152,12 @@ static void mssql_set_key(char *key, int
if(len>PLAINTEXT_LENGTH)
len = PLAINTEXT_LENGTH;
- total_len += (len*2+SALT_SIZE ) << ( ( (32/MMX_COEF) * index ) );
+ total_len += (len*2) << ( ( (32/MMX_COEF) * index ) );
for(i=0;i<len;i++)
{
saved_key[GETPOS((i*2), index)] = upper(key[i]);
saved_key[GETPOS((i*2+1), index)] = 0;
}
- for(i=0;i<4;i++)
- saved_key[GETPOS( (len*2+i), index)] = cursalt[i];
- saved_key[GETPOS( (len*2+SALT_SIZE) , index)] = 0x80;
#else
key_length = 0;
while( (((unsigned short *)saved_key)[key_length] = upper(key[key_length]) ENDIAN_SHIFT_L ))
@@ -226,6 +227,15 @@ static int mssql_cmp_one(void * binary,
static void mssql_crypt_all(int count) {
// get plaintext input in saved_key put it into ciphertext crypt_key
#ifdef MMX_COEF
+ unsigned i, index;
+ for (index = 0; index < count; ++index)
+ {
+ unsigned len = (total_len >> ((32/MMX_COEF)*index)) & 0xFF;
+ for(i=0;i<SALT_SIZE;i++)
+ saved_key[GETPOS((len+i), index)] = cursalt[i];
+ saved_key[GETPOS((len+SALT_SIZE) , index)] = 0x80;
+ total_len += (SALT_SIZE) << ( ( (32/MMX_COEF) * index ) );
+ }
shammx( (unsigned char *) crypt_key, (unsigned char *) saved_key, total_len);
#else
memcpy(saved_key+key_length*2, cursalt, SALT_SIZE);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic