aboutsummaryrefslogtreecommitdiffstats
path: root/agent/cvt-openpgp.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2024-04-05 14:16:53 +0000
committerWerner Koch <[email protected]>2024-04-05 14:16:53 +0000
commit03d53c88ccf53a282d994fbc9978dba9b51f8ce1 (patch)
tree5aa1794ebeddf4c6f6a54ffe5321168d5e33bc94 /agent/cvt-openpgp.c
parentagent: Fix error handling of READKEY. (diff)
downloadgnupg-03d53c88ccf53a282d994fbc9978dba9b51f8ce1.tar.gz
gnupg-03d53c88ccf53a282d994fbc9978dba9b51f8ce1.zip
gpg: Allow to create a Kyber key from keygrips.
* agent/cvt-openpgp.c (extract_private_key): Support Kyber algorithms. * common/openpgp-oid.c (map_gcry_pk_to_openpgp): Map KEM to Kyber. * common/sexputil.c (get_pk_algo_from_key): Increase buffer for use with "kyber1024". * g10/call-agent.c (agent_get_keyinfo): Fix warning. * g10/keygen.c (do_create_from_keygrip): Support Kyber. (ask_algo): Ditto. -- To test create a standard key and the use --edit-key and "addkey" with selection 13 and use the comma delimited keygrips. GnuPG-bug-id: 7014
Diffstat (limited to 'agent/cvt-openpgp.c')
-rw-r--r--agent/cvt-openpgp.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/agent/cvt-openpgp.c b/agent/cvt-openpgp.c
index 50755c0fd..420dbb464 100644
--- a/agent/cvt-openpgp.c
+++ b/agent/cvt-openpgp.c
@@ -1384,6 +1384,17 @@ extract_private_key (gcry_sexp_t s_key, int req_private_key_data,
err = gcry_sexp_extract_param (list, NULL, format,
array+0, array+1, NULL);
}
+ else if ( !strcmp (name, (algoname = "kyber512"))
+ || !strcmp (name, (algoname = "kyber768"))
+ || !strcmp (name, (algoname = "kyber1024")))
+ {
+ format = "/ps?";
+ elems = "ps?";
+ npkey = 1;
+ nskey = 2;
+ err = gcry_sexp_extract_param (list, NULL, format,
+ array+0, array+1, NULL);
+ }
else
{
err = gpg_error (GPG_ERR_PUBKEY_ALGO);