aboutsummaryrefslogtreecommitdiffstats
path: root/g10/getkey.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2021-09-29 02:30:00 +0000
committerNIIBE Yutaka <[email protected]>2021-09-29 02:30:00 +0000
commitdd2e092339627c03cd0f506f3ef1be3e98d5ff83 (patch)
treecafb48d6ff4b2a64fa6abb7bf283612ac019e9b6 /g10/getkey.c
parentgpg: Ed448 and X448 are only for v5 (for subkey). (diff)
downloadgnupg-dd2e092339627c03cd0f506f3ef1be3e98d5ff83.tar.gz
gnupg-dd2e092339627c03cd0f506f3ef1be3e98d5ff83.zip
gpg: Handle backsig for v5 signature.
* g10/getkey.c (merge_selfsigs_subkey): Check v5 signature correctly. -- GnuPG-bug-id: 5628 Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'g10/getkey.c')
-rw-r--r--g10/getkey.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/g10/getkey.c b/g10/getkey.c
index cf734db24..e49718e68 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -3359,9 +3359,10 @@ merge_selfsigs_subkey (ctrl_t ctrl, kbnode_t keyblock, kbnode_t subnode)
while ((p = enum_sig_subpkt (sig, 1, SIGSUBPKT_SIGNATURE,
&n, &seq, NULL)))
- if (n > 3
- && ((p[0] == 3 && p[2] == 0x19) || (p[0] == 4 && p[1] == 0x19)))
- {
+ if (n > 3
+ && ((p[0] == 3 && p[2] == 0x19) || (p[0] == 4 && p[1] == 0x19)
+ || (p[0] == 5 && p[1] == 0x19)))
+ {
PKT_signature *tempsig = buf_to_sig (p, n);
if (tempsig)
{
@@ -3384,9 +3385,10 @@ merge_selfsigs_subkey (ctrl_t ctrl, kbnode_t keyblock, kbnode_t subnode)
* is located on the selfsig for convenience, not security. */
while ((p = enum_sig_subpkt (sig, 0, SIGSUBPKT_SIGNATURE,
&n, &seq, NULL)))
- if (n > 3
- && ((p[0] == 3 && p[2] == 0x19) || (p[0] == 4 && p[1] == 0x19)))
- {
+ if (n > 3
+ && ((p[0] == 3 && p[2] == 0x19) || (p[0] == 4 && p[1] == 0x19)
+ || (p[0] == 5 && p[1] == 0x19)))
+ {
PKT_signature *tempsig = buf_to_sig (p, n);
if (tempsig)
{