#define MAX_DICTSTAT 10000
-#define NUM_DEFAULT_BENCHMARK_ALGORITHMS 128
+#define NUM_DEFAULT_BENCHMARK_ALGORITHMS 129
#define global_free(attr) \
{ \
6231,
6241,
8800,
+ 12900,
12200,
9700,
9710,
" Y = 2 = XTS 1024 bit (Ciphers: AES or Serpent or Twofish or AES-Twofish or Serpent-AES or Twofish-Serpent)",
" Y = 3 = XTS 1536 bit (Ciphers: All)",
" 8800 = Android FDE < v4.3",
+ " 12900 = Android FDE (Samsung DEK)",
" 12200 = eCryptfs",
"",
"[[ Documents ]]",
return (-1);
}
- if (hash_mode_chgd && hash_mode > 12800) // just added to remove compiler warnings for hash_mode_chgd
+ if (hash_mode_chgd && hash_mode > 12900) // just added to remove compiler warnings for hash_mode_chgd
{
log_error ("ERROR: Invalid hash-type specified");
dgst_pos3 = 3;
break;
+ case 12900: hash_type = HASH_TYPE_PBKDF2_SHA256;
+ salt_type = SALT_TYPE_EMBEDDED;
+ attack_exec = ATTACK_EXEC_OUTSIDE_KERNEL;
+ opts_type = OPTS_TYPE_PT_GENERATE_LE;
+ kern_type = KERN_TYPE_ANDROIDFDE_SAMSUNG;
+ dgst_size = DGST_SIZE_4_8;
+ parse_func = androidfde_samsung_parse_hash;
+ sort_by_digest = sort_by_digest_4_8;
+ opti_type = OPTI_TYPE_ZERO_BYTE;
+ dgst_pos0 = 0;
+ dgst_pos1 = 1;
+ dgst_pos2 = 2;
+ dgst_pos3 = 3;
+ break;
+
default: usage_mini_print (PROGNAME); return (-1);
}
break;
case 12800: hashes_buf[0].salt->salt_iter = ROUNDS_MS_DRSR - 1;
break;
+ case 12900: hashes_buf[0].salt->salt_iter = ROUNDS_ANDROIDFDE_SAMSUNG - 1;
+ break;
}
// set special tuning for benchmark-mode 1
case 12800: kernel_loops = ROUNDS_MS_DRSR;
kernel_accel = 512;
break;
+ case 12900: kernel_loops = ROUNDS_ANDROIDFDE_SAMSUNG;
+ kernel_accel = 8;
+ break;
}
// some algorithm collide too fast, make that impossible
case 12500: size_tmps = kernel_blocks * sizeof (rar3_tmp_t); break;
case 12700: size_tmps = kernel_blocks * sizeof (mywallet_tmp_t); break;
case 12800: size_tmps = kernel_blocks * sizeof (pbkdf2_sha256_tmp_t); break;
+ case 12900: size_tmps = kernel_blocks * sizeof (pbkdf2_sha256_tmp_t); break;
};
uint size_hooks = 4;