aboutsummaryrefslogtreecommitdiffstats
path: root/agent/agent.h
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2024-04-05 05:17:25 +0000
committerNIIBE Yutaka <[email protected]>2024-04-05 05:17:25 +0000
commit131dd2a35145a1db1a45ab76764f32cbbca3fd43 (patch)
tree7ef3fa4053fe64cc1e8eb265839c9c1a92343b81 /agent/agent.h
parentgpg: Initial support for generating Kyber subkeys. (diff)
downloadgnupg-131dd2a35145a1db1a45ab76764f32cbbca3fd43.tar.gz
gnupg-131dd2a35145a1db1a45ab76764f32cbbca3fd43.zip
agent: Add initial support for hybrid ECC+PQC decryption with KEM.
* agent/agent.h (enum kemid): New. (agent_kem_decrypt): New. * agent/command.c (cmd_pkdecrypt): Support --kem option to call agent_kem_decrypt. * agent/pkdecrypt.c (reverse_buffer): New. (agent_hybrid_pgp_kem_decrypt): New. (agent_kem_decrypt): New. -- Now, it only supports X25519 + ML-KEM. GnuPG-bug-id: 7014 Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'agent/agent.h')
-rw-r--r--agent/agent.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/agent/agent.h b/agent/agent.h
index b3d3c0407..af040b63f 100644
--- a/agent/agent.h
+++ b/agent/agent.h
@@ -560,6 +560,18 @@ gpg_error_t agent_pkdecrypt (ctrl_t ctrl, const char *desc_text,
const unsigned char *ciphertext, size_t ciphertextlen,
membuf_t *outbuf, int *r_padding);
+enum kemid
+ {
+ KEM_PQC_PGP,
+ KEM_PGP,
+ KEM_CMS,
+ };
+
+gpg_error_t agent_kem_decrypt (ctrl_t ctrl, const char *desc_text, int kemid,
+ const unsigned char *ct, size_t ctlen,
+ const unsigned char *option, size_t optionlen,
+ membuf_t *outbuf);
+
/*-- genkey.c --*/
#define CHECK_CONSTRAINTS_NOT_EMPTY 1
#define CHECK_CONSTRAINTS_NEW_SYMKEY 2