aboutsummaryrefslogtreecommitdiffstats
path: root/agent
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2025-05-23 07:59:38 +0000
committerNIIBE Yutaka <[email protected]>2025-05-23 07:59:38 +0000
commit681d754043003064ca6829019b1f6369360e8477 (patch)
treedb844041828dacadc74124a8ca45d767c8284c8a /agent
parentcommon: Fix argument name of gnupg_ecc_kem_kdf. (diff)
downloadgnupg-681d754043003064ca6829019b1f6369360e8477.tar.gz
gnupg-681d754043003064ca6829019b1f6369360e8477.zip
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 <[email protected]>
Diffstat (limited to 'agent')
-rw-r--r--agent/pkdecrypt.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/agent/pkdecrypt.c b/agent/pkdecrypt.c
index 90d84ee3f..d712e7f28 100644
--- a/agent/pkdecrypt.c
+++ b/agent/pkdecrypt.c
@@ -648,7 +648,7 @@ composite_pgp_kem_decrypt (ctrl_t ctrl, const char *desc_text,
ecc_shared_len = gcry_md_get_algo_dlen (ecc_hashalgo);
err = gnupg_ecc_kem_kdf (ecc_ss, ecc_shared_len, ecc_hashalgo,
ecc_ecdh, ecc_point_len, ecc_ct, ecc_point_len,
- ecc_pk, ecc_point_len, NULL);
+ ecc_pk, ecc_point_len, NULL, 0);
if (err)
{
if (opt.verbose)
@@ -891,7 +891,9 @@ ecc_kem_decrypt (ctrl_t ctrl, const char *desc_text,
x-component from the point. */
ecc_ecdh + 1 : ecc_ecdh,
ecc->scalar_len, ecc_ct, ecc_point_len,
- ecc_pk, ecc_point_len, &kdf_params);
+ ecc_pk, ecc_point_len,
+ (char *)kdf_params.data+kdf_params.off,
+ kdf_params.len);
if (err)
{
if (opt.verbose)