diff -urpN magnumripper-magnum-jumbo-62b2557/doc/README-CUDA magnumripper-magnum-jumbo-62b2557-fast//doc/README-CUDA --- magnumripper-magnum-jumbo-62b2557/doc/README-CUDA 2012-03-28 15:30:17.000000000 +0000 +++ magnumripper-magnum-jumbo-62b2557-fast//doc/README-CUDA 2012-03-31 17:24:57.651888344 +0000 @@ -10,5 +10,9 @@ Performance issues: If you have got Fermi or newer card change "-arch sm_10" to "-arch sm_20" in the NVCC_FLAGS (Makefile). Default THREADS and BLOCKS settings might not be optimal. To get better performance you can experiment with THREADS and BLOCKS macros defined for each format in cuda*.h file. + For MSCash2: + CARD NAME BLOCKS THREADS SM RESULT + GTX460 14 128 20 13398 c/s + You can contact me at lukas[dot]odzioba[at]gmail[dot]com or john-dev mailing list diff -urpN magnumripper-magnum-jumbo-62b2557/src/cuda/mscash2.cu magnumripper-magnum-jumbo-62b2557-fast//src/cuda/mscash2.cu --- magnumripper-magnum-jumbo-62b2557/src/cuda/mscash2.cu 2012-03-28 15:30:17.000000000 +0000 +++ magnumripper-magnum-jumbo-62b2557-fast//src/cuda/mscash2.cu 2012-03-31 17:25:44.606988534 +0000 @@ -1,5 +1,5 @@ /* -* This software is Copyright (c) 2011 Lukas Odzioba +* This software is Copyright (c) 2011,2012 Lukas Odzioba * and it is hereby released to the general public under the following terms: * Redistribution and use in source and binary forms, with or without modification, are permitted. * Based on S3nf implementation http://openwall.info/wiki/john/MSCash2 @@ -247,8 +247,94 @@ __device__ void hmac_sha1(const uint8_t PUT_WORD_32_BE(E, output, 16); } + +__device__ void big_hmac_sha1( + uint32_t * input, uint32_t inputlen, uint32_t * output, + uint32_t * ipad_state, uint32_t * opad_state,uint32_t *tmp_out) +{ + int i; + uint32_t temp, W[16]= {0}; + uint32_t A, B, C, D, E; + uint8_t buf[64]= {0}; + int lo; + + for(i=0;i<5;i++) + W[i]=SWAP(input[i]); + + uint32_t *src=(uint32_t*)buf; + i=64/4; + while(i--) + *src++=0; + for(i=0;i<4;i++) + tmp_out[i]=SWAP(tmp_out[i]); + + for(lo=1; lo