Remove iteration field
This commit is contained in:
11
ChangeLog
11
ChangeLog
@@ -1,3 +1,12 @@
|
||||
2013-10-10 Niibe Yutaka <gniibe@fsij.org>
|
||||
|
||||
* src/gnuk.h (S2K_ITER): Remove. It's determined at compile time.
|
||||
|
||||
* src/openpgp-do.c (proc_resetting_code, gpg_do_write_prvkey)
|
||||
(proc_key_import): Remove "iteration" field.
|
||||
|
||||
* src/openpgp.c (cmd_change_password): Likewise.
|
||||
|
||||
2013-10-10 Niibe Yutaka <gniibe@fsij.org>
|
||||
|
||||
* src/openpgp-do.c (gpg_do_write_prvkey): Two phase write to
|
||||
@@ -6,6 +15,8 @@
|
||||
* src/openpgp.c (cmd_change_password): Call gpg_do_write_simple
|
||||
after accessing the data object (it may cause garbage collection).
|
||||
|
||||
2013-10-10 Niibe Yutaka <gniibe@fsij.org>
|
||||
|
||||
* polarssl/library/bignum.c (mpi_montred): Constant time for
|
||||
carry propagation. Bug fix for carry propagation.
|
||||
(mpi_exp_mod): Bug fix. Shrink the size of RR as same as X.
|
||||
|
||||
13
src/gnuk.h
13
src/gnuk.h
@@ -183,21 +183,14 @@ struct prvkey_data {
|
||||
void s2k (const unsigned char *salt, size_t slen,
|
||||
const unsigned char *input, size_t ilen, unsigned char output[32]);
|
||||
|
||||
#define S2K_ITER 0x60 /* 65535 */
|
||||
|
||||
#define KEYSTRING_PASSLEN_SIZE 1
|
||||
#define KEYSTRING_SALT_SIZE SALT_SIZE
|
||||
#define KEYSTRING_ITER_SIZE 1
|
||||
#define KEYSTRING_MD_SIZE 32
|
||||
#define KEYSTRING_SIZE (KEYSTRING_PASSLEN_SIZE + KEYSTRING_SALT_SIZE \
|
||||
+ KEYSTRING_ITER_SIZE + KEYSTRING_MD_SIZE)
|
||||
#define KS_META_SIZE (KEYSTRING_PASSLEN_SIZE + KEYSTRING_SALT_SIZE \
|
||||
+ KEYSTRING_ITER_SIZE)
|
||||
+ KEYSTRING_MD_SIZE)
|
||||
#define KS_META_SIZE (KEYSTRING_PASSLEN_SIZE + KEYSTRING_SALT_SIZE)
|
||||
#define KS_GET_SALT(ks) (ks + KEYSTRING_PASSLEN_SIZE)
|
||||
#define KS_GET_ITER(ks) (ks + KEYSTRING_PASSLEN_SIZE \
|
||||
+ KEYSTRING_SALT_SIZE)
|
||||
#define KS_GET_KEYSTRING(ks) (ks + KEYSTRING_PASSLEN_SIZE \
|
||||
+ KEYSTRING_SALT_SIZE + KEYSTRING_ITER_SIZE)
|
||||
#define KS_GET_KEYSTRING(ks) (ks + KS_META_SIZE)
|
||||
|
||||
extern void gpg_do_clear_prvkey (enum kind_of_key kk);
|
||||
extern int gpg_do_load_prvkey (enum kind_of_key kk, int who, const uint8_t *keystring);
|
||||
|
||||
@@ -564,7 +564,6 @@ proc_resetting_code (const uint8_t *data, int len)
|
||||
newpw = data;
|
||||
new_ks0[0] = newpw_len;
|
||||
random_get_salt (salt);
|
||||
new_ks0[KEYSTRING_PASSLEN_SIZE+KEYSTRING_SALT_SIZE] = S2K_ITER;
|
||||
s2k (salt, SALT_SIZE, newpw, newpw_len, new_ks);
|
||||
r = gpg_change_keystring (admin_authorized, old_ks, BY_RESETCODE, new_ks);
|
||||
if (r <= -2)
|
||||
@@ -898,14 +897,12 @@ gpg_do_write_prvkey (enum kind_of_key kk, const uint8_t *key_data, int key_len,
|
||||
{
|
||||
ks_info0[0] = ks_pw1_len & PW_LEN_MASK;
|
||||
memcpy (KS_GET_SALT (ks_info0), KS_GET_SALT (ks_pw1), SALT_SIZE);
|
||||
ks_info0[KEYSTRING_PASSLEN_SIZE+KEYSTRING_SALT_SIZE] = S2K_ITER;
|
||||
}
|
||||
|
||||
if ((ks_rc_len & PW_LEN_KEYSTRING_BIT))
|
||||
{
|
||||
ks_info1[0] = ks_rc_len & PW_LEN_MASK;
|
||||
memcpy (KS_GET_SALT (ks_info1), KS_GET_SALT (ks_rc), SALT_SIZE);
|
||||
ks_info1[KEYSTRING_PASSLEN_SIZE+KEYSTRING_SALT_SIZE] = S2K_ITER;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -928,7 +925,6 @@ gpg_do_write_prvkey (enum kind_of_key kk, const uint8_t *key_data, int key_len,
|
||||
ks_info0[0] = ks_admin[0] & PW_LEN_MASK;
|
||||
memcpy (KS_GET_SALT (ks_info0), KS_GET_SALT (ks_admin),
|
||||
SALT_SIZE);
|
||||
ks_info0[KEYSTRING_PASSLEN_SIZE+KEYSTRING_SALT_SIZE] = S2K_ITER;
|
||||
gpg_do_write_simple (NR_DO_KEYSTRING_PW3, ks_info0, KS_META_SIZE);
|
||||
}
|
||||
else
|
||||
@@ -1069,7 +1065,6 @@ proc_key_import (const uint8_t *data, int len)
|
||||
|
||||
ks0[0] = ks_pw3[0] | PW_LEN_KEYSTRING_BIT;
|
||||
memcpy (KS_GET_SALT (ks0), KS_GET_SALT (ks_pw3), SALT_SIZE);
|
||||
ks0[KEYSTRING_PASSLEN_SIZE+KEYSTRING_SALT_SIZE] = S2K_ITER;
|
||||
memcpy (KS_GET_KEYSTRING (ks0),
|
||||
keystring_md_pw3, KEYSTRING_MD_SIZE);
|
||||
gpg_do_write_simple (NR_DO_KEYSTRING_PW3, ks0, KEYSTRING_SIZE);
|
||||
|
||||
@@ -368,7 +368,6 @@ cmd_change_password (void)
|
||||
s2k (salt, salt_len, pw, pw_len, old_ks);
|
||||
s2k (new_salt, newsalt_len, newpw, newpw_len, new_ks);
|
||||
new_ks0[0] = newpw_len;
|
||||
*KS_GET_ITER (new_ks0) = S2K_ITER;
|
||||
|
||||
r = gpg_change_keystring (who_old, old_ks, who, new_ks);
|
||||
if (r <= -2)
|
||||
@@ -512,7 +511,6 @@ cmd_reset_user_password (void)
|
||||
s2k (salt, salt_len, pw, pw_len, old_ks);
|
||||
s2k (new_salt, SALT_SIZE, newpw, newpw_len, new_ks);
|
||||
new_ks0[0] = newpw_len;
|
||||
*KS_GET_ITER (new_ks0) = S2K_ITER;
|
||||
r = gpg_change_keystring (BY_RESETCODE, old_ks, BY_USER, new_ks);
|
||||
if (r <= -2)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user