​Hello, I am working to better understand the OpenPGP standard and how it is
handled by the current implementation of GnuPG.
To this end I have created a Python program that reads ASCII-Armor and returns
details about the encoded data within. This is purely for my own edification
and understanding of how OpenPGP works and also learn Python in the process.
I'm at the point where I can parse ascii armor to display almost all of the
information I could otherwise get using "$ gpg --list-packets", including
calculate the actual key fingerprint (which took a lot of re-reading the
section of RFC-4880 that explains all the data that must be hashed to produce
the fingerprint).
Does anyone know what are the additions or changes there are, in terms of
packet tags, signature types, subpacket types, and algorithm identifiers used
in the current version of GnuPG but that are not defined in RFC4880?
I've figured out a few on my own: additional public-key algorithm identifiers
like 18 and 19 (ECDH and ECDSA, respectively, as defined in RFC-6637). And it
seems that 22 is the identifier for Curve 25517 and/or EdDSA.
One I haven't been able to figure out is signature subpacket type 33. The
signature files for the downloads on gnupg.org contain this subpacket type, but
it isn't defined in RFC-4880. Strangely, even my installation of GnuPG does not
display anything but "(?)" for the meaning of this subpacket's content:
$ gpg2 --list-packets gnupg-2.2.4.tar.bz2.sig
# off=0 ctb=89 tag=2 hlen=3 plen=307
:signature packet: algo 1, keyid 249B39D24F25E3B6
version 4, created 1513760871, md5len 0, sigclass 0x00
digest algo 8, begin of digest 75 a5
hashed subpkt 33 len 21 (?)
hashed subpkt 2 len 4 (sig created 2017-12-20)
subpkt 16 len 8 (issuer key ID 249B39D24F25E3B6)
data: [2046 bits]
# off=310 ctb=89 tag=2 hlen=3 plen=307
:signature packet: algo 1, keyid 2071B08A33BD3F06
version 4, created 1513762863, md5len 0, sigclass 0x00
digest algo 8, begin of digest 95 36
hashed subpkt 33 len 21 (?)
hashed subpkt 2 len 4 (sig created 2017-12-20)
subpkt 16 len 8 (issuer key ID 2071B08A33BD3F06)
data: [2046 bits]
_______________________________________________
Gnupg-users mailing list
[email protected]
http://lists.gnupg.org/mailman/listinfo/gnupg-users