mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
common:kem: Factor out a function to retrieve ECC parameters.
* common/util.h (struct gnupg_ecc_params, gnupg_get_ecc_params): New. (ECC_SCALAR_LEN_MAX, ECC_POINT_LEN_MAX, ECC_HASH_LEN_MAX): New. * agent/pkdecrypt.c (ecc_extract_pk_from_key, ecc_extract_sk_from_key): Follow the change of gnupg_get_ecc_params. (ecc_raw_kem, ecc_pgp_kem_decap, composite_pgp_kem_decrypt): Likewise. (ecc_kem_decrypt): Likewise. (get_ecc_params): Move to... * common/kem.c (gnupg_get_ecc_params): ... here * g10/pkglue.c (ECC_POINT_LEN_MAX, ECC_HASH_LEN_MAX): Remove duplicates. -- GnuPG-bug-id: 7649 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
a354018bf3
commit
5e623b71d5
4 changed files with 104 additions and 112 deletions
|
@ -324,6 +324,27 @@ gpg_error_t gnupg_kem_combiner (void *kek, size_t kek_len,
|
|||
const void *mlkem_ct, size_t mlkem_ct_len,
|
||||
const void *fixedinfo, size_t fixedinfo_len);
|
||||
|
||||
/* ECC parameters for KEM encryption/decryption. */
|
||||
struct gnupg_ecc_params
|
||||
{
|
||||
const char *curve; /* Canonical name of the curve. */
|
||||
size_t pubkey_len; /* Pubkey length in the SEXP representation. */
|
||||
size_t scalar_len;
|
||||
size_t point_len;
|
||||
int hash_algo; /* Hash algo when it's used for composite KEM. */
|
||||
int kem_algo;
|
||||
int scalar_reverse; /* Byte-oder is reverse. */
|
||||
int may_have_prefix; /* Point representation may have prefix. */
|
||||
};
|
||||
|
||||
const struct gnupg_ecc_params *gnupg_get_ecc_params (const char *curve);
|
||||
|
||||
/* Maximum buffer sizes required for ECC KEM. */
|
||||
#define ECC_SCALAR_LEN_MAX 66
|
||||
#define ECC_POINT_LEN_MAX (1+2*ECC_SCALAR_LEN_MAX)
|
||||
#define ECC_HASH_LEN_MAX 64
|
||||
|
||||
|
||||
/*-- miscellaneous.c --*/
|
||||
|
||||
/* This function is called at startup to tell libgcrypt to use our own
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue