aboutsummaryrefslogtreecommitdiffstats
path: root/common/util.h
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2025-10-07 01:59:48 +0000
committerNIIBE Yutaka <[email protected]>2025-10-07 01:59:48 +0000
commit06f993dc0eceee0f6ec99b9417d4368eee203e6d (patch)
tree829c77502dfc0566a0f2189d312639cf8e95c663 /common/util.h
parentdirmngr: Fix wrong diagnostic "failed to create alarm thread". (diff)
downloadgnupg-06f993dc0eceee0f6ec99b9417d4368eee203e6d.tar.gz
gnupg-06f993dc0eceee0f6ec99b9417d4368eee203e6d.zip
agent,common,gpg: Clean up for S/MIME decryption with KEM API.
* agent/agent.h (agent_kem_decrypt): Remove OPTION argument. * agent/command.c (cmd_pkdecrypt): No option is needed. * agent/pkdecrypt.c (composite_pgp_kem_decrypt): Use gnupg_ecc_kem_simple_kdf. (ecc_kem_decrypt): Support the S/MIME case too. Follow the change of gnupg_ecc_kem_kdf. (agent_kem_decrypt): Remove OPTION argument. Also support the S/MIME case. * common/kem.c (gnupg_ecc_kem_kdf): Support the S/MIME case too. Don't support simple ECC part for combined KEM. (gnupg_ecc_kem_simple_kdf): New. * common/util.h (gnupg_ecc_kem_kdf): Support the S/MIME case too. (gnupg_ecc_kem_simple_kdf): New. * g10/pkglue.c (do_encrypt_kem): Use gnupg_ecc_kem_simple_kdf. Use gnupg_ecc_kem_kdf with IS_GPG=1. -- GnuPG-bug-id: 7811 Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'common/util.h')
-rw-r--r--common/util.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/common/util.h b/common/util.h
index 3fb205685..8f54ffaa5 100644
--- a/common/util.h
+++ b/common/util.h
@@ -315,13 +315,22 @@ char *gnupg_get_help_string (const char *key, int only_current_locale);
const char *gnupg_messages_locale_name (void);
/*-- kem.c --*/
-gpg_error_t gnupg_ecc_kem_kdf (void *kek, size_t kek_len,
+gpg_error_t
+gpgsm_ecc_kem_kdf (void *kek, size_t kek_len,
+ int hashalgo, const void *ecdh, size_t ecdh_len,
+ const unsigned char *wrap, size_t wrap_len,
+ const unsigned char *ukm, size_t ukm_len);
+
+gpg_error_t gnupg_ecc_kem_kdf (void *kek, size_t kek_len, int is_pgp,
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,
- unsigned char *kdf_params,
+ const unsigned char *kdf_params,
size_t kdf_params_len);
+gpg_error_t gnupg_ecc_kem_simple_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);
+
gpg_error_t gnupg_kem_combiner (void *kek, size_t kek_len,
const void *ecc_ss, size_t ecc_ss_len,
const void *ecc_ct, size_t ecc_ct_len,