Subpacket 33 and GnuPG Specifics on RFC-4880 Tag ID's, algorithm identifiers, etc

FuzzyDrawrings fuzzy_drawrings at protonmail.com
Thu Jan 25 03:26:58 CET 2018


​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]



More information about the Gnupg-users mailing list