mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
gpg: Prepare to use the fingerprint as fixed-info for Kyber.
* g10/pubkey-enc.c (get_it): Use algo and fingerprint for the fixed-info. Keep a testing mode. * g10/options.h (COMPAT_T7014_OLD): New. * g10/gpg.c (compatibility_flags): Add "t71014-old" flag. -- GnuPG-bug-id: 6815
This commit is contained in:
parent
6f94fe01a9
commit
b48476bbef
@ -1034,6 +1034,7 @@ static struct debug_flags_s debug_flags [] =
|
|||||||
static struct compatibility_flags_s compatibility_flags [] =
|
static struct compatibility_flags_s compatibility_flags [] =
|
||||||
{
|
{
|
||||||
{ COMPAT_PARALLELIZED, "parallelized" },
|
{ COMPAT_PARALLELIZED, "parallelized" },
|
||||||
|
{ COMPAT_T7014_OLD, "t7014-old" },
|
||||||
{ 0, NULL }
|
{ 0, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -378,9 +378,8 @@ EXTERN_UNLESS_MAIN_MODULE int memory_debug_mode;
|
|||||||
EXTERN_UNLESS_MAIN_MODULE int memory_stat_debug_mode;
|
EXTERN_UNLESS_MAIN_MODULE int memory_stat_debug_mode;
|
||||||
|
|
||||||
/* Compatibility flags */
|
/* Compatibility flags */
|
||||||
#define COMPAT_PARALLELIZED 1
|
#define COMPAT_PARALLELIZED 1 /* Use threaded hashing for signatures. */
|
||||||
|
#define COMPAT_T7014_OLD 2 /* Use initial T7014 test data. */
|
||||||
/* #define COMPAT_FOO 2 */
|
|
||||||
|
|
||||||
|
|
||||||
/* Compliance test macors. */
|
/* Compliance test macors. */
|
||||||
|
@ -240,15 +240,29 @@ get_it (ctrl_t ctrl,
|
|||||||
}
|
}
|
||||||
else if (sk->pubkey_algo == PUBKEY_ALGO_KYBER)
|
else if (sk->pubkey_algo == PUBKEY_ALGO_KYBER)
|
||||||
{
|
{
|
||||||
log_debug ("seskey_algo: %d\n", enc->seskey_algo);
|
char fixedinfo[1+MAX_FINGERPRINT_LEN];
|
||||||
|
int fixedlen;
|
||||||
|
|
||||||
|
if ((opt.compat_flags & COMPAT_T7014_OLD))
|
||||||
|
{
|
||||||
|
/* Temporary use for tests with original test vectors. */
|
||||||
|
fixedinfo[0] = 0x69;
|
||||||
|
fixedlen = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fixedinfo[0] = enc->seskey_algo;
|
||||||
|
v5_fingerprint_from_pk (sk, fixedinfo+1, NULL);
|
||||||
|
fixedlen = 33;
|
||||||
|
}
|
||||||
|
|
||||||
if (!enc->data[0] || !enc->data[1] || !enc->data[2])
|
if (!enc->data[0] || !enc->data[1] || !enc->data[2])
|
||||||
err = gpg_error (GPG_ERR_BAD_MPI);
|
err = gpg_error (GPG_ERR_BAD_MPI);
|
||||||
else
|
else
|
||||||
err = gcry_sexp_build (&s_data, NULL,
|
err = gcry_sexp_build (&s_data, NULL,
|
||||||
"(enc-val(pqc(e%m)(k%m)(s%m)(c%d)(fixed-info%s)))",
|
"(enc-val(pqc(e%m)(k%m)(s%m)(c%d)(fixed-info%b)))",
|
||||||
enc->data[0], enc->data[1], enc->data[2],
|
enc->data[0], enc->data[1], enc->data[2],
|
||||||
enc->seskey_algo,
|
enc->seskey_algo, fixedlen, fixedinfo);
|
||||||
"\x69");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
err = gpg_error (GPG_ERR_BUG);
|
err = gpg_error (GPG_ERR_BUG);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user