diff options
| author | NIIBE Yutaka <[email protected]> | 2025-10-07 01:59:48 +0000 |
|---|---|---|
| committer | NIIBE Yutaka <[email protected]> | 2025-10-07 01:59:48 +0000 |
| commit | 06f993dc0eceee0f6ec99b9417d4368eee203e6d (patch) | |
| tree | 829c77502dfc0566a0f2189d312639cf8e95c663 /common/util.h | |
| parent | dirmngr: Fix wrong diagnostic "failed to create alarm thread". (diff) | |
| download | gnupg-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.h | 17 |
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, |
