aboutsummaryrefslogtreecommitdiffstats
path: root/agent/command.c
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 /agent/command.c
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 'agent/command.c')
-rw-r--r--agent/command.c14
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);