From 8d552b279d8963dfaff910a55bcca55ac5e2f258 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 9 Apr 2024 15:49:00 +0200 Subject: gpg: Make Kyber creation more flexible. * common/openpgp-oid.c (openpgp_is_curve_supported): Allow the abbreviated curve name. * g10/pkglue.c (pk_encrypt): Add debug output. * g10/seskey.c (encode_session_key): Handle Kyber session key like ECDH. This is just a stub. * g10/keygen.c (ecckey_from_sexp): Use the modern OID for cv25519. (parse_key_parameter_part): Allow more Kyber variants. -- Test by creating an ed25519 key and using gpg --quick-add-key --batch --passphrase "" to create several subkeys. Tested with ALGOs: kyber768 kyber1024 ky768_cv25519 ky768_bp256 kyber768_nistp256 ky1024_cv448 All curves capable of encryption should work. GnuPG-bug-id: 6815 --- common/openpgp-oid.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'common/openpgp-oid.c') diff --git a/common/openpgp-oid.c b/common/openpgp-oid.c index bc82cc6b0..4b59c1aeb 100644 --- a/common/openpgp-oid.c +++ b/common/openpgp-oid.c @@ -599,7 +599,9 @@ openpgp_is_curve_supported (const char *name, int *r_algo, { if ((!ascii_strcasecmp (name, oidtable[idx].name) || (oidtable[idx].alias - && !ascii_strcasecmp (name, (oidtable[idx].alias)))) + && !ascii_strcasecmp (name, (oidtable[idx].alias))) + || (oidtable[idx].abbr + && !ascii_strcasecmp (name, (oidtable[idx].abbr)))) && curve_supported_p (oidtable[idx].name)) { if (r_algo) -- cgit v1.2.3