diff options
author | NIIBE Yutaka <[email protected]> | 2024-04-05 05:17:25 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2024-04-05 05:17:25 +0000 |
commit | 131dd2a35145a1db1a45ab76764f32cbbca3fd43 (patch) | |
tree | 7ef3fa4053fe64cc1e8eb265839c9c1a92343b81 /agent/agent.h | |
parent | gpg: Initial support for generating Kyber subkeys. (diff) | |
download | gnupg-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.h | 12 |
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 |