mirror of
https://github.com/hashcat/hashcat.git
synced 2024-11-22 08:08:10 +00:00
TrueCrypt modules code cleanup
This commit is contained in:
parent
d15793a8b8
commit
f7ba563a28
@ -17,9 +17,11 @@
|
||||
#include M2S(INCLUDE_PATH/inc_cipher_serpent.cl)
|
||||
#endif
|
||||
|
||||
#define TC_DATA_LEN (448)
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
|
@ -17,9 +17,11 @@
|
||||
#include M2S(INCLUDE_PATH/inc_cipher_serpent.cl)
|
||||
#endif
|
||||
|
||||
#define TC_DATA_LEN (448)
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
|
@ -17,9 +17,11 @@
|
||||
#include M2S(INCLUDE_PATH/inc_cipher_serpent.cl)
|
||||
#endif
|
||||
|
||||
#define TC_DATA_LEN (448)
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
|
@ -17,9 +17,11 @@
|
||||
#include M2S(INCLUDE_PATH/inc_cipher_serpent.cl)
|
||||
#endif
|
||||
|
||||
#define TC_DATA_LEN (448)
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
|
@ -17,9 +17,11 @@
|
||||
#include M2S(INCLUDE_PATH/inc_cipher_serpent.cl)
|
||||
#endif
|
||||
|
||||
#define TC_DATA_LEN (448)
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
|
@ -17,9 +17,11 @@
|
||||
#include M2S(INCLUDE_PATH/inc_cipher_serpent.cl)
|
||||
#endif
|
||||
|
||||
#define TC_DATA_LEN (448)
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
|
@ -17,9 +17,11 @@
|
||||
#include M2S(INCLUDE_PATH/inc_cipher_serpent.cl)
|
||||
#endif
|
||||
|
||||
#define TC_DATA_LEN (448)
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
|
@ -17,9 +17,11 @@
|
||||
#include M2S(INCLUDE_PATH/inc_cipher_serpent.cl)
|
||||
#endif
|
||||
|
||||
#define TC_DATA_LEN (448)
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
|
@ -17,9 +17,11 @@
|
||||
#include M2S(INCLUDE_PATH/inc_cipher_serpent.cl)
|
||||
#endif
|
||||
|
||||
#define TC_DATA_LEN (448)
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
|
@ -46,9 +46,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -62,7 +63,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -130,20 +131,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -247,7 +239,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -46,9 +46,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -62,7 +63,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -130,20 +131,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -247,7 +239,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -46,9 +46,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -62,7 +63,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -130,20 +131,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -247,7 +239,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -48,9 +48,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc64_tmp
|
||||
{
|
||||
@ -64,7 +65,7 @@ typedef struct tc64_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -132,20 +133,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -251,7 +243,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -48,9 +48,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc64_tmp
|
||||
{
|
||||
@ -64,7 +65,7 @@ typedef struct tc64_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -132,20 +133,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -251,7 +243,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -48,9 +48,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc64_tmp
|
||||
{
|
||||
@ -64,7 +65,7 @@ typedef struct tc64_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -132,20 +133,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -251,7 +243,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -47,9 +47,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -63,7 +64,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -140,20 +141,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -259,7 +251,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -47,9 +47,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -63,7 +64,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -140,20 +141,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -259,7 +251,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -47,9 +47,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -63,7 +64,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -136,20 +137,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -255,7 +247,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -47,9 +47,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -63,7 +64,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -143,20 +144,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -262,7 +254,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -47,9 +47,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -63,7 +64,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -143,20 +144,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -262,7 +254,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -47,9 +47,10 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_HEADER_LEN 512
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_HEADER_LEN ( 512)
|
||||
#define TC_HEADER_HEX_LEN (TC_HEADER_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -63,7 +64,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -143,20 +144,11 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
|
||||
int module_hash_init_selftest (MAYBE_UNUSED const hashconfig_t *hashconfig, hash_t *hash)
|
||||
{
|
||||
const size_t st_hash_len = strlen (hashconfig->st_hash);
|
||||
char header[TC_HEADER_LEN + 1] = { 0 };
|
||||
|
||||
char *tmpdata = (char *) hcmalloc (st_hash_len / 2);
|
||||
hex_decode ((const u8 *) hashconfig->st_hash, TC_HEADER_HEX_LEN, (u8 *) header);
|
||||
|
||||
for (size_t i = 0, j = 0; j < st_hash_len; i += 1, j += 2)
|
||||
{
|
||||
const u8 c = hex_to_u8 ((const u8 *) hashconfig->st_hash + j);
|
||||
|
||||
tmpdata[i] = c;
|
||||
}
|
||||
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, tmpdata, st_hash_len / 2);
|
||||
|
||||
hcfree (tmpdata);
|
||||
const int parser_status = module_hash_decode (hashconfig, hash->digest, hash->salt, hash->esalt, hash->hook_salt, hash->hash_info, header, TC_HEADER_LEN);
|
||||
|
||||
return parser_status;
|
||||
}
|
||||
@ -262,7 +254,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
|
@ -46,8 +46,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -61,7 +64,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -132,14 +135,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -151,12 +154,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -166,10 +164,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -183,7 +178,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -237,25 +232,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -46,8 +46,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -61,7 +64,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -132,14 +135,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -151,12 +154,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -166,10 +164,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -183,7 +178,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -237,25 +232,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -46,8 +46,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -61,7 +64,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -132,14 +135,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -151,12 +154,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -166,10 +164,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -183,7 +178,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -237,25 +232,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -48,8 +48,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc64_tmp
|
||||
{
|
||||
@ -63,7 +66,7 @@ typedef struct tc64_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -134,14 +137,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -153,12 +156,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -168,10 +166,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -185,7 +180,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -239,25 +234,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -48,8 +48,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc64_tmp
|
||||
{
|
||||
@ -63,7 +66,7 @@ typedef struct tc64_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -134,14 +137,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -153,12 +156,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -168,10 +166,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -185,7 +180,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -239,25 +234,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -48,8 +48,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc64_tmp
|
||||
{
|
||||
@ -63,7 +66,7 @@ typedef struct tc64_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -134,14 +137,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -153,12 +156,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -168,10 +166,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -185,7 +180,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -239,25 +234,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -47,8 +47,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -62,7 +65,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -142,14 +145,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -161,12 +164,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -176,10 +174,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -193,7 +188,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -247,25 +242,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -47,8 +47,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -62,7 +65,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -142,14 +145,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -161,12 +164,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -176,10 +174,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -193,7 +188,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -247,25 +242,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -47,8 +47,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -62,7 +65,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -138,14 +141,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -157,12 +160,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -172,10 +170,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -189,7 +184,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -243,25 +238,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -47,8 +47,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -62,7 +65,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -145,14 +148,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -164,12 +167,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -179,10 +177,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -196,7 +191,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -250,25 +245,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -47,8 +47,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -62,7 +65,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -145,14 +148,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -164,12 +167,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -179,10 +177,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -196,7 +191,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -250,25 +245,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
@ -47,8 +47,11 @@ u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; }
|
||||
const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; }
|
||||
|
||||
#define TC_SALT_LEN 64
|
||||
#define TC_DATA_LEN 448
|
||||
#define TC_SALT_LEN ( 64)
|
||||
#define TC_SALT_HEX_LEN (TC_SALT_LEN * 2)
|
||||
|
||||
#define TC_DATA_LEN ( 448)
|
||||
#define TC_DATA_HEX_LEN (TC_DATA_LEN * 2)
|
||||
|
||||
typedef struct tc_tmp
|
||||
{
|
||||
@ -62,7 +65,7 @@ typedef struct tc_tmp
|
||||
|
||||
typedef struct tc
|
||||
{
|
||||
u32 data_buf[112];
|
||||
u32 data_buf[TC_DATA_LEN / 4];
|
||||
u32 keyfile_buf16[16];
|
||||
u32 keyfile_buf32[32];
|
||||
u32 keyfile_enabled;
|
||||
@ -145,14 +148,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
| TOKEN_ATTR_VERIFY_SIGNATURE;
|
||||
|
||||
token.sep[1] = '$';
|
||||
token.len_min[1] = 128;
|
||||
token.len_max[1] = 128;
|
||||
token.len_min[1] = TC_SALT_HEX_LEN;
|
||||
token.len_max[1] = TC_SALT_HEX_LEN;
|
||||
token.attr[1] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
token.sep[2] = '$';
|
||||
token.len_min[2] = 896;
|
||||
token.len_max[2] = 896;
|
||||
token.len_min[2] = TC_DATA_HEX_LEN;
|
||||
token.len_max[2] = TC_DATA_HEX_LEN;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
|
||||
| TOKEN_ATTR_VERIFY_HEX;
|
||||
|
||||
@ -164,12 +167,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *salt_pos = token.buf[1];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
salt->salt_buf[i] = hex_to_u32 (salt_pos + j);
|
||||
}
|
||||
|
||||
salt->salt_len = TC_SALT_LEN;
|
||||
salt->salt_len = hex_decode (salt_pos, TC_SALT_HEX_LEN, (u8 *) salt->salt_buf);
|
||||
|
||||
// iter
|
||||
|
||||
@ -179,10 +177,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
const u8 *data_pos = token.buf[2];
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
tc->data_buf[i] = hex_to_u32 (data_pos + j);
|
||||
}
|
||||
hex_decode (data_pos, TC_DATA_HEX_LEN, (u8 *) tc->data_buf);
|
||||
|
||||
// entropy
|
||||
|
||||
@ -196,7 +191,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// fake digest
|
||||
|
||||
memcpy (digest, tc->data_buf, 112);
|
||||
memcpy (digest, tc->data_buf, TC_DATA_LEN / 4);
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -250,25 +245,15 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
// salt
|
||||
|
||||
#define TC_SALT_HEX_LEN TC_SALT_LEN * 2 + 1
|
||||
char salt_buf[TC_SALT_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char salt_buf[TC_SALT_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_SALT_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (salt_buf + j, TC_SALT_HEX_LEN - j, "%08x", byte_swap_32 (salt->salt_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) salt->salt_buf, TC_SALT_LEN, (u8 *) salt_buf);
|
||||
|
||||
// data
|
||||
|
||||
#define TC_DATA_HEX_LEN TC_DATA_LEN * 2 + 1
|
||||
char data_buf[TC_DATA_HEX_LEN + 1] = { 0 };
|
||||
|
||||
char data_buf[TC_DATA_HEX_LEN] = { 0 };
|
||||
|
||||
for (u32 i = 0, j = 0; i < TC_DATA_LEN / 4; i += 1, j += 8)
|
||||
{
|
||||
snprintf (data_buf + j, TC_DATA_HEX_LEN - j, "%08x", byte_swap_32 (tc->data_buf[i]));
|
||||
}
|
||||
hex_encode ((const u8 *) tc->data_buf, TC_DATA_LEN, (u8 *) data_buf);
|
||||
|
||||
// output
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user