Fixed length check for raw PBKDF2 modules

pull/1906/head
jsteube 5 years ago
parent af634750f2
commit e571b890e9

@ -1326,25 +1326,25 @@ typedef struct tc
typedef struct pbkdf2_md5
{
u32 salt_buf[16];
u32 salt_buf[64];
} pbkdf2_md5_t;
typedef struct pbkdf2_sha1
{
u32 salt_buf[16];
u32 salt_buf[64];
} pbkdf2_sha1_t;
typedef struct pbkdf2_sha256
{
u32 salt_buf[16];
u32 salt_buf[64];
} pbkdf2_sha256_t;
typedef struct pbkdf2_sha512
{
u32 salt_buf[32];
u32 salt_buf[64];
} pbkdf2_sha512_t;

@ -42,6 +42,12 @@ 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; }
typedef struct pbkdf2_sha512
{
u32 salt_buf[64];
} pbkdf2_sha512_t;
typedef struct pbkdf2_sha512_tmp
{
u64 ipad[8];
@ -52,12 +58,6 @@ typedef struct pbkdf2_sha512_tmp
} pbkdf2_sha512_tmp_t;
typedef struct pbkdf2_sha512
{
u32 salt_buf[32];
} pbkdf2_sha512_t;
static const char *SIGNATURE_SHA512MACOS = "$ml$";
u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)

@ -44,7 +44,7 @@ const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig,
typedef struct pbkdf2_sha512
{
u32 salt_buf[32];
u32 salt_buf[64];
} pbkdf2_sha512_t;

@ -43,7 +43,7 @@ const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig,
typedef struct pbkdf2_sha256
{
u32 salt_buf[16];
u32 salt_buf[64];
} pbkdf2_sha256_t;

@ -43,7 +43,7 @@ const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig,
typedef struct pbkdf2_sha256
{
u32 salt_buf[16];
u32 salt_buf[64];
} pbkdf2_sha256_t;
@ -142,10 +142,11 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
memcpy (salt_buf_ptr, salt_pos, salt_len);
salt->salt_len = salt_len;
salt->salt_len = salt_len;
salt_buf_ptr[salt_len + 3] = 0x01;
salt_buf_ptr[salt_len + 4] = 0x80;
//leftover from prehistoric times?
//salt_buf_ptr[salt_len + 3] = 0x01;
//salt_buf_ptr[salt_len + 4] = 0x80;
// add some stuff to normal salt to make sorted happy

@ -45,7 +45,7 @@ const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig,
typedef struct pbkdf2_sha256
{
u32 salt_buf[16];
u32 salt_buf[64];
} pbkdf2_sha256_t;
@ -111,8 +111,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
| TOKEN_ATTR_VERIFY_DIGIT;
token.sep[2] = ':';
token.len_min[2] = SALT_MIN;
token.len_max[2] = SALT_MAX;
token.len_min[2] = (SALT_MIN * 8) / 6;
token.len_max[2] = (SALT_MAX * 8) / 6;
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_BASE64A;

@ -45,7 +45,7 @@ const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig,
typedef struct pbkdf2_md5
{
u32 salt_buf[16];
u32 salt_buf[64];
} pbkdf2_md5_t;
@ -111,8 +111,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
| TOKEN_ATTR_VERIFY_DIGIT;
token.sep[2] = ':';
token.len_min[2] = SALT_MIN;
token.len_max[2] = SALT_MAX;
token.len_min[2] = (SALT_MIN * 8) / 6;
token.len_max[2] = (SALT_MAX * 8) / 6;
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_BASE64A;

@ -55,7 +55,7 @@ typedef struct pbkdf2_sha1_tmp
typedef struct pbkdf2_sha1
{
u32 salt_buf[16];
u32 salt_buf[64];
} pbkdf2_sha1_t;
@ -111,8 +111,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
| TOKEN_ATTR_VERIFY_DIGIT;
token.sep[2] = ':';
token.len_min[2] = SALT_MIN;
token.len_max[2] = SALT_MAX;
token.len_min[2] = (SALT_MIN * 8) / 6;
token.len_max[2] = (SALT_MAX * 8) / 6;
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_BASE64A;

@ -54,7 +54,7 @@ typedef struct pbkdf2_sha1_tmp
typedef struct pbkdf2_sha1
{
u32 salt_buf[16];
u32 salt_buf[64];
} pbkdf2_sha1_t;

@ -46,7 +46,7 @@ const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig,
typedef struct pbkdf2_sha512
{
u32 salt_buf[32];
u32 salt_buf[64];
} pbkdf2_sha512_t;
@ -112,8 +112,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
| TOKEN_ATTR_VERIFY_DIGIT;
token.sep[2] = ':';
token.len_min[2] = SALT_MIN;
token.len_max[2] = SALT_MAX;
token.len_min[2] = (SALT_MIN * 8) / 6;
token.len_max[2] = (SALT_MAX * 8) / 6;
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_BASE64A;

@ -11,7 +11,7 @@ use warnings;
use MIME::Base64 qw (encode_base64 decode_base64);
use Crypt::PBKDF2;
sub module_constraints { [[0, 255], [0, 64], [0, 55], [0, 64], [-1, -1]] }
sub module_constraints { [[0, 255], [0, 255], [-1, -1], [-1, -1], [-1, -1]] }
sub module_generate_hash
{

Loading…
Cancel
Save