diff options
author | NIIBE Yutaka <[email protected]> | 2021-09-29 02:30:00 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2021-09-29 02:30:00 +0000 |
commit | dd2e092339627c03cd0f506f3ef1be3e98d5ff83 (patch) | |
tree | cafb48d6ff4b2a64fa6abb7bf283612ac019e9b6 | |
parent | gpg: Ed448 and X448 are only for v5 (for subkey). (diff) | |
download | gnupg-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]>
-rw-r--r-- | g10/getkey.c | 14 |
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) { |