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 /agent/command.c | |
| 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 'agent/command.c')
| -rw-r--r-- | agent/command.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/agent/command.c b/agent/command.c index dcb758e37..d1ff8e27c 100644 --- a/agent/command.c +++ b/agent/command.c @@ -1080,8 +1080,6 @@ cmd_pkdecrypt (assuan_context_t ctx, char *line) size_t valuelen; membuf_t outbuf; int padding = -1; - unsigned char *option = NULL; - size_t optionlen = 0; const char *p; int kemid = -1; @@ -1107,10 +1105,7 @@ cmd_pkdecrypt (assuan_context_t ctx, char *line) rc = print_assuan_status (ctx, "INQUIRE_MAXLEN", "%u", MAXLEN_CIPHERTEXT); if (!rc) rc = assuan_inquire (ctx, "CIPHERTEXT", - &value, &valuelen, MAXLEN_CIPHERTEXT); - if (!rc && kemid > KEM_PGP) - rc = assuan_inquire (ctx, "OPTION", - &option, &optionlen, MAXLEN_CIPHERTEXT); + &value, &valuelen, MAXLEN_CIPHERTEXT); if (rc) return rc; @@ -1120,11 +1115,8 @@ cmd_pkdecrypt (assuan_context_t ctx, char *line) rc = agent_pkdecrypt (ctrl, ctrl->server_local->keydesc, value, valuelen, &outbuf, &padding); else - { - rc = agent_kem_decrypt (ctrl, ctrl->server_local->keydesc, kemid, - value, valuelen, option, optionlen, &outbuf); - xfree (option); - } + rc = agent_kem_decrypt (ctrl, ctrl->server_local->keydesc, kemid, + value, valuelen, &outbuf); xfree (value); if (rc) clear_outbuf (&outbuf); |
