1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

gpg: For composite algos add the algo string to the colons listings.

* g10/keylist.c (list_keyblock_colon): Put the algo string into the
curve field for Kyber.
--

GnuPG-bug-id: 6638
This commit is contained in:
Werner Koch 2024-11-14 14:04:50 +01:00
parent 6b02292d31
commit 7e066f614a
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
3 changed files with 20 additions and 2 deletions

3
NEWS
View File

@ -3,6 +3,9 @@ Noteworthy changes in version 2.5.2 (unreleased)
* gpg: Add option 16 to --full-gen-key to create ECC+Kyber. [T6638] * gpg: Add option 16 to --full-gen-key to create ECC+Kyber. [T6638]
* gpg: For composite algos add the algo string to the colons
listings. [T6638]
* dirmngr: A list of used URLs for loaded CRLs is printed first in * dirmngr: A list of used URLs for loaded CRLs is printed first in
the output of the LISTCRL command. [T7337] the output of the LISTCRL command. [T7337]

View File

@ -245,8 +245,9 @@ described here.
*** Field 17 - Curve name *** Field 17 - Curve name
For pub, sub, sec, ssb, crt, and crs records this field is used For pub, sub, sec, ssb, crt, and crs records this field is used
for the ECC curve name. For combined algorithms the first and the for the ECC curve name. For composite algorithms the first and
second algorithm name, delimited by an underscore are put here. the second algorithm name, delimited by an underscore, are put
here.
*** Field 18 - Compliance flags *** Field 18 - Compliance flags

View File

@ -1882,6 +1882,7 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
unsigned int keylength; unsigned int keylength;
char *curve = NULL; char *curve = NULL;
const char *curvename = NULL; const char *curvename = NULL;
char pkstrbuf[PUBKEY_STRING_SIZE];
/* Get the keyid from the keyblock. */ /* Get the keyid from the keyblock. */
node = find_kbnode (keyblock, PKT_PUBLIC_KEY); node = find_kbnode (keyblock, PKT_PUBLIC_KEY);
@ -1971,6 +1972,14 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
curvename = curve; curvename = curve;
es_fputs (curvename, es_stdout); es_fputs (curvename, es_stdout);
} }
else if (pk->pubkey_algo == PUBKEY_ALGO_KYBER)
{
/* Note that Kyber should actually not appear here because it is
* the primary key and Kyber is not able to certify. But we
* prepare it here for future composite algorithms and in case
* of faulty packets. */
es_fputs (pubkey_string (pk, pkstrbuf, sizeof pkstrbuf), es_stdout);
}
es_putc (':', es_stdout); /* End of field 17. */ es_putc (':', es_stdout); /* End of field 17. */
print_compliance_flags (pk, keylength, curvename); print_compliance_flags (pk, keylength, curvename);
es_putc (':', es_stdout); /* End of field 18 (compliance). */ es_putc (':', es_stdout); /* End of field 18 (compliance). */
@ -2122,6 +2131,11 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
curvename = curve; curvename = curve;
es_fputs (curvename, es_stdout); es_fputs (curvename, es_stdout);
} }
else if (pk2->pubkey_algo == PUBKEY_ALGO_KYBER)
{
es_fputs (pubkey_string (pk2, pkstrbuf, sizeof pkstrbuf),
es_stdout);
}
es_putc (':', es_stdout); /* End of field 17. */ es_putc (':', es_stdout); /* End of field 17. */
print_compliance_flags (pk2, keylength, curvename); print_compliance_flags (pk2, keylength, curvename);
es_putc (':', es_stdout); /* End of field 18. */ es_putc (':', es_stdout); /* End of field 18. */