mirror of
https://github.com/hashcat/hashcat.git
synced 2025-01-22 13:40:56 +00:00
Vectorized Blockchain, My Wallet and added support for long passwords
This commit is contained in:
parent
a1321d2d64
commit
af46a1560b
@ -1326,11 +1326,8 @@ typedef struct mywallet_tmp
|
|||||||
u32 ipad[5];
|
u32 ipad[5];
|
||||||
u32 opad[5];
|
u32 opad[5];
|
||||||
|
|
||||||
u32 dgst1[5];
|
u32 dgst[10];
|
||||||
u32 out1[5];
|
u32 out[10];
|
||||||
|
|
||||||
u32 dgst2[5];
|
|
||||||
u32 out2[5];
|
|
||||||
|
|
||||||
} mywallet_tmp_t;
|
} mywallet_tmp_t;
|
||||||
|
|
||||||
|
186
OpenCL/m11300.cl
186
OpenCL/m11300.cl
@ -14,192 +14,6 @@
|
|||||||
#include "inc_hash_sha512.cl"
|
#include "inc_hash_sha512.cl"
|
||||||
#include "inc_cipher_aes.cl"
|
#include "inc_cipher_aes.cl"
|
||||||
|
|
||||||
void AES256_ExpandKey (u32 *userkey, u32 *rek, __local u32 *s_te0, __local u32 *s_te1, __local u32 *s_te2, __local u32 *s_te3, __local u32 *s_te4)
|
|
||||||
{
|
|
||||||
rek[0] = userkey[0];
|
|
||||||
rek[1] = userkey[1];
|
|
||||||
rek[2] = userkey[2];
|
|
||||||
rek[3] = userkey[3];
|
|
||||||
rek[4] = userkey[4];
|
|
||||||
rek[5] = userkey[5];
|
|
||||||
rek[6] = userkey[6];
|
|
||||||
rek[7] = userkey[7];
|
|
||||||
|
|
||||||
int i;
|
|
||||||
int j;
|
|
||||||
|
|
||||||
i = 0;
|
|
||||||
j = 0;
|
|
||||||
|
|
||||||
u32 run = 1;
|
|
||||||
|
|
||||||
while (run)
|
|
||||||
{
|
|
||||||
u32 temp = rek[j + 7];
|
|
||||||
|
|
||||||
rek[j + 8] = rek[j + 0]
|
|
||||||
^ (s_te2[(temp >> 16) & 0xff] & 0xff000000)
|
|
||||||
^ (s_te3[(temp >> 8) & 0xff] & 0x00ff0000)
|
|
||||||
^ (s_te0[(temp >> 0) & 0xff] & 0x0000ff00)
|
|
||||||
^ (s_te1[(temp >> 24) & 0xff] & 0x000000ff)
|
|
||||||
^ rcon[i];
|
|
||||||
|
|
||||||
rek[j + 9] = rek[j + 1] ^ rek[j + 8];
|
|
||||||
rek[j + 10] = rek[j + 2] ^ rek[j + 9];
|
|
||||||
rek[j + 11] = rek[j + 3] ^ rek[j + 10];
|
|
||||||
|
|
||||||
if (++i == 7)
|
|
||||||
{
|
|
||||||
run = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
temp = rek[j + 11];
|
|
||||||
|
|
||||||
rek[j + 12] = rek[j + 4]
|
|
||||||
^ (s_te2[(temp >> 24) & 0xff] & 0xff000000)
|
|
||||||
^ (s_te3[(temp >> 16) & 0xff] & 0x00ff0000)
|
|
||||||
^ (s_te0[(temp >> 8) & 0xff] & 0x0000ff00)
|
|
||||||
^ (s_te1[(temp >> 0) & 0xff] & 0x000000ff);
|
|
||||||
|
|
||||||
rek[j + 13] = rek[j + 5] ^ rek[j + 12];
|
|
||||||
rek[j + 14] = rek[j + 6] ^ rek[j + 13];
|
|
||||||
rek[j + 15] = rek[j + 7] ^ rek[j + 14];
|
|
||||||
|
|
||||||
j += 8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AES256_InvertKey (u32 *rdk, __local u32 *s_td0, __local u32 *s_td1, __local u32 *s_td2, __local u32 *s_td3, __local u32 *s_td4, __local u32 *s_te0, __local u32 *s_te1, __local u32 *s_te2, __local u32 *s_te3, __local u32 *s_te4)
|
|
||||||
{
|
|
||||||
for (u32 i = 0, j = 56; i < 28; i += 4, j -= 4)
|
|
||||||
{
|
|
||||||
u32 temp;
|
|
||||||
|
|
||||||
temp = rdk[i + 0]; rdk[i + 0] = rdk[j + 0]; rdk[j + 0] = temp;
|
|
||||||
temp = rdk[i + 1]; rdk[i + 1] = rdk[j + 1]; rdk[j + 1] = temp;
|
|
||||||
temp = rdk[i + 2]; rdk[i + 2] = rdk[j + 2]; rdk[j + 2] = temp;
|
|
||||||
temp = rdk[i + 3]; rdk[i + 3] = rdk[j + 3]; rdk[j + 3] = temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (u32 i = 1, j = 4; i < 14; i += 1, j += 4)
|
|
||||||
{
|
|
||||||
rdk[j + 0] =
|
|
||||||
s_td0[s_te1[(rdk[j + 0] >> 24) & 0xff] & 0xff] ^
|
|
||||||
s_td1[s_te1[(rdk[j + 0] >> 16) & 0xff] & 0xff] ^
|
|
||||||
s_td2[s_te1[(rdk[j + 0] >> 8) & 0xff] & 0xff] ^
|
|
||||||
s_td3[s_te1[(rdk[j + 0] >> 0) & 0xff] & 0xff];
|
|
||||||
|
|
||||||
rdk[j + 1] =
|
|
||||||
s_td0[s_te1[(rdk[j + 1] >> 24) & 0xff] & 0xff] ^
|
|
||||||
s_td1[s_te1[(rdk[j + 1] >> 16) & 0xff] & 0xff] ^
|
|
||||||
s_td2[s_te1[(rdk[j + 1] >> 8) & 0xff] & 0xff] ^
|
|
||||||
s_td3[s_te1[(rdk[j + 1] >> 0) & 0xff] & 0xff];
|
|
||||||
|
|
||||||
rdk[j + 2] =
|
|
||||||
s_td0[s_te1[(rdk[j + 2] >> 24) & 0xff] & 0xff] ^
|
|
||||||
s_td1[s_te1[(rdk[j + 2] >> 16) & 0xff] & 0xff] ^
|
|
||||||
s_td2[s_te1[(rdk[j + 2] >> 8) & 0xff] & 0xff] ^
|
|
||||||
s_td3[s_te1[(rdk[j + 2] >> 0) & 0xff] & 0xff];
|
|
||||||
|
|
||||||
rdk[j + 3] =
|
|
||||||
s_td0[s_te1[(rdk[j + 3] >> 24) & 0xff] & 0xff] ^
|
|
||||||
s_td1[s_te1[(rdk[j + 3] >> 16) & 0xff] & 0xff] ^
|
|
||||||
s_td2[s_te1[(rdk[j + 3] >> 8) & 0xff] & 0xff] ^
|
|
||||||
s_td3[s_te1[(rdk[j + 3] >> 0) & 0xff] & 0xff];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AES256_decrypt (const u32 *in, u32 *out, const u32 *rdk, __local u32 *s_td0, __local u32 *s_td1, __local u32 *s_td2, __local u32 *s_td3, __local u32 *s_td4)
|
|
||||||
{
|
|
||||||
u32 s0 = in[0] ^ rdk[0];
|
|
||||||
u32 s1 = in[1] ^ rdk[1];
|
|
||||||
u32 s2 = in[2] ^ rdk[2];
|
|
||||||
u32 s3 = in[3] ^ rdk[3];
|
|
||||||
|
|
||||||
u32 t0;
|
|
||||||
u32 t1;
|
|
||||||
u32 t2;
|
|
||||||
u32 t3;
|
|
||||||
|
|
||||||
t0 = s_td0[s0 >> 24] ^ s_td1[(s3 >> 16) & 0xff] ^ s_td2[(s2 >> 8) & 0xff] ^ s_td3[s1 & 0xff] ^ rdk[ 4];
|
|
||||||
t1 = s_td0[s1 >> 24] ^ s_td1[(s0 >> 16) & 0xff] ^ s_td2[(s3 >> 8) & 0xff] ^ s_td3[s2 & 0xff] ^ rdk[ 5];
|
|
||||||
t2 = s_td0[s2 >> 24] ^ s_td1[(s1 >> 16) & 0xff] ^ s_td2[(s0 >> 8) & 0xff] ^ s_td3[s3 & 0xff] ^ rdk[ 6];
|
|
||||||
t3 = s_td0[s3 >> 24] ^ s_td1[(s2 >> 16) & 0xff] ^ s_td2[(s1 >> 8) & 0xff] ^ s_td3[s0 & 0xff] ^ rdk[ 7];
|
|
||||||
s0 = s_td0[t0 >> 24] ^ s_td1[(t3 >> 16) & 0xff] ^ s_td2[(t2 >> 8) & 0xff] ^ s_td3[t1 & 0xff] ^ rdk[ 8];
|
|
||||||
s1 = s_td0[t1 >> 24] ^ s_td1[(t0 >> 16) & 0xff] ^ s_td2[(t3 >> 8) & 0xff] ^ s_td3[t2 & 0xff] ^ rdk[ 9];
|
|
||||||
s2 = s_td0[t2 >> 24] ^ s_td1[(t1 >> 16) & 0xff] ^ s_td2[(t0 >> 8) & 0xff] ^ s_td3[t3 & 0xff] ^ rdk[10];
|
|
||||||
s3 = s_td0[t3 >> 24] ^ s_td1[(t2 >> 16) & 0xff] ^ s_td2[(t1 >> 8) & 0xff] ^ s_td3[t0 & 0xff] ^ rdk[11];
|
|
||||||
t0 = s_td0[s0 >> 24] ^ s_td1[(s3 >> 16) & 0xff] ^ s_td2[(s2 >> 8) & 0xff] ^ s_td3[s1 & 0xff] ^ rdk[12];
|
|
||||||
t1 = s_td0[s1 >> 24] ^ s_td1[(s0 >> 16) & 0xff] ^ s_td2[(s3 >> 8) & 0xff] ^ s_td3[s2 & 0xff] ^ rdk[13];
|
|
||||||
t2 = s_td0[s2 >> 24] ^ s_td1[(s1 >> 16) & 0xff] ^ s_td2[(s0 >> 8) & 0xff] ^ s_td3[s3 & 0xff] ^ rdk[14];
|
|
||||||
t3 = s_td0[s3 >> 24] ^ s_td1[(s2 >> 16) & 0xff] ^ s_td2[(s1 >> 8) & 0xff] ^ s_td3[s0 & 0xff] ^ rdk[15];
|
|
||||||
s0 = s_td0[t0 >> 24] ^ s_td1[(t3 >> 16) & 0xff] ^ s_td2[(t2 >> 8) & 0xff] ^ s_td3[t1 & 0xff] ^ rdk[16];
|
|
||||||
s1 = s_td0[t1 >> 24] ^ s_td1[(t0 >> 16) & 0xff] ^ s_td2[(t3 >> 8) & 0xff] ^ s_td3[t2 & 0xff] ^ rdk[17];
|
|
||||||
s2 = s_td0[t2 >> 24] ^ s_td1[(t1 >> 16) & 0xff] ^ s_td2[(t0 >> 8) & 0xff] ^ s_td3[t3 & 0xff] ^ rdk[18];
|
|
||||||
s3 = s_td0[t3 >> 24] ^ s_td1[(t2 >> 16) & 0xff] ^ s_td2[(t1 >> 8) & 0xff] ^ s_td3[t0 & 0xff] ^ rdk[19];
|
|
||||||
t0 = s_td0[s0 >> 24] ^ s_td1[(s3 >> 16) & 0xff] ^ s_td2[(s2 >> 8) & 0xff] ^ s_td3[s1 & 0xff] ^ rdk[20];
|
|
||||||
t1 = s_td0[s1 >> 24] ^ s_td1[(s0 >> 16) & 0xff] ^ s_td2[(s3 >> 8) & 0xff] ^ s_td3[s2 & 0xff] ^ rdk[21];
|
|
||||||
t2 = s_td0[s2 >> 24] ^ s_td1[(s1 >> 16) & 0xff] ^ s_td2[(s0 >> 8) & 0xff] ^ s_td3[s3 & 0xff] ^ rdk[22];
|
|
||||||
t3 = s_td0[s3 >> 24] ^ s_td1[(s2 >> 16) & 0xff] ^ s_td2[(s1 >> 8) & 0xff] ^ s_td3[s0 & 0xff] ^ rdk[23];
|
|
||||||
s0 = s_td0[t0 >> 24] ^ s_td1[(t3 >> 16) & 0xff] ^ s_td2[(t2 >> 8) & 0xff] ^ s_td3[t1 & 0xff] ^ rdk[24];
|
|
||||||
s1 = s_td0[t1 >> 24] ^ s_td1[(t0 >> 16) & 0xff] ^ s_td2[(t3 >> 8) & 0xff] ^ s_td3[t2 & 0xff] ^ rdk[25];
|
|
||||||
s2 = s_td0[t2 >> 24] ^ s_td1[(t1 >> 16) & 0xff] ^ s_td2[(t0 >> 8) & 0xff] ^ s_td3[t3 & 0xff] ^ rdk[26];
|
|
||||||
s3 = s_td0[t3 >> 24] ^ s_td1[(t2 >> 16) & 0xff] ^ s_td2[(t1 >> 8) & 0xff] ^ s_td3[t0 & 0xff] ^ rdk[27];
|
|
||||||
t0 = s_td0[s0 >> 24] ^ s_td1[(s3 >> 16) & 0xff] ^ s_td2[(s2 >> 8) & 0xff] ^ s_td3[s1 & 0xff] ^ rdk[28];
|
|
||||||
t1 = s_td0[s1 >> 24] ^ s_td1[(s0 >> 16) & 0xff] ^ s_td2[(s3 >> 8) & 0xff] ^ s_td3[s2 & 0xff] ^ rdk[29];
|
|
||||||
t2 = s_td0[s2 >> 24] ^ s_td1[(s1 >> 16) & 0xff] ^ s_td2[(s0 >> 8) & 0xff] ^ s_td3[s3 & 0xff] ^ rdk[30];
|
|
||||||
t3 = s_td0[s3 >> 24] ^ s_td1[(s2 >> 16) & 0xff] ^ s_td2[(s1 >> 8) & 0xff] ^ s_td3[s0 & 0xff] ^ rdk[31];
|
|
||||||
s0 = s_td0[t0 >> 24] ^ s_td1[(t3 >> 16) & 0xff] ^ s_td2[(t2 >> 8) & 0xff] ^ s_td3[t1 & 0xff] ^ rdk[32];
|
|
||||||
s1 = s_td0[t1 >> 24] ^ s_td1[(t0 >> 16) & 0xff] ^ s_td2[(t3 >> 8) & 0xff] ^ s_td3[t2 & 0xff] ^ rdk[33];
|
|
||||||
s2 = s_td0[t2 >> 24] ^ s_td1[(t1 >> 16) & 0xff] ^ s_td2[(t0 >> 8) & 0xff] ^ s_td3[t3 & 0xff] ^ rdk[34];
|
|
||||||
s3 = s_td0[t3 >> 24] ^ s_td1[(t2 >> 16) & 0xff] ^ s_td2[(t1 >> 8) & 0xff] ^ s_td3[t0 & 0xff] ^ rdk[35];
|
|
||||||
t0 = s_td0[s0 >> 24] ^ s_td1[(s3 >> 16) & 0xff] ^ s_td2[(s2 >> 8) & 0xff] ^ s_td3[s1 & 0xff] ^ rdk[36];
|
|
||||||
t1 = s_td0[s1 >> 24] ^ s_td1[(s0 >> 16) & 0xff] ^ s_td2[(s3 >> 8) & 0xff] ^ s_td3[s2 & 0xff] ^ rdk[37];
|
|
||||||
t2 = s_td0[s2 >> 24] ^ s_td1[(s1 >> 16) & 0xff] ^ s_td2[(s0 >> 8) & 0xff] ^ s_td3[s3 & 0xff] ^ rdk[38];
|
|
||||||
t3 = s_td0[s3 >> 24] ^ s_td1[(s2 >> 16) & 0xff] ^ s_td2[(s1 >> 8) & 0xff] ^ s_td3[s0 & 0xff] ^ rdk[39];
|
|
||||||
s0 = s_td0[t0 >> 24] ^ s_td1[(t3 >> 16) & 0xff] ^ s_td2[(t2 >> 8) & 0xff] ^ s_td3[t1 & 0xff] ^ rdk[40];
|
|
||||||
s1 = s_td0[t1 >> 24] ^ s_td1[(t0 >> 16) & 0xff] ^ s_td2[(t3 >> 8) & 0xff] ^ s_td3[t2 & 0xff] ^ rdk[41];
|
|
||||||
s2 = s_td0[t2 >> 24] ^ s_td1[(t1 >> 16) & 0xff] ^ s_td2[(t0 >> 8) & 0xff] ^ s_td3[t3 & 0xff] ^ rdk[42];
|
|
||||||
s3 = s_td0[t3 >> 24] ^ s_td1[(t2 >> 16) & 0xff] ^ s_td2[(t1 >> 8) & 0xff] ^ s_td3[t0 & 0xff] ^ rdk[43];
|
|
||||||
t0 = s_td0[s0 >> 24] ^ s_td1[(s3 >> 16) & 0xff] ^ s_td2[(s2 >> 8) & 0xff] ^ s_td3[s1 & 0xff] ^ rdk[44];
|
|
||||||
t1 = s_td0[s1 >> 24] ^ s_td1[(s0 >> 16) & 0xff] ^ s_td2[(s3 >> 8) & 0xff] ^ s_td3[s2 & 0xff] ^ rdk[45];
|
|
||||||
t2 = s_td0[s2 >> 24] ^ s_td1[(s1 >> 16) & 0xff] ^ s_td2[(s0 >> 8) & 0xff] ^ s_td3[s3 & 0xff] ^ rdk[46];
|
|
||||||
t3 = s_td0[s3 >> 24] ^ s_td1[(s2 >> 16) & 0xff] ^ s_td2[(s1 >> 8) & 0xff] ^ s_td3[s0 & 0xff] ^ rdk[47];
|
|
||||||
s0 = s_td0[t0 >> 24] ^ s_td1[(t3 >> 16) & 0xff] ^ s_td2[(t2 >> 8) & 0xff] ^ s_td3[t1 & 0xff] ^ rdk[48];
|
|
||||||
s1 = s_td0[t1 >> 24] ^ s_td1[(t0 >> 16) & 0xff] ^ s_td2[(t3 >> 8) & 0xff] ^ s_td3[t2 & 0xff] ^ rdk[49];
|
|
||||||
s2 = s_td0[t2 >> 24] ^ s_td1[(t1 >> 16) & 0xff] ^ s_td2[(t0 >> 8) & 0xff] ^ s_td3[t3 & 0xff] ^ rdk[50];
|
|
||||||
s3 = s_td0[t3 >> 24] ^ s_td1[(t2 >> 16) & 0xff] ^ s_td2[(t1 >> 8) & 0xff] ^ s_td3[t0 & 0xff] ^ rdk[51];
|
|
||||||
t0 = s_td0[s0 >> 24] ^ s_td1[(s3 >> 16) & 0xff] ^ s_td2[(s2 >> 8) & 0xff] ^ s_td3[s1 & 0xff] ^ rdk[52];
|
|
||||||
t1 = s_td0[s1 >> 24] ^ s_td1[(s0 >> 16) & 0xff] ^ s_td2[(s3 >> 8) & 0xff] ^ s_td3[s2 & 0xff] ^ rdk[53];
|
|
||||||
t2 = s_td0[s2 >> 24] ^ s_td1[(s1 >> 16) & 0xff] ^ s_td2[(s0 >> 8) & 0xff] ^ s_td3[s3 & 0xff] ^ rdk[54];
|
|
||||||
t3 = s_td0[s3 >> 24] ^ s_td1[(s2 >> 16) & 0xff] ^ s_td2[(s1 >> 8) & 0xff] ^ s_td3[s0 & 0xff] ^ rdk[55];
|
|
||||||
|
|
||||||
out[0] = (s_td4[(t0 >> 24) & 0xff] & 0xff000000)
|
|
||||||
^ (s_td4[(t3 >> 16) & 0xff] & 0x00ff0000)
|
|
||||||
^ (s_td4[(t2 >> 8) & 0xff] & 0x0000ff00)
|
|
||||||
^ (s_td4[(t1 >> 0) & 0xff] & 0x000000ff)
|
|
||||||
^ rdk[56];
|
|
||||||
|
|
||||||
out[1] = (s_td4[(t1 >> 24) & 0xff] & 0xff000000)
|
|
||||||
^ (s_td4[(t0 >> 16) & 0xff] & 0x00ff0000)
|
|
||||||
^ (s_td4[(t3 >> 8) & 0xff] & 0x0000ff00)
|
|
||||||
^ (s_td4[(t2 >> 0) & 0xff] & 0x000000ff)
|
|
||||||
^ rdk[57];
|
|
||||||
|
|
||||||
out[2] = (s_td4[(t2 >> 24) & 0xff] & 0xff000000)
|
|
||||||
^ (s_td4[(t1 >> 16) & 0xff] & 0x00ff0000)
|
|
||||||
^ (s_td4[(t0 >> 8) & 0xff] & 0x0000ff00)
|
|
||||||
^ (s_td4[(t3 >> 0) & 0xff] & 0x000000ff)
|
|
||||||
^ rdk[58];
|
|
||||||
|
|
||||||
out[3] = (s_td4[(t3 >> 24) & 0xff] & 0xff000000)
|
|
||||||
^ (s_td4[(t2 >> 16) & 0xff] & 0x00ff0000)
|
|
||||||
^ (s_td4[(t1 >> 8) & 0xff] & 0x0000ff00)
|
|
||||||
^ (s_td4[(t0 >> 0) & 0xff] & 0x000000ff)
|
|
||||||
^ rdk[59];
|
|
||||||
}
|
|
||||||
|
|
||||||
void hmac_sha512_run_V (u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], u32x w4[4], u32x w5[4], u32x w6[4], u32x w7[4], u64x ipad[8], u64x opad[8], u64x digest[8])
|
void hmac_sha512_run_V (u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], u32x w4[4], u32x w5[4], u32x w6[4], u32x w7[4], u64x ipad[8], u64x opad[8], u64x digest[8])
|
||||||
{
|
{
|
||||||
digest[0] = ipad[0];
|
digest[0] = ipad[0];
|
||||||
|
1503
OpenCL/m12700.cl
1503
OpenCL/m12700.cl
File diff suppressed because it is too large
Load Diff
@ -657,11 +657,8 @@ typedef struct mywallet_tmp
|
|||||||
u32 ipad[5];
|
u32 ipad[5];
|
||||||
u32 opad[5];
|
u32 opad[5];
|
||||||
|
|
||||||
u32 dgst1[5];
|
u32 dgst[10];
|
||||||
u32 out1[5];
|
u32 out[10];
|
||||||
|
|
||||||
u32 dgst2[5];
|
|
||||||
u32 out2[5];
|
|
||||||
|
|
||||||
} mywallet_tmp_t;
|
} mywallet_tmp_t;
|
||||||
|
|
||||||
|
@ -23478,7 +23478,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
hashconfig->kern_type = KERN_TYPE_MYWALLET;
|
hashconfig->kern_type = KERN_TYPE_MYWALLET;
|
||||||
hashconfig->dgst_size = DGST_SIZE_4_5; // because kernel uses _SHA1_
|
hashconfig->dgst_size = DGST_SIZE_4_5; // because kernel uses _SHA1_
|
||||||
hashconfig->parse_func = mywallet_parse_hash;
|
hashconfig->parse_func = mywallet_parse_hash;
|
||||||
hashconfig->opti_type = OPTI_TYPE_ZERO_BYTE;
|
hashconfig->opti_type = OPTI_TYPE_ZERO_BYTE
|
||||||
|
| OPTI_TYPE_SLOW_HASH_SIMD_LOOP;
|
||||||
hashconfig->dgst_pos0 = 0;
|
hashconfig->dgst_pos0 = 0;
|
||||||
hashconfig->dgst_pos1 = 1;
|
hashconfig->dgst_pos1 = 1;
|
||||||
hashconfig->dgst_pos2 = 2;
|
hashconfig->dgst_pos2 = 2;
|
||||||
@ -24626,7 +24627,7 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
break;
|
break;
|
||||||
case 10700: hashconfig->pw_max = 16; // todo
|
case 10700: hashconfig->pw_max = 16; // todo
|
||||||
break;
|
break;
|
||||||
case 12500: hashconfig->pw_max = 20;
|
case 12500: hashconfig->pw_max = 20; // todo
|
||||||
break;
|
break;
|
||||||
case 12800: hashconfig->pw_max = 24;
|
case 12800: hashconfig->pw_max = 24;
|
||||||
break;
|
break;
|
||||||
@ -24753,6 +24754,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
break;
|
break;
|
||||||
case 12300: hashconfig->pw_max = 128; // PBKDF2-HMAC-SHA512 max
|
case 12300: hashconfig->pw_max = 128; // PBKDF2-HMAC-SHA512 max
|
||||||
break;
|
break;
|
||||||
|
case 12700: hashconfig->pw_max = 64; // PBKDF2-HMAC-SHA1 max
|
||||||
|
break;
|
||||||
case 13711: hashconfig->pw_max = 64; // PBKDF2-HMAC-RipeMD160 max
|
case 13711: hashconfig->pw_max = 64; // PBKDF2-HMAC-RipeMD160 max
|
||||||
break;
|
break;
|
||||||
case 13712: hashconfig->pw_max = 64; // PBKDF2-HMAC-RipeMD160 max
|
case 13712: hashconfig->pw_max = 64; // PBKDF2-HMAC-RipeMD160 max
|
||||||
|
Loading…
Reference in New Issue
Block a user