Finish adding hash-mode 16200 = Apple Secure Notes

pull/1476/head
jsteube 7 years ago
parent 94bfd28c74
commit 0d89ddfcd9

@ -1478,6 +1478,15 @@ typedef struct tacacs_plus
} tacacs_plus_t;
typedef struct apple_secure_notes
{
u32 Z_PK;
u32 ZCRYPTOITERATIONCOUNT;
u32 ZCRYPTOSALT[16];
u32 ZCRYPTOWRAPPEDKEY[16];
} apple_secure_notes_t;
typedef struct pdf14_tmp
{
u32 digest[4];
@ -1866,6 +1875,16 @@ typedef struct dpapimk_tmp_v2
} dpapimk_tmp_v2_t;
typedef struct apple_secure_notes_tmp
{
u32 ipad[8];
u32 opad[8];
u32 dgst[8];
u32 out[8];
} apple_secure_notes_tmp_t;
typedef struct bsdicrypt_tmp
{
u32 Kc[16];

@ -0,0 +1,382 @@
/**
* Author......: See docs/credits.txt
* License.....: MIT
*/
#define NEW_SIMD_CODE
#include "inc_vendor.cl"
#include "inc_hash_constants.h"
#include "inc_hash_functions.cl"
#include "inc_types.cl"
#include "inc_common.cl"
#include "inc_simd.cl"
#include "inc_hash_sha256.cl"
#include "inc_cipher_aes.cl"
#define COMPARE_S "inc_comp_single.cl"
#define COMPARE_M "inc_comp_multi.cl"
void hmac_sha256_run_V (u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], u32x ipad[8], u32x opad[8], u32x digest[8])
{
digest[0] = ipad[0];
digest[1] = ipad[1];
digest[2] = ipad[2];
digest[3] = ipad[3];
digest[4] = ipad[4];
digest[5] = ipad[5];
digest[6] = ipad[6];
digest[7] = ipad[7];
sha256_transform_vector (w0, w1, w2, w3, digest);
w0[0] = digest[0];
w0[1] = digest[1];
w0[2] = digest[2];
w0[3] = digest[3];
w1[0] = digest[4];
w1[1] = digest[5];
w1[2] = digest[6];
w1[3] = digest[7];
w2[0] = 0x80000000;
w2[1] = 0;
w2[2] = 0;
w2[3] = 0;
w3[0] = 0;
w3[1] = 0;
w3[2] = 0;
w3[3] = (64 + 32) * 8;
digest[0] = opad[0];
digest[1] = opad[1];
digest[2] = opad[2];
digest[3] = opad[3];
digest[4] = opad[4];
digest[5] = opad[5];
digest[6] = opad[6];
digest[7] = opad[7];
sha256_transform_vector (w0, w1, w2, w3, digest);
}
__kernel void m16200_init (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global apple_secure_notes_tmp_t *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const apple_secure_notes_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
{
/**
* base
*/
const u64 gid = get_global_id (0);
if (gid >= gid_max) return;
sha256_hmac_ctx_t sha256_hmac_ctx;
sha256_hmac_init_global_swap (&sha256_hmac_ctx, pws[gid].i, pws[gid].pw_len);
tmps[gid].ipad[0] = sha256_hmac_ctx.ipad.h[0];
tmps[gid].ipad[1] = sha256_hmac_ctx.ipad.h[1];
tmps[gid].ipad[2] = sha256_hmac_ctx.ipad.h[2];
tmps[gid].ipad[3] = sha256_hmac_ctx.ipad.h[3];
tmps[gid].ipad[4] = sha256_hmac_ctx.ipad.h[4];
tmps[gid].ipad[5] = sha256_hmac_ctx.ipad.h[5];
tmps[gid].ipad[6] = sha256_hmac_ctx.ipad.h[6];
tmps[gid].ipad[7] = sha256_hmac_ctx.ipad.h[7];
tmps[gid].opad[0] = sha256_hmac_ctx.opad.h[0];
tmps[gid].opad[1] = sha256_hmac_ctx.opad.h[1];
tmps[gid].opad[2] = sha256_hmac_ctx.opad.h[2];
tmps[gid].opad[3] = sha256_hmac_ctx.opad.h[3];
tmps[gid].opad[4] = sha256_hmac_ctx.opad.h[4];
tmps[gid].opad[5] = sha256_hmac_ctx.opad.h[5];
tmps[gid].opad[6] = sha256_hmac_ctx.opad.h[6];
tmps[gid].opad[7] = sha256_hmac_ctx.opad.h[7];
sha256_hmac_update_global_swap (&sha256_hmac_ctx, esalt_bufs[digests_offset].ZCRYPTOSALT, 16);
for (u32 i = 0, j = 1; i < 8; i += 8, j += 1)
{
sha256_hmac_ctx_t sha256_hmac_ctx2 = sha256_hmac_ctx;
u32 w0[4];
u32 w1[4];
u32 w2[4];
u32 w3[4];
w0[0] = j;
w0[1] = 0;
w0[2] = 0;
w0[3] = 0;
w1[0] = 0;
w1[1] = 0;
w1[2] = 0;
w1[3] = 0;
w2[0] = 0;
w2[1] = 0;
w2[2] = 0;
w2[3] = 0;
w3[0] = 0;
w3[1] = 0;
w3[2] = 0;
w3[3] = 0;
sha256_hmac_update_64 (&sha256_hmac_ctx2, w0, w1, w2, w3, 4);
sha256_hmac_final (&sha256_hmac_ctx2);
tmps[gid].dgst[i + 0] = sha256_hmac_ctx2.opad.h[0];
tmps[gid].dgst[i + 1] = sha256_hmac_ctx2.opad.h[1];
tmps[gid].dgst[i + 2] = sha256_hmac_ctx2.opad.h[2];
tmps[gid].dgst[i + 3] = sha256_hmac_ctx2.opad.h[3];
tmps[gid].dgst[i + 4] = sha256_hmac_ctx2.opad.h[4];
tmps[gid].dgst[i + 5] = sha256_hmac_ctx2.opad.h[5];
tmps[gid].dgst[i + 6] = sha256_hmac_ctx2.opad.h[6];
tmps[gid].dgst[i + 7] = sha256_hmac_ctx2.opad.h[7];
tmps[gid].out[i + 0] = tmps[gid].dgst[i + 0];
tmps[gid].out[i + 1] = tmps[gid].dgst[i + 1];
tmps[gid].out[i + 2] = tmps[gid].dgst[i + 2];
tmps[gid].out[i + 3] = tmps[gid].dgst[i + 3];
tmps[gid].out[i + 4] = tmps[gid].dgst[i + 4];
tmps[gid].out[i + 5] = tmps[gid].dgst[i + 5];
tmps[gid].out[i + 6] = tmps[gid].dgst[i + 6];
tmps[gid].out[i + 7] = tmps[gid].dgst[i + 7];
}
}
__kernel void m16200_loop (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global apple_secure_notes_tmp_t *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const apple_secure_notes_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
{
const u64 gid = get_global_id (0);
if ((gid * VECT_SIZE) >= gid_max) return;
u32x ipad[8];
u32x opad[8];
ipad[0] = packv (tmps, ipad, gid, 0);
ipad[1] = packv (tmps, ipad, gid, 1);
ipad[2] = packv (tmps, ipad, gid, 2);
ipad[3] = packv (tmps, ipad, gid, 3);
ipad[4] = packv (tmps, ipad, gid, 4);
ipad[5] = packv (tmps, ipad, gid, 5);
ipad[6] = packv (tmps, ipad, gid, 6);
ipad[7] = packv (tmps, ipad, gid, 7);
opad[0] = packv (tmps, opad, gid, 0);
opad[1] = packv (tmps, opad, gid, 1);
opad[2] = packv (tmps, opad, gid, 2);
opad[3] = packv (tmps, opad, gid, 3);
opad[4] = packv (tmps, opad, gid, 4);
opad[5] = packv (tmps, opad, gid, 5);
opad[6] = packv (tmps, opad, gid, 6);
opad[7] = packv (tmps, opad, gid, 7);
for (u32 i = 0; i < 8; i += 8)
{
u32x dgst[8];
u32x out[8];
dgst[0] = packv (tmps, dgst, gid, i + 0);
dgst[1] = packv (tmps, dgst, gid, i + 1);
dgst[2] = packv (tmps, dgst, gid, i + 2);
dgst[3] = packv (tmps, dgst, gid, i + 3);
dgst[4] = packv (tmps, dgst, gid, i + 4);
dgst[5] = packv (tmps, dgst, gid, i + 5);
dgst[6] = packv (tmps, dgst, gid, i + 6);
dgst[7] = packv (tmps, dgst, gid, i + 7);
out[0] = packv (tmps, out, gid, i + 0);
out[1] = packv (tmps, out, gid, i + 1);
out[2] = packv (tmps, out, gid, i + 2);
out[3] = packv (tmps, out, gid, i + 3);
out[4] = packv (tmps, out, gid, i + 4);
out[5] = packv (tmps, out, gid, i + 5);
out[6] = packv (tmps, out, gid, i + 6);
out[7] = packv (tmps, out, gid, i + 7);
for (u32 j = 0; j < loop_cnt; j++)
{
u32x w0[4];
u32x w1[4];
u32x w2[4];
u32x w3[4];
w0[0] = dgst[0];
w0[1] = dgst[1];
w0[2] = dgst[2];
w0[3] = dgst[3];
w1[0] = dgst[4];
w1[1] = dgst[5];
w1[2] = dgst[6];
w1[3] = dgst[7];
w2[0] = 0x80000000;
w2[1] = 0;
w2[2] = 0;
w2[3] = 0;
w3[0] = 0;
w3[1] = 0;
w3[2] = 0;
w3[3] = (64 + 32) * 8;
hmac_sha256_run_V (w0, w1, w2, w3, ipad, opad, dgst);
out[0] ^= dgst[0];
out[1] ^= dgst[1];
out[2] ^= dgst[2];
out[3] ^= dgst[3];
out[4] ^= dgst[4];
out[5] ^= dgst[5];
out[6] ^= dgst[6];
out[7] ^= dgst[7];
}
unpackv (tmps, dgst, gid, i + 0, dgst[0]);
unpackv (tmps, dgst, gid, i + 1, dgst[1]);
unpackv (tmps, dgst, gid, i + 2, dgst[2]);
unpackv (tmps, dgst, gid, i + 3, dgst[3]);
unpackv (tmps, dgst, gid, i + 4, dgst[4]);
unpackv (tmps, dgst, gid, i + 5, dgst[5]);
unpackv (tmps, dgst, gid, i + 6, dgst[6]);
unpackv (tmps, dgst, gid, i + 7, dgst[7]);
unpackv (tmps, out, gid, i + 0, out[0]);
unpackv (tmps, out, gid, i + 1, out[1]);
unpackv (tmps, out, gid, i + 2, out[2]);
unpackv (tmps, out, gid, i + 3, out[3]);
unpackv (tmps, out, gid, i + 4, out[4]);
unpackv (tmps, out, gid, i + 5, out[5]);
unpackv (tmps, out, gid, i + 6, out[6]);
unpackv (tmps, out, gid, i + 7, out[7]);
}
}
__kernel void m16200_comp (__global pw_t *pws, __global const kernel_rule_t *rules_buf, __global const pw_t *combs_buf, __global const bf_t *bfs_buf, __global apple_secure_notes_tmp_t *tmps, __global void *hooks, __global const u32 *bitmaps_buf_s1_a, __global const u32 *bitmaps_buf_s1_b, __global const u32 *bitmaps_buf_s1_c, __global const u32 *bitmaps_buf_s1_d, __global const u32 *bitmaps_buf_s2_a, __global const u32 *bitmaps_buf_s2_b, __global const u32 *bitmaps_buf_s2_c, __global const u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global const digest_t *digests_buf, __global u32 *hashes_shown, __global const salt_t *salt_bufs, __global const apple_secure_notes_t *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u64 gid_max)
{
const u64 gid = get_global_id (0);
const u64 lid = get_local_id (0);
const u64 lsz = get_local_size (0);
/**
* aes shared
*/
#ifdef REAL_SHM
__local u32 s_td0[256];
__local u32 s_td1[256];
__local u32 s_td2[256];
__local u32 s_td3[256];
__local u32 s_td4[256];
__local u32 s_te0[256];
__local u32 s_te1[256];
__local u32 s_te2[256];
__local u32 s_te3[256];
__local u32 s_te4[256];
for (u32 i = lid; i < 256; i += lsz)
{
s_td0[i] = td0[i];
s_td1[i] = td1[i];
s_td2[i] = td2[i];
s_td3[i] = td3[i];
s_td4[i] = td4[i];
s_te0[i] = te0[i];
s_te1[i] = te1[i];
s_te2[i] = te2[i];
s_te3[i] = te3[i];
s_te4[i] = te4[i];
}
barrier (CLK_LOCAL_MEM_FENCE);
#else
__constant u32a *s_td0 = td0;
__constant u32a *s_td1 = td1;
__constant u32a *s_td2 = td2;
__constant u32a *s_td3 = td3;
__constant u32a *s_td4 = td4;
__constant u32a *s_te0 = te0;
__constant u32a *s_te1 = te1;
__constant u32a *s_te2 = te2;
__constant u32a *s_te3 = te3;
__constant u32a *s_te4 = te4;
#endif
if (gid >= gid_max) return;
u32 ukey[4];
ukey[0] = tmps[gid].out[0];
ukey[1] = tmps[gid].out[1];
ukey[2] = tmps[gid].out[2];
ukey[3] = tmps[gid].out[3];
#define KEYLEN 44
u32 ks[KEYLEN];
AES128_set_decrypt_key (ks, ukey, s_te0, s_te1, s_te2, s_te3, s_te4, s_td0, s_td1, s_td2, s_td3, s_td4);
// unwrap and compare
u32 A[2];
u32 P1[2];
u32 P2[2];
A[0] = swap32_S (esalt_bufs[digests_offset].ZCRYPTOWRAPPEDKEY[0]);
A[1] = swap32_S (esalt_bufs[digests_offset].ZCRYPTOWRAPPEDKEY[1]);
P1[0] = swap32_S (esalt_bufs[digests_offset].ZCRYPTOWRAPPEDKEY[2]);
P1[1] = swap32_S (esalt_bufs[digests_offset].ZCRYPTOWRAPPEDKEY[3]);
P2[0] = swap32_S (esalt_bufs[digests_offset].ZCRYPTOWRAPPEDKEY[4]);
P2[1] = swap32_S (esalt_bufs[digests_offset].ZCRYPTOWRAPPEDKEY[5]);
for (int j = 5; j >= 0; j--)
{
const u32 it1 = 2 * j + 1;
const u32 it2 = 2 * j + 2;
u32 in[4];
u32 out[4];
// N = 2
in[0] = A[0];
in[1] = A[1] ^ it2;
in[2] = P2[0];
in[3] = P2[1];
AES128_decrypt (ks, in, out, s_td0, s_td1, s_td2, s_td3, s_td4);
A[0] = out[0];
A[1] = out[1];
P2[0] = out[2];
P2[1] = out[3];
// N = 1
in[0] = A[0];
in[1] = A[1] ^ it1;
in[2] = P1[0];
in[3] = P1[1];
AES128_decrypt (ks, in, out, s_td0, s_td1, s_td2, s_td3, s_td4);
A[0] = out[0];
A[1] = out[1];
P1[0] = out[2];
P1[1] = out[3];
}
if ((A[0] == 0xa6a6a6a6)
&& (A[1] == 0xa6a6a6a6))
{
if (atomic_inc (&hashes_shown[digests_offset]) == 0)
{
mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, 0);
}
}
}

@ -480,6 +480,15 @@ typedef struct tacacs_plus
} tacacs_plus_t;
typedef struct apple_secure_notes
{
u32 Z_PK;
u32 ZCRYPTOITERATIONCOUNT;
u32 ZCRYPTOSALT[16];
u32 ZCRYPTOWRAPPEDKEY[16];
} apple_secure_notes_t;
typedef struct luks_tmp
{
u32 ipad32[8];
@ -914,6 +923,16 @@ typedef struct dpapimk_tmp_v2
} dpapimk_tmp_v2_t;
typedef struct apple_secure_notes_tmp
{
u32 ipad[8];
u32 opad[8];
u32 dgst[8];
u32 out[8];
} apple_secure_notes_tmp_t;
typedef struct seven_zip_hook
{
u32 ukey[8];
@ -1296,6 +1315,8 @@ typedef enum display_len
DISPLAY_LEN_MAX_16000 = 10,
DISPLAY_LEN_MIN_16100 = 1 + 11 + 1 + 1 + 1 + 8 + 12 + 1 + 4,
DISPLAY_LEN_MAX_16100 = 1 + 11 + 1 + 1 + 1 + 8 + 256 + 1 + 4,
DISPLAY_LEN_MIN_16200 = 4 + 1 + 1 + 1 + 5 + 1 + 32 + 1 + 48,
DISPLAY_LEN_MAX_16200 = 4 + 1 + 5 + 1 + 5 + 1 + 32 + 1 + 48,
DISPLAY_LEN_MIN_99999 = 1,
DISPLAY_LEN_MAX_99999 = 55,
@ -1425,6 +1446,7 @@ typedef enum hash_type
HASH_TYPE_DPAPIMK = 61,
HASH_TYPE_JKS_SHA1 = 62,
HASH_TYPE_TACACS_PLUS = 63,
HASH_TYPE_APPLE_SECURE_NOTES = 64,
} hash_type_t;
@ -1623,6 +1645,7 @@ typedef enum kern_type
KERN_TYPE_DPAPIMK_V2 = 15900,
KERN_TYPE_TRIPCODE = 16000,
KERN_TYPE_TACACS_PLUS = 16100,
KERN_TYPE_APPLE_SECURE_NOTES = 16200,
KERN_TYPE_PLAINTEXT = 99999,
} kern_type_t;
@ -1697,6 +1720,7 @@ typedef enum rounds_count
ROUNDS_DPAPIMK_V1 = 24000 - 1, // from 4000 to 24000 (possibly more)
ROUNDS_DPAPIMK_V2 = 8000 - 1, // from 4000 to 24000 (possibly more)
ROUNDS_ETHEREUM_PBKDF2 = 262144 - 1,
ROUNDS_APPLE_SECURE_NOTES = 20000,
ROUNDS_STDOUT = 0
} rounds_count_t;
@ -1882,6 +1906,7 @@ int ethereum_pbkdf2_parse_hash (u8 *input_buf, u32 input_len, hash_t *hash_bu
int ethereum_scrypt_parse_hash (u8 *input_buf, u32 input_len, hash_t *hash_buf, MAYBE_UNUSED const hashconfig_t *hashconfig);
int tripcode_parse_hash (u8 *input_buf, u32 input_len, hash_t *hash_buf, MAYBE_UNUSED const hashconfig_t *hashconfig);
int tacacs_plus_parse_hash (u8 *input_buf, u32 input_len, hash_t *hash_buf, MAYBE_UNUSED const hashconfig_t *hashconfig);
int apple_secure_notes_parse_hash (u8 *input_buf, u32 input_len, hash_t *hash_buf, MAYBE_UNUSED const hashconfig_t *hashconfig);
/**
* hook functions

@ -269,6 +269,7 @@ static const char *ST_HASH_15600 = "$ethereum$p*1024*383531313538313333383131383
static const char *ST_HASH_15900 = "$DPAPImk$2*1*S-15-21-439882973-489230393-482956683-1522*aes256*sha512*12900*79f7ca399f2626e21aad108c3922af7c*288*c47bc8a985ca6aa708b01c97b004bff20cc52379dc2635b4acf59ce17970a2cb47ace98c7e8de977f265243c5c03d0a97e4b954b494d9e38d9158d0c1e729d16a28ba69e2e7c6c3bc0e3afc9c9b6306b83372ccb35d89b98925728fd36315b8ee95b4d4eccdcb31564769f9a4b9ee10828184e16d4af336675d5e31d987dd87233d34fbbb98880c5e1f64cbb9b043ad8";
static const char *ST_HASH_16000 = "pfaRCwDe0U";
static const char *ST_HASH_16100 = "$tacacs-plus$0$5fde8e68$4e13e8fb33df$c006";
static const char *ST_HASH_16200 = "$SN$*1*20000*80771171105233481004850004085037*d04b17af7f6b184346aad3efefe8bec0987ee73418291a41";
static const char *ST_HASH_99999 = "hashcat";
static const char *OPTI_STR_OPTIMIZED_KERNEL = "Optimized-Kernel";
@ -503,6 +504,7 @@ static const char *HT_15700 = "Ethereum Wallet, SCRYPT";
static const char *HT_15900 = "DPAPI masterkey file v2";
static const char *HT_16000 = "Tripcode";
static const char *HT_16100 = "TACACS+";
static const char *HT_16200 = "Apple Secure Notes";
static const char *HT_99999 = "Plaintext";
static const char *HT_00011 = "Joomla < 2.5.18";
@ -565,89 +567,90 @@ static const char *HT_13762 = "VeraCrypt PBKDF2-HMAC-SHA256 + XTS 1024 bit + boo
static const char *HT_13763 = "VeraCrypt PBKDF2-HMAC-SHA256 + XTS 1536 bit + boot-mode";
static const char *HT_12001 = "Atlassian (PBKDF2-HMAC-SHA1)";
static const char *SIGNATURE_ANDROIDFDE = "$fde$";
static const char *SIGNATURE_AXCRYPT = "$axcrypt$*1";
static const char *SIGNATURE_AXCRYPT_SHA1 = "$axcrypt_sha1";
static const char *SIGNATURE_BCRYPT1 = "$2a$";
static const char *SIGNATURE_BCRYPT2 = "$2b$";
static const char *SIGNATURE_BCRYPT3 = "$2x$";
static const char *SIGNATURE_BCRYPT4 = "$2y$";
static const char *SIGNATURE_BITCOIN_WALLET = "$bitcoin$";
static const char *SIGNATURE_BSDICRYPT = "_";
static const char *SIGNATURE_CISCO8 = "$8$";
static const char *SIGNATURE_CISCO9 = "$9$";
static const char *SIGNATURE_CRAM_MD5 = "$cram_md5$";
static const char *SIGNATURE_DCC2 = "$DCC2$";
static const char *SIGNATURE_DJANGOPBKDF2 = "pbkdf2_sha256$";
static const char *SIGNATURE_DJANGOSHA1 = "sha1$";
static const char *SIGNATURE_DPAPIMK = "$DPAPImk$";
static const char *SIGNATURE_DRUPAL7 = "$S$";
static const char *SIGNATURE_ECRYPTFS = "$ecryptfs$";
static const char *SIGNATURE_EPISERVER4 = "$episerver$*1*";
static const char *SIGNATURE_EPISERVER = "$episerver$*0*";
static const char *SIGNATURE_KEEPASS = "$keepass$";
static const char *SIGNATURE_KRB5PA = "$krb5pa$23";
static const char *SIGNATURE_KRB5TGS = "$krb5tgs$23";
static const char *SIGNATURE_MD5AIX = "{smd5}";
static const char *SIGNATURE_MD5APR1 = "$apr1$";
static const char *SIGNATURE_MD5CRYPT = "$1$";
static const char *SIGNATURE_MEDIAWIKI_B = "$B$";
static const char *SIGNATURE_MS_DRSR = "v1;PPH1_MD4";
static const char *SIGNATURE_MSSQL = "0x0100";
static const char *SIGNATURE_MSSQL2012 = "0x0200";
static const char *SIGNATURE_MYSQL_AUTH = "$mysqlna$";
static const char *SIGNATURE_MYWALLET = "$blockchain$";
static const char *SIGNATURE_MYWALLETV2 = "$blockchain$v2$";
static const char *SIGNATURE_NETSCALER = "1";
static const char *SIGNATURE_OFFICE2007 = "$office$";
static const char *SIGNATURE_OFFICE2010 = "$office$";
static const char *SIGNATURE_OFFICE2013 = "$office$";
static const char *SIGNATURE_OLDOFFICE0 = "$oldoffice$0";
static const char *SIGNATURE_OLDOFFICE1 = "$oldoffice$1";
static const char *SIGNATURE_OLDOFFICE3 = "$oldoffice$3";
static const char *SIGNATURE_OLDOFFICE4 = "$oldoffice$4";
static const char *SIGNATURE_PBKDF2_MD5 = "md5:";
static const char *SIGNATURE_PBKDF2_SHA1 = "sha1:";
static const char *SIGNATURE_PBKDF2_SHA256 = "sha256:";
static const char *SIGNATURE_PBKDF2_SHA512 = "sha512:";
static const char *SIGNATURE_PDF = "$pdf$";
static const char *SIGNATURE_PHPASS1 = "$P$";
static const char *SIGNATURE_PHPASS2 = "$H$";
static const char *SIGNATURE_PHPS = "$PHPS$";
static const char *SIGNATURE_POSTGRESQL_AUTH = "$postgres$";
static const char *SIGNATURE_PSAFE3 = "PWS3";
static const char *SIGNATURE_RACF = "$racf$";
static const char *SIGNATURE_RAR3 = "$RAR3$";
static const char *SIGNATURE_RAR5 = "$rar5$";
static const char *SIGNATURE_SAPH_SHA1 = "{x-issha, ";
static const char *SIGNATURE_SCRYPT = "SCRYPT";
static const char *SIGNATURE_SEVEN_ZIP = "$7z$";
static const char *SIGNATURE_SHA1AIX = "{ssha1}";
static const char *SIGNATURE_SHA1B64 = "{SHA}";
static const char *SIGNATURE_SHA256AIX = "{ssha256}";
static const char *SIGNATURE_SHA256B64S = "{SSHA256}";
static const char *SIGNATURE_SHA256CRYPT = "$5$";
static const char *SIGNATURE_SHA512AIX = "{ssha512}";
static const char *SIGNATURE_SHA512B64S = "{SSHA512}";
static const char *SIGNATURE_SHA512CRYPT = "$6$";
static const char *SIGNATURE_SHA512GRUB = "grub.pbkdf2.sha512.";
static const char *SIGNATURE_SHA512MACOS = "$ml$";
static const char *SIGNATURE_SIP_AUTH = "$sip$*";
static const char *SIGNATURE_SSHA1B64_lower = "{ssha}";
static const char *SIGNATURE_SSHA1B64_upper = "{SSHA}";
static const char *SIGNATURE_SYBASEASE = "0xc007";
static const char *SIGNATURE_ZIP2_START = "$zip2$";
static const char *SIGNATURE_ZIP2_STOP = "$/zip2$";
static const char *SIGNATURE_ITUNES_BACKUP = "$itunes_backup$";
static const char *SIGNATURE_FORTIGATE = "AK1";
static const char *SIGNATURE_ATLASSIAN = "{PKCS5S2}";
static const char *SIGNATURE_NETBSD_SHA1CRYPT = "$sha1$";
static const char *SIGNATURE_BLAKE2B = "$BLAKE2$";
static const char *SIGNATURE_CHACHA20 = "$chacha20$";
static const char *SIGNATURE_JKS_SHA1 = "$jksprivk$";
static const char *SIGNATURE_ETHEREUM_PBKDF2 = "$ethereum$p";
static const char *SIGNATURE_ETHEREUM_SCRYPT = "$ethereum$s";
static const char *SIGNATURE_TACACS_PLUS = "$tacacs-plus$0$";
static const char *SIGNATURE_ANDROIDFDE = "$fde$";
static const char *SIGNATURE_AXCRYPT = "$axcrypt$*1";
static const char *SIGNATURE_AXCRYPT_SHA1 = "$axcrypt_sha1";
static const char *SIGNATURE_BCRYPT1 = "$2a$";
static const char *SIGNATURE_BCRYPT2 = "$2b$";
static const char *SIGNATURE_BCRYPT3 = "$2x$";
static const char *SIGNATURE_BCRYPT4 = "$2y$";
static const char *SIGNATURE_BITCOIN_WALLET = "$bitcoin$";
static const char *SIGNATURE_BSDICRYPT = "_";
static const char *SIGNATURE_CISCO8 = "$8$";
static const char *SIGNATURE_CISCO9 = "$9$";
static const char *SIGNATURE_CRAM_MD5 = "$cram_md5$";
static const char *SIGNATURE_DCC2 = "$DCC2$";
static const char *SIGNATURE_DJANGOPBKDF2 = "pbkdf2_sha256$";
static const char *SIGNATURE_DJANGOSHA1 = "sha1$";
static const char *SIGNATURE_DPAPIMK = "$DPAPImk$";
static const char *SIGNATURE_DRUPAL7 = "$S$";
static const char *SIGNATURE_ECRYPTFS = "$ecryptfs$";
static const char *SIGNATURE_EPISERVER4 = "$episerver$*1*";
static const char *SIGNATURE_EPISERVER = "$episerver$*0*";
static const char *SIGNATURE_KEEPASS = "$keepass$";
static const char *SIGNATURE_KRB5PA = "$krb5pa$23";
static const char *SIGNATURE_KRB5TGS = "$krb5tgs$23";
static const char *SIGNATURE_MD5AIX = "{smd5}";
static const char *SIGNATURE_MD5APR1 = "$apr1$";
static const char *SIGNATURE_MD5CRYPT = "$1$";
static const char *SIGNATURE_MEDIAWIKI_B = "$B$";
static const char *SIGNATURE_MS_DRSR = "v1;PPH1_MD4";
static const char *SIGNATURE_MSSQL = "0x0100";
static const char *SIGNATURE_MSSQL2012 = "0x0200";
static const char *SIGNATURE_MYSQL_AUTH = "$mysqlna$";
static const char *SIGNATURE_MYWALLET = "$blockchain$";
static const char *SIGNATURE_MYWALLETV2 = "$blockchain$v2$";
static const char *SIGNATURE_NETSCALER = "1";
static const char *SIGNATURE_OFFICE2007 = "$office$";
static const char *SIGNATURE_OFFICE2010 = "$office$";
static const char *SIGNATURE_OFFICE2013 = "$office$";
static const char *SIGNATURE_OLDOFFICE0 = "$oldoffice$0";
static const char *SIGNATURE_OLDOFFICE1 = "$oldoffice$1";
static const char *SIGNATURE_OLDOFFICE3 = "$oldoffice$3";
static const char *SIGNATURE_OLDOFFICE4 = "$oldoffice$4";
static const char *SIGNATURE_PBKDF2_MD5 = "md5:";
static const char *SIGNATURE_PBKDF2_SHA1 = "sha1:";
static const char *SIGNATURE_PBKDF2_SHA256 = "sha256:";
static const char *SIGNATURE_PBKDF2_SHA512 = "sha512:";
static const char *SIGNATURE_PDF = "$pdf$";
static const char *SIGNATURE_PHPASS1 = "$P$";
static const char *SIGNATURE_PHPASS2 = "$H$";
static const char *SIGNATURE_PHPS = "$PHPS$";
static const char *SIGNATURE_POSTGRESQL_AUTH = "$postgres$";
static const char *SIGNATURE_PSAFE3 = "PWS3";
static const char *SIGNATURE_RACF = "$racf$";
static const char *SIGNATURE_RAR3 = "$RAR3$";
static const char *SIGNATURE_RAR5 = "$rar5$";
static const char *SIGNATURE_SAPH_SHA1 = "{x-issha, ";
static const char *SIGNATURE_SCRYPT = "SCRYPT";
static const char *SIGNATURE_SEVEN_ZIP = "$7z$";
static const char *SIGNATURE_SHA1AIX = "{ssha1}";
static const char *SIGNATURE_SHA1B64 = "{SHA}";
static const char *SIGNATURE_SHA256AIX = "{ssha256}";
static const char *SIGNATURE_SHA256B64S = "{SSHA256}";
static const char *SIGNATURE_SHA256CRYPT = "$5$";
static const char *SIGNATURE_SHA512AIX = "{ssha512}";
static const char *SIGNATURE_SHA512B64S = "{SSHA512}";
static const char *SIGNATURE_SHA512CRYPT = "$6$";
static const char *SIGNATURE_SHA512GRUB = "grub.pbkdf2.sha512.";
static const char *SIGNATURE_SHA512MACOS = "$ml$";
static const char *SIGNATURE_SIP_AUTH = "$sip$*";
static const char *SIGNATURE_SSHA1B64_lower = "{ssha}";
static const char *SIGNATURE_SSHA1B64_upper = "{SSHA}";
static const char *SIGNATURE_SYBASEASE = "0xc007";
static const char *SIGNATURE_ZIP2_START = "$zip2$";
static const char *SIGNATURE_ZIP2_STOP = "$/zip2$";
static const char *SIGNATURE_ITUNES_BACKUP = "$itunes_backup$";
static const char *SIGNATURE_FORTIGATE = "AK1";
static const char *SIGNATURE_ATLASSIAN = "{PKCS5S2}";
static const char *SIGNATURE_NETBSD_SHA1CRYPT = "$sha1$";
static const char *SIGNATURE_BLAKE2B = "$BLAKE2$";
static const char *SIGNATURE_CHACHA20 = "$chacha20$";
static const char *SIGNATURE_JKS_SHA1 = "$jksprivk$";
static const char *SIGNATURE_ETHEREUM_PBKDF2 = "$ethereum$p";
static const char *SIGNATURE_ETHEREUM_SCRYPT = "$ethereum$s";
static const char *SIGNATURE_TACACS_PLUS = "$tacacs-plus$0$";
static const char *SIGNATURE_APPLE_SECURE_NOTES = "$SN$";
/**
* decoder / encoder
@ -15828,6 +15831,126 @@ int tacacs_plus_parse_hash (u8 *input_buf, u32 input_len, hash_t *hash_buf, MAYB
return (PARSER_OK);
}
int apple_secure_notes_parse_hash (u8 *input_buf, u32 input_len, hash_t *hash_buf, MAYBE_UNUSED const hashconfig_t *hashconfig)
{
if ((input_len < DISPLAY_LEN_MIN_16200) || (input_len > DISPLAY_LEN_MAX_16200)) return (PARSER_GLOBAL_LENGTH);
if (memcmp (SIGNATURE_APPLE_SECURE_NOTES, input_buf, 4) != 0) return (PARSER_SIGNATURE_UNMATCHED);
u32 *digest = (u32 *) hash_buf->digest;
salt_t *salt = hash_buf->salt;
apple_secure_notes_t *apple_secure_notes = (apple_secure_notes_t *) hash_buf->esalt;
/**
* parse line
*/
// Z_PK
u8 *Z_PK_pos = input_buf + 4 + 1;
// ZCRYPTOITERATIONCOUNT
u8 *ZCRYPTOITERATIONCOUNT_pos = (u8 *) strchr ((const char *) Z_PK_pos, '*');
if (ZCRYPTOITERATIONCOUNT_pos == NULL) return (PARSER_SEPARATOR_UNMATCHED);
u32 Z_PK_len = ZCRYPTOITERATIONCOUNT_pos - Z_PK_pos;
ZCRYPTOITERATIONCOUNT_pos++;
// ZCRYPTOSALT
u8 *ZCRYPTOSALT_pos = (u8 *) strchr ((const char *) ZCRYPTOITERATIONCOUNT_pos, '*');
if (ZCRYPTOSALT_pos == NULL) return (PARSER_SEPARATOR_UNMATCHED);
u32 ZCRYPTOITERATIONCOUNT_len = ZCRYPTOSALT_pos - ZCRYPTOITERATIONCOUNT_pos;
ZCRYPTOSALT_pos++;
// ZCRYPTOWRAPPEDKEY
u8 *ZCRYPTOWRAPPEDKEY_pos = (u8 *) strchr ((const char *) ZCRYPTOSALT_pos, '*');
if (ZCRYPTOWRAPPEDKEY_pos == NULL) return (PARSER_SEPARATOR_UNMATCHED);
u32 ZCRYPTOSALT_len = ZCRYPTOWRAPPEDKEY_pos - ZCRYPTOSALT_pos;
ZCRYPTOWRAPPEDKEY_pos++;
u32 ZCRYPTOWRAPPEDKEY_len = input_len - 4 - 1 - Z_PK_len - 1 - ZCRYPTOITERATIONCOUNT_len - 1 - ZCRYPTOSALT_len - 1;
/**
* verify some data
*/
const u32 Z_PK = strtoul ((const char *) Z_PK_pos, NULL, 10);
const u32 ZCRYPTOITERATIONCOUNT = strtoul ((const char *) ZCRYPTOITERATIONCOUNT_pos, NULL, 10);
if (ZCRYPTOSALT_len != 32) return (PARSER_SALT_ENCODING);
if (ZCRYPTOWRAPPEDKEY_len != 48) return (PARSER_SALT_ENCODING);
if (is_valid_hex_string (ZCRYPTOSALT_pos, ZCRYPTOSALT_len) == false) return (PARSER_SALT_ENCODING);
if (is_valid_hex_string (ZCRYPTOWRAPPEDKEY_pos, ZCRYPTOWRAPPEDKEY_len) == false) return (PARSER_SALT_ENCODING);
if (ZCRYPTOITERATIONCOUNT != 20000) return (PARSER_SALT_ENCODING);
/**
* store data
*/
apple_secure_notes->Z_PK = Z_PK;
apple_secure_notes->ZCRYPTOITERATIONCOUNT = ZCRYPTOITERATIONCOUNT;
apple_secure_notes->ZCRYPTOSALT[ 0] = hex_to_u32 ((const u8 *) &ZCRYPTOSALT_pos[ 0]);
apple_secure_notes->ZCRYPTOSALT[ 1] = hex_to_u32 ((const u8 *) &ZCRYPTOSALT_pos[ 8]);
apple_secure_notes->ZCRYPTOSALT[ 2] = hex_to_u32 ((const u8 *) &ZCRYPTOSALT_pos[16]);
apple_secure_notes->ZCRYPTOSALT[ 3] = hex_to_u32 ((const u8 *) &ZCRYPTOSALT_pos[24]);
apple_secure_notes->ZCRYPTOSALT[ 4] = 0;
apple_secure_notes->ZCRYPTOSALT[ 5] = 0;
apple_secure_notes->ZCRYPTOSALT[ 6] = 0;
apple_secure_notes->ZCRYPTOSALT[ 7] = 0;
apple_secure_notes->ZCRYPTOSALT[ 8] = 0;
apple_secure_notes->ZCRYPTOSALT[ 9] = 0;
apple_secure_notes->ZCRYPTOSALT[10] = 0;
apple_secure_notes->ZCRYPTOSALT[11] = 0;
apple_secure_notes->ZCRYPTOSALT[12] = 0;
apple_secure_notes->ZCRYPTOSALT[13] = 0;
apple_secure_notes->ZCRYPTOSALT[14] = 0;
apple_secure_notes->ZCRYPTOSALT[15] = 0;
apple_secure_notes->ZCRYPTOWRAPPEDKEY[0] = hex_to_u32 ((const u8 *) &ZCRYPTOWRAPPEDKEY_pos[ 0]);
apple_secure_notes->ZCRYPTOWRAPPEDKEY[1] = hex_to_u32 ((const u8 *) &ZCRYPTOWRAPPEDKEY_pos[ 8]);
apple_secure_notes->ZCRYPTOWRAPPEDKEY[2] = hex_to_u32 ((const u8 *) &ZCRYPTOWRAPPEDKEY_pos[16]);
apple_secure_notes->ZCRYPTOWRAPPEDKEY[3] = hex_to_u32 ((const u8 *) &ZCRYPTOWRAPPEDKEY_pos[24]);
apple_secure_notes->ZCRYPTOWRAPPEDKEY[4] = hex_to_u32 ((const u8 *) &ZCRYPTOWRAPPEDKEY_pos[32]);
apple_secure_notes->ZCRYPTOWRAPPEDKEY[5] = hex_to_u32 ((const u8 *) &ZCRYPTOWRAPPEDKEY_pos[40]);
// fake salt
salt->salt_buf[0] = apple_secure_notes->ZCRYPTOSALT[0];
salt->salt_buf[1] = apple_secure_notes->ZCRYPTOSALT[1];
salt->salt_buf[2] = apple_secure_notes->ZCRYPTOSALT[2];
salt->salt_buf[3] = apple_secure_notes->ZCRYPTOSALT[3];
salt->salt_buf[4] = apple_secure_notes->Z_PK;
salt->salt_iter = apple_secure_notes->ZCRYPTOITERATIONCOUNT - 1;
salt->salt_len = 20;
// fake hash
digest[0] = apple_secure_notes->ZCRYPTOWRAPPEDKEY[0];
digest[1] = apple_secure_notes->ZCRYPTOWRAPPEDKEY[1];
digest[2] = apple_secure_notes->ZCRYPTOWRAPPEDKEY[2];
digest[3] = apple_secure_notes->ZCRYPTOWRAPPEDKEY[3];
return (PARSER_OK);
}
/**
* hook functions
*/
@ -16260,6 +16383,7 @@ const char *strhashtype (const u32 hash_mode)
case 15900: return HT_15900;
case 16000: return HT_16000;
case 16100: return HT_16100;
case 16200: return HT_16200;
case 99999: return HT_99999;
}
@ -19693,6 +19817,27 @@ int ascii_digest (hashcat_ctx_t *hashcat_ctx, char *out_buf, const size_t out_le
sequence_ptr[0],
sequence_ptr[1]);
}
else if (hash_mode == 16200)
{
apple_secure_notes_t *apple_secure_notess = (apple_secure_notes_t *) esalts_buf;
apple_secure_notes_t *apple_secure_notes = &apple_secure_notess[digest_cur];
snprintf (out_buf, out_len - 1, "%s*%u*%u*%08x%08x%08x%08x*%08x%08x%08x%08x%08x%08x",
SIGNATURE_APPLE_SECURE_NOTES,
apple_secure_notes->Z_PK,
apple_secure_notes->ZCRYPTOITERATIONCOUNT,
byte_swap_32 (apple_secure_notes->ZCRYPTOSALT[0]),
byte_swap_32 (apple_secure_notes->ZCRYPTOSALT[1]),
byte_swap_32 (apple_secure_notes->ZCRYPTOSALT[2]),
byte_swap_32 (apple_secure_notes->ZCRYPTOSALT[3]),
byte_swap_32 (apple_secure_notes->ZCRYPTOWRAPPEDKEY[0]),
byte_swap_32 (apple_secure_notes->ZCRYPTOWRAPPEDKEY[1]),
byte_swap_32 (apple_secure_notes->ZCRYPTOWRAPPEDKEY[2]),
byte_swap_32 (apple_secure_notes->ZCRYPTOWRAPPEDKEY[3]),
byte_swap_32 (apple_secure_notes->ZCRYPTOWRAPPEDKEY[4]),
byte_swap_32 (apple_secure_notes->ZCRYPTOWRAPPEDKEY[5]));
}
else if (hash_mode == 99999)
{
char *ptr = (char *) digest_buf;
@ -24672,6 +24817,22 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx)
hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN;
break;
case 16200: hashconfig->hash_type = HASH_TYPE_APPLE_SECURE_NOTES;
hashconfig->salt_type = SALT_TYPE_EMBEDDED;
hashconfig->attack_exec = ATTACK_EXEC_OUTSIDE_KERNEL;
hashconfig->opts_type = OPTS_TYPE_PT_GENERATE_LE;
hashconfig->kern_type = KERN_TYPE_APPLE_SECURE_NOTES;
hashconfig->dgst_size = DGST_SIZE_4_4; // originally DGST_SIZE_4_2
hashconfig->parse_func = apple_secure_notes_parse_hash;
hashconfig->opti_type = OPTI_TYPE_ZERO_BYTE;
hashconfig->dgst_pos0 = 0;
hashconfig->dgst_pos1 = 1;
hashconfig->dgst_pos2 = 2;
hashconfig->dgst_pos3 = 3;
hashconfig->st_hash = ST_HASH_16200;
hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN;
break;
case 99999: hashconfig->hash_type = HASH_TYPE_PLAINTEXT;
hashconfig->salt_type = SALT_TYPE_NONE;
hashconfig->attack_exec = ATTACK_EXEC_INSIDE_KERNEL;
@ -24796,91 +24957,92 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx)
switch (hashconfig->hash_mode)
{
case 600: hashconfig->esalt_size = sizeof (blake2_t); break;
case 2500: hashconfig->esalt_size = sizeof (wpa_t); break;
case 2501: hashconfig->esalt_size = sizeof (wpa_t); break;
case 5300: hashconfig->esalt_size = sizeof (ikepsk_t); break;
case 5400: hashconfig->esalt_size = sizeof (ikepsk_t); break;
case 5500: hashconfig->esalt_size = sizeof (netntlm_t); break;
case 5600: hashconfig->esalt_size = sizeof (netntlm_t); break;
case 6211: hashconfig->esalt_size = sizeof (tc_t); break;
case 6212: hashconfig->esalt_size = sizeof (tc_t); break;
case 6213: hashconfig->esalt_size = sizeof (tc_t); break;
case 6221: hashconfig->esalt_size = sizeof (tc_t); break;
case 6222: hashconfig->esalt_size = sizeof (tc_t); break;
case 6223: hashconfig->esalt_size = sizeof (tc_t); break;
case 6231: hashconfig->esalt_size = sizeof (tc_t); break;
case 6232: hashconfig->esalt_size = sizeof (tc_t); break;
case 6233: hashconfig->esalt_size = sizeof (tc_t); break;
case 6241: hashconfig->esalt_size = sizeof (tc_t); break;
case 6242: hashconfig->esalt_size = sizeof (tc_t); break;
case 6243: hashconfig->esalt_size = sizeof (tc_t); break;
case 6600: hashconfig->esalt_size = sizeof (agilekey_t); break;
case 7100: hashconfig->esalt_size = sizeof (pbkdf2_sha512_t); break;
case 7200: hashconfig->esalt_size = sizeof (pbkdf2_sha512_t); break;
case 7300: hashconfig->esalt_size = sizeof (rakp_t); break;
case 7500: hashconfig->esalt_size = sizeof (krb5pa_t); break;
case 8200: hashconfig->esalt_size = sizeof (cloudkey_t); break;
case 8800: hashconfig->esalt_size = sizeof (androidfde_t); break;
case 9200: hashconfig->esalt_size = sizeof (pbkdf2_sha256_t); break;
case 9400: hashconfig->esalt_size = sizeof (office2007_t); break;
case 9500: hashconfig->esalt_size = sizeof (office2010_t); break;
case 9600: hashconfig->esalt_size = sizeof (office2013_t); break;
case 9700: hashconfig->esalt_size = sizeof (oldoffice01_t); break;
case 9710: hashconfig->esalt_size = sizeof (oldoffice01_t); break;
case 9720: hashconfig->esalt_size = sizeof (oldoffice01_t); break;
case 9800: hashconfig->esalt_size = sizeof (oldoffice34_t); break;
case 9810: hashconfig->esalt_size = sizeof (oldoffice34_t); break;
case 9820: hashconfig->esalt_size = sizeof (oldoffice34_t); break;
case 10000: hashconfig->esalt_size = sizeof (pbkdf2_sha256_t); break;
case 10200: hashconfig->esalt_size = sizeof (cram_md5_t); break;
case 10400: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10410: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10420: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10500: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10600: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10700: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10900: hashconfig->esalt_size = sizeof (pbkdf2_sha256_t); break;
case 11300: hashconfig->esalt_size = sizeof (bitcoin_wallet_t); break;
case 11400: hashconfig->esalt_size = sizeof (sip_t); break;
case 11900: hashconfig->esalt_size = sizeof (pbkdf2_md5_t); break;
case 12000: hashconfig->esalt_size = sizeof (pbkdf2_sha1_t); break;
case 12001: hashconfig->esalt_size = sizeof (pbkdf2_sha1_t); break;
case 12100: hashconfig->esalt_size = sizeof (pbkdf2_sha512_t); break;
case 13000: hashconfig->esalt_size = sizeof (rar5_t); break;
case 13100: hashconfig->esalt_size = sizeof (krb5tgs_t); break;
case 13400: hashconfig->esalt_size = sizeof (keepass_t); break;
case 13500: hashconfig->esalt_size = sizeof (pstoken_t); break;
case 13600: hashconfig->esalt_size = sizeof (zip2_t); break;
case 13711: hashconfig->esalt_size = sizeof (tc_t); break;
case 13712: hashconfig->esalt_size = sizeof (tc_t); break;
case 13713: hashconfig->esalt_size = sizeof (tc_t); break;
case 13721: hashconfig->esalt_size = sizeof (tc_t); break;
case 13722: hashconfig->esalt_size = sizeof (tc_t); break;
case 13723: hashconfig->esalt_size = sizeof (tc_t); break;
case 13731: hashconfig->esalt_size = sizeof (tc_t); break;
case 13732: hashconfig->esalt_size = sizeof (tc_t); break;
case 13733: hashconfig->esalt_size = sizeof (tc_t); break;
case 13741: hashconfig->esalt_size = sizeof (tc_t); break;
case 13742: hashconfig->esalt_size = sizeof (tc_t); break;
case 13743: hashconfig->esalt_size = sizeof (tc_t); break;
case 13751: hashconfig->esalt_size = sizeof (tc_t); break;
case 13752: hashconfig->esalt_size = sizeof (tc_t); break;
case 13753: hashconfig->esalt_size = sizeof (tc_t); break;
case 13761: hashconfig->esalt_size = sizeof (tc_t); break;
case 13762: hashconfig->esalt_size = sizeof (tc_t); break;
case 13763: hashconfig->esalt_size = sizeof (tc_t); break;
case 13800: hashconfig->esalt_size = sizeof (win8phone_t); break;
case 14600: hashconfig->esalt_size = sizeof (luks_t); break;
case 14700: hashconfig->esalt_size = sizeof (itunes_backup_t); break;
case 14800: hashconfig->esalt_size = sizeof (itunes_backup_t); break;
case 15300: hashconfig->esalt_size = sizeof (dpapimk_t); break;
case 15400: hashconfig->esalt_size = sizeof (chacha20_t); break;
case 15500: hashconfig->esalt_size = sizeof (jks_sha1_t); break;
case 15600: hashconfig->esalt_size = sizeof (ethereum_pbkdf2_t); break;
case 15700: hashconfig->esalt_size = sizeof (ethereum_scrypt_t); break;
case 15900: hashconfig->esalt_size = sizeof (dpapimk_t); break;
case 16100: hashconfig->esalt_size = sizeof (tacacs_plus_t); break;
case 600: hashconfig->esalt_size = sizeof (blake2_t); break;
case 2500: hashconfig->esalt_size = sizeof (wpa_t); break;
case 2501: hashconfig->esalt_size = sizeof (wpa_t); break;
case 5300: hashconfig->esalt_size = sizeof (ikepsk_t); break;
case 5400: hashconfig->esalt_size = sizeof (ikepsk_t); break;
case 5500: hashconfig->esalt_size = sizeof (netntlm_t); break;
case 5600: hashconfig->esalt_size = sizeof (netntlm_t); break;
case 6211: hashconfig->esalt_size = sizeof (tc_t); break;
case 6212: hashconfig->esalt_size = sizeof (tc_t); break;
case 6213: hashconfig->esalt_size = sizeof (tc_t); break;
case 6221: hashconfig->esalt_size = sizeof (tc_t); break;
case 6222: hashconfig->esalt_size = sizeof (tc_t); break;
case 6223: hashconfig->esalt_size = sizeof (tc_t); break;
case 6231: hashconfig->esalt_size = sizeof (tc_t); break;
case 6232: hashconfig->esalt_size = sizeof (tc_t); break;
case 6233: hashconfig->esalt_size = sizeof (tc_t); break;
case 6241: hashconfig->esalt_size = sizeof (tc_t); break;
case 6242: hashconfig->esalt_size = sizeof (tc_t); break;
case 6243: hashconfig->esalt_size = sizeof (tc_t); break;
case 6600: hashconfig->esalt_size = sizeof (agilekey_t); break;
case 7100: hashconfig->esalt_size = sizeof (pbkdf2_sha512_t); break;
case 7200: hashconfig->esalt_size = sizeof (pbkdf2_sha512_t); break;
case 7300: hashconfig->esalt_size = sizeof (rakp_t); break;
case 7500: hashconfig->esalt_size = sizeof (krb5pa_t); break;
case 8200: hashconfig->esalt_size = sizeof (cloudkey_t); break;
case 8800: hashconfig->esalt_size = sizeof (androidfde_t); break;
case 9200: hashconfig->esalt_size = sizeof (pbkdf2_sha256_t); break;
case 9400: hashconfig->esalt_size = sizeof (office2007_t); break;
case 9500: hashconfig->esalt_size = sizeof (office2010_t); break;
case 9600: hashconfig->esalt_size = sizeof (office2013_t); break;
case 9700: hashconfig->esalt_size = sizeof (oldoffice01_t); break;
case 9710: hashconfig->esalt_size = sizeof (oldoffice01_t); break;
case 9720: hashconfig->esalt_size = sizeof (oldoffice01_t); break;
case 9800: hashconfig->esalt_size = sizeof (oldoffice34_t); break;
case 9810: hashconfig->esalt_size = sizeof (oldoffice34_t); break;
case 9820: hashconfig->esalt_size = sizeof (oldoffice34_t); break;
case 10000: hashconfig->esalt_size = sizeof (pbkdf2_sha256_t); break;
case 10200: hashconfig->esalt_size = sizeof (cram_md5_t); break;
case 10400: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10410: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10420: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10500: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10600: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10700: hashconfig->esalt_size = sizeof (pdf_t); break;
case 10900: hashconfig->esalt_size = sizeof (pbkdf2_sha256_t); break;
case 11300: hashconfig->esalt_size = sizeof (bitcoin_wallet_t); break;
case 11400: hashconfig->esalt_size = sizeof (sip_t); break;
case 11900: hashconfig->esalt_size = sizeof (pbkdf2_md5_t); break;
case 12000: hashconfig->esalt_size = sizeof (pbkdf2_sha1_t); break;
case 12001: hashconfig->esalt_size = sizeof (pbkdf2_sha1_t); break;
case 12100: hashconfig->esalt_size = sizeof (pbkdf2_sha512_t); break;
case 13000: hashconfig->esalt_size = sizeof (rar5_t); break;
case 13100: hashconfig->esalt_size = sizeof (krb5tgs_t); break;
case 13400: hashconfig->esalt_size = sizeof (keepass_t); break;
case 13500: hashconfig->esalt_size = sizeof (pstoken_t); break;
case 13600: hashconfig->esalt_size = sizeof (zip2_t); break;
case 13711: hashconfig->esalt_size = sizeof (tc_t); break;
case 13712: hashconfig->esalt_size = sizeof (tc_t); break;
case 13713: hashconfig->esalt_size = sizeof (tc_t); break;
case 13721: hashconfig->esalt_size = sizeof (tc_t); break;
case 13722: hashconfig->esalt_size = sizeof (tc_t); break;
case 13723: hashconfig->esalt_size = sizeof (tc_t); break;
case 13731: hashconfig->esalt_size = sizeof (tc_t); break;
case 13732: hashconfig->esalt_size = sizeof (tc_t); break;
case 13733: hashconfig->esalt_size = sizeof (tc_t); break;
case 13741: hashconfig->esalt_size = sizeof (tc_t); break;
case 13742: hashconfig->esalt_size = sizeof (tc_t); break;
case 13743: hashconfig->esalt_size = sizeof (tc_t); break;
case 13751: hashconfig->esalt_size = sizeof (tc_t); break;
case 13752: hashconfig->esalt_size = sizeof (tc_t); break;
case 13753: hashconfig->esalt_size = sizeof (tc_t); break;
case 13761: hashconfig->esalt_size = sizeof (tc_t); break;
case 13762: hashconfig->esalt_size = sizeof (tc_t); break;
case 13763: hashconfig->esalt_size = sizeof (tc_t); break;
case 13800: hashconfig->esalt_size = sizeof (win8phone_t); break;
case 14600: hashconfig->esalt_size = sizeof (luks_t); break;
case 14700: hashconfig->esalt_size = sizeof (itunes_backup_t); break;
case 14800: hashconfig->esalt_size = sizeof (itunes_backup_t); break;
case 15300: hashconfig->esalt_size = sizeof (dpapimk_t); break;
case 15400: hashconfig->esalt_size = sizeof (chacha20_t); break;
case 15500: hashconfig->esalt_size = sizeof (jks_sha1_t); break;
case 15600: hashconfig->esalt_size = sizeof (ethereum_pbkdf2_t); break;
case 15700: hashconfig->esalt_size = sizeof (ethereum_scrypt_t); break;
case 15900: hashconfig->esalt_size = sizeof (dpapimk_t); break;
case 16100: hashconfig->esalt_size = sizeof (tacacs_plus_t); break;
case 16200: hashconfig->esalt_size = sizeof (apple_secure_notes_t); break;
}
// hook_salt_size
@ -24898,96 +25060,97 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx)
switch (hashconfig->hash_mode)
{
case 400: hashconfig->tmp_size = sizeof (phpass_tmp_t); break;
case 500: hashconfig->tmp_size = sizeof (md5crypt_tmp_t); break;
case 501: hashconfig->tmp_size = sizeof (md5crypt_tmp_t); break;
case 1600: hashconfig->tmp_size = sizeof (md5crypt_tmp_t); break;
case 1800: hashconfig->tmp_size = sizeof (sha512crypt_tmp_t); break;
case 2100: hashconfig->tmp_size = sizeof (dcc2_tmp_t); break;
case 2500: hashconfig->tmp_size = sizeof (wpa_tmp_t); break;
case 2501: hashconfig->tmp_size = sizeof (wpapmk_tmp_t); break;
case 3200: hashconfig->tmp_size = sizeof (bcrypt_tmp_t); break;
case 5200: hashconfig->tmp_size = sizeof (pwsafe3_tmp_t); break;
case 5800: hashconfig->tmp_size = sizeof (androidpin_tmp_t); break;
case 6211: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6212: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6213: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6221: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 6222: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 6223: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 6231: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6232: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6233: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6241: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6242: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6243: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6300: hashconfig->tmp_size = sizeof (md5crypt_tmp_t); break;
case 6400: hashconfig->tmp_size = sizeof (sha256aix_tmp_t); break;
case 6500: hashconfig->tmp_size = sizeof (sha512aix_tmp_t); break;
case 6600: hashconfig->tmp_size = sizeof (agilekey_tmp_t); break;
case 6700: hashconfig->tmp_size = sizeof (sha1aix_tmp_t); break;
case 6800: hashconfig->tmp_size = sizeof (lastpass_tmp_t); break;
case 7100: hashconfig->tmp_size = sizeof (pbkdf2_sha512_tmp_t); break;
case 7200: hashconfig->tmp_size = sizeof (pbkdf2_sha512_tmp_t); break;
case 7400: hashconfig->tmp_size = sizeof (sha256crypt_tmp_t); break;
case 7900: hashconfig->tmp_size = sizeof (drupal7_tmp_t); break;
case 8200: hashconfig->tmp_size = sizeof (pbkdf2_sha512_tmp_t); break;
case 8800: hashconfig->tmp_size = sizeof (androidfde_tmp_t); break;
case 9000: hashconfig->tmp_size = sizeof (pwsafe2_tmp_t); break;
case 9100: hashconfig->tmp_size = sizeof (lotus8_tmp_t); break;
case 9200: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 9400: hashconfig->tmp_size = sizeof (office2007_tmp_t); break;
case 9500: hashconfig->tmp_size = sizeof (office2010_tmp_t); break;
case 9600: hashconfig->tmp_size = sizeof (office2013_tmp_t); break;
case 10000: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 10200: hashconfig->tmp_size = sizeof (cram_md5_t); break;
case 10300: hashconfig->tmp_size = sizeof (saph_sha1_tmp_t); break;
case 10500: hashconfig->tmp_size = sizeof (pdf14_tmp_t); break;
case 10700: hashconfig->tmp_size = sizeof (pdf17l8_tmp_t); break;
case 10900: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 11300: hashconfig->tmp_size = sizeof (bitcoin_wallet_tmp_t); break;
case 11600: hashconfig->tmp_size = sizeof (seven_zip_tmp_t); break;
case 11900: hashconfig->tmp_size = sizeof (pbkdf2_md5_tmp_t); break;
case 12000: hashconfig->tmp_size = sizeof (pbkdf2_sha1_tmp_t); break;
case 12001: hashconfig->tmp_size = sizeof (pbkdf2_sha1_tmp_t); break;
case 12100: hashconfig->tmp_size = sizeof (pbkdf2_sha512_tmp_t); break;
case 12200: hashconfig->tmp_size = sizeof (ecryptfs_tmp_t); break;
case 12300: hashconfig->tmp_size = sizeof (oraclet_tmp_t); break;
case 12400: hashconfig->tmp_size = sizeof (bsdicrypt_tmp_t); break;
case 12500: hashconfig->tmp_size = sizeof (rar3_tmp_t); break;
case 12700: hashconfig->tmp_size = sizeof (mywallet_tmp_t); break;
case 12800: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 12900: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 13000: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 13200: hashconfig->tmp_size = sizeof (axcrypt_tmp_t); break;
case 13400: hashconfig->tmp_size = sizeof (keepass_tmp_t); break;
case 13600: hashconfig->tmp_size = sizeof (pbkdf2_sha1_tmp_t); break;
case 13711: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13712: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13713: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13721: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 13722: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 13723: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 13731: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13732: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13733: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13741: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13742: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13743: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13751: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13752: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13753: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13761: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13762: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13763: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 14600: hashconfig->tmp_size = sizeof (luks_tmp_t); break;
case 14700: hashconfig->tmp_size = sizeof (pbkdf2_sha1_tmp_t); break;
case 14800: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 15100: hashconfig->tmp_size = sizeof (pbkdf1_sha1_tmp_t); break;
case 15200: hashconfig->tmp_size = sizeof (mywallet_tmp_t); break;
case 15300: hashconfig->tmp_size = sizeof (dpapimk_tmp_v1_t); break;
case 15600: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 15900: hashconfig->tmp_size = sizeof (dpapimk_tmp_v2_t); break;
case 400: hashconfig->tmp_size = sizeof (phpass_tmp_t); break;
case 500: hashconfig->tmp_size = sizeof (md5crypt_tmp_t); break;
case 501: hashconfig->tmp_size = sizeof (md5crypt_tmp_t); break;
case 1600: hashconfig->tmp_size = sizeof (md5crypt_tmp_t); break;
case 1800: hashconfig->tmp_size = sizeof (sha512crypt_tmp_t); break;
case 2100: hashconfig->tmp_size = sizeof (dcc2_tmp_t); break;
case 2500: hashconfig->tmp_size = sizeof (wpa_tmp_t); break;
case 2501: hashconfig->tmp_size = sizeof (wpapmk_tmp_t); break;
case 3200: hashconfig->tmp_size = sizeof (bcrypt_tmp_t); break;
case 5200: hashconfig->tmp_size = sizeof (pwsafe3_tmp_t); break;
case 5800: hashconfig->tmp_size = sizeof (androidpin_tmp_t); break;
case 6211: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6212: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6213: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6221: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 6222: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 6223: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 6231: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6232: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6233: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6241: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6242: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6243: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 6300: hashconfig->tmp_size = sizeof (md5crypt_tmp_t); break;
case 6400: hashconfig->tmp_size = sizeof (sha256aix_tmp_t); break;
case 6500: hashconfig->tmp_size = sizeof (sha512aix_tmp_t); break;
case 6600: hashconfig->tmp_size = sizeof (agilekey_tmp_t); break;
case 6700: hashconfig->tmp_size = sizeof (sha1aix_tmp_t); break;
case 6800: hashconfig->tmp_size = sizeof (lastpass_tmp_t); break;
case 7100: hashconfig->tmp_size = sizeof (pbkdf2_sha512_tmp_t); break;
case 7200: hashconfig->tmp_size = sizeof (pbkdf2_sha512_tmp_t); break;
case 7400: hashconfig->tmp_size = sizeof (sha256crypt_tmp_t); break;
case 7900: hashconfig->tmp_size = sizeof (drupal7_tmp_t); break;
case 8200: hashconfig->tmp_size = sizeof (pbkdf2_sha512_tmp_t); break;
case 8800: hashconfig->tmp_size = sizeof (androidfde_tmp_t); break;
case 9000: hashconfig->tmp_size = sizeof (pwsafe2_tmp_t); break;
case 9100: hashconfig->tmp_size = sizeof (lotus8_tmp_t); break;
case 9200: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 9400: hashconfig->tmp_size = sizeof (office2007_tmp_t); break;
case 9500: hashconfig->tmp_size = sizeof (office2010_tmp_t); break;
case 9600: hashconfig->tmp_size = sizeof (office2013_tmp_t); break;
case 10000: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 10200: hashconfig->tmp_size = sizeof (cram_md5_t); break;
case 10300: hashconfig->tmp_size = sizeof (saph_sha1_tmp_t); break;
case 10500: hashconfig->tmp_size = sizeof (pdf14_tmp_t); break;
case 10700: hashconfig->tmp_size = sizeof (pdf17l8_tmp_t); break;
case 10900: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 11300: hashconfig->tmp_size = sizeof (bitcoin_wallet_tmp_t); break;
case 11600: hashconfig->tmp_size = sizeof (seven_zip_tmp_t); break;
case 11900: hashconfig->tmp_size = sizeof (pbkdf2_md5_tmp_t); break;
case 12000: hashconfig->tmp_size = sizeof (pbkdf2_sha1_tmp_t); break;
case 12001: hashconfig->tmp_size = sizeof (pbkdf2_sha1_tmp_t); break;
case 12100: hashconfig->tmp_size = sizeof (pbkdf2_sha512_tmp_t); break;
case 12200: hashconfig->tmp_size = sizeof (ecryptfs_tmp_t); break;
case 12300: hashconfig->tmp_size = sizeof (oraclet_tmp_t); break;
case 12400: hashconfig->tmp_size = sizeof (bsdicrypt_tmp_t); break;
case 12500: hashconfig->tmp_size = sizeof (rar3_tmp_t); break;
case 12700: hashconfig->tmp_size = sizeof (mywallet_tmp_t); break;
case 12800: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 12900: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 13000: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 13200: hashconfig->tmp_size = sizeof (axcrypt_tmp_t); break;
case 13400: hashconfig->tmp_size = sizeof (keepass_tmp_t); break;
case 13600: hashconfig->tmp_size = sizeof (pbkdf2_sha1_tmp_t); break;
case 13711: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13712: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13713: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13721: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 13722: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 13723: hashconfig->tmp_size = sizeof (tc64_tmp_t); break;
case 13731: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13732: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13733: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13741: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13742: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13743: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13751: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13752: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13753: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13761: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13762: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 13763: hashconfig->tmp_size = sizeof (tc_tmp_t); break;
case 14600: hashconfig->tmp_size = sizeof (luks_tmp_t); break;
case 14700: hashconfig->tmp_size = sizeof (pbkdf2_sha1_tmp_t); break;
case 14800: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 15100: hashconfig->tmp_size = sizeof (pbkdf1_sha1_tmp_t); break;
case 15200: hashconfig->tmp_size = sizeof (mywallet_tmp_t); break;
case 15300: hashconfig->tmp_size = sizeof (dpapimk_tmp_v1_t); break;
case 15600: hashconfig->tmp_size = sizeof (pbkdf2_sha256_tmp_t); break;
case 15900: hashconfig->tmp_size = sizeof (dpapimk_tmp_v2_t); break;
case 16200: hashconfig->tmp_size = sizeof (apple_secure_notes_tmp_t); break;
};
// hook_size
@ -25616,6 +25779,8 @@ void hashconfig_benchmark_defaults (hashcat_ctx_t *hashcat_ctx, salt_t *salt, vo
salt->scrypt_r = 1;
salt->scrypt_p = 8;
break;
case 16200: salt->salt_len = 16;
break;
}
// special esalt handling
@ -25887,6 +26052,8 @@ void hashconfig_benchmark_defaults (hashcat_ctx_t *hashcat_ctx, salt_t *salt, vo
break;
case 15900: salt->salt_iter = ROUNDS_DPAPIMK_V2;
break;
case 16200: salt->salt_iter = ROUNDS_APPLE_SECURE_NOTES - 1;
break;
}
}

Loading…
Cancel
Save