From 681d754043003064ca6829019b1f6369360e8477 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Fri, 23 May 2025 16:59:38 +0900 Subject: gpg,agent: Clean up around using ECC KEM. * common/util.h (gnupg_ecc_kem_kdf): Change the last two args. * common/kem.c (gnupg_ecc_kem_kdf): The last arguments are KDF_PARAMS and its length. * agent/pkdecrypt.c (composite_pgp_kem_decrypt): Follow the change. * g10/pkglue.c (do_encrypt_kem): Follow the change. * g10/ecdh.c (extract_secret_x, derive_kek): Remove. (gnupg_ecc_6637_kdf): Remove. (ecc_build_kdf_params): Rename from build_kdf_params, changing arguments. * g10/pkglue.c (do_encrypt_ecdh): Refactor by ecc_build_kdf_params and gnupg_ecc_kem_kdf. * g10/pkglue.h (pk_ecdh_decrypt, gnupg_ecc_6637_kdf): Remove. (ecc_build_kdf_params): New. * g10/pubkey-enc.c (ecdh_sexp_build): Use ecc_build_kdf_params. -- GnuPG-bug-id: 7649 Signed-off-by: NIIBE Yutaka --- common/kem.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'common/kem.c') diff --git a/common/kem.c b/common/kem.c index 6d1e2e442..65e533a83 100644 --- a/common/kem.c +++ b/common/kem.c @@ -156,7 +156,7 @@ gnupg_ecc_kem_kdf (void *kek, size_t kek_len, int hashalgo, const void *ecdh, size_t ecdh_len, const void *ecc_ct, size_t ecc_ct_len, const void *ecc_pk, size_t ecc_pk_len, - gcry_buffer_t *kdf_params) + unsigned char *kdf_params, size_t kdf_params_len) { if (kdf_params) { @@ -168,8 +168,7 @@ gnupg_ecc_kem_kdf (void *kek, size_t kek_len, param[0] = kek_len; err = gcry_kdf_open (&hd, GCRY_KDF_ONESTEP_KDF, hashalgo, param, 1, ecdh, ecdh_len, NULL, 0, NULL, 0, - (char *)kdf_params->data+kdf_params->off, - kdf_params->len); + kdf_params, kdf_params_len); if (!err) { gcry_kdf_compute (hd, NULL); -- cgit v1.2.3