Constants and other data useful for debugging OpenPGP packets.

  • gpg --list-packets will display the packets in a pgp file.
  • gpg --export key keyId |gpg --list-packets will display a key.
  • See also the utility pgpdump.

Constants

Hash Algorithms

ID

Algorithm

Text Name

Output Bits

1

MD5 [~benchoff:HAC]

"MD5"

128

2

SHA-1 [~benchoff:FIPS180]

"SHA1"

160

3

RIPE-MD/160 [~benchoff:HAC]

"RIPEMD160"

160

4

Reserved

 

 

5

Reserved

 

 

6

Reserved

 

 

7

Reserved

 

 

8

SHA256 [~benchoff:FIPS180]

"SHA256"

256

9

SHA384 [~benchoff:FIPS180]

"SHA384"

384

10

SHA512 [~benchoff:FIPS180]

"SHA512"

512

11

SHA224 [~benchoff:FIPS180]

"SHA224"

224

100 to 110

Private/Experimental algorithm

 

 

Implementations MUST implement SHA-1. Implementations MAY implement other algorithms. MD5 is deprecated.

Compression Algorithms

ID

Algorithm

0

Uncompressed

1

ZIP [~benchoff:RFC1951]

2

ZLIB [~benchoff:RFC1950]

3

BZip2 [~benchoff:BZ2]

100 to 110

Private/Experimental algorithm

Implementations MUST implement uncompressed data. Implementations SHOULD implement ZIP. Implementations MAY implement any other algorithm.

Symmetric-Key Algorithms

ID

Algorithm

0

Plaintext or unencrypted data

1

IDEA [~benchoff:IDEA]

2

TripleDES (DES-EDE, [~benchoff:SCHNEIER] [~benchoff:HAC] 168 bit key derived from 192)

3

CAST5 (128 bit key, as per [~benchoff:RFC2144])

4

Blowfish (128 bit key, 16 rounds) [~benchoff:BLOWFISH]

5

Reserved

6

Reserved

7

AES with 128-bit key [~benchoff:AES]

8

AES with 192-bit key

9

AES with 256-bit key

10

Twofish with 256-bit key [~benchoff:TWOFISH]

100 to 110

Private/Experimental algorithm

Implementations MUST implement TripleDES. Implementations SHOULD implement AES-128 and CAST5.

Public-Key Algorithms

ID

Algorithm

1

RSA (Encrypt or Sign) [~benchoff:HAC]

2

RSA Encrypt-Only [~benchoff:HAC]

3

RSA Sign-Only [~benchoff:HAC]

16

Elgamal (Encrypt-Only) [~benchoff:ELGAMAL] [~benchoff:HAC]

17

DSA (Digital Signature Algorithm) [~benchoff:FIPS186] [~benchoff:HAC]

18

Reserved for Elliptic Curve

19

Reserved for ECDSA

20

Reserved (formerly Elgamal Encrypt or Sign)

21

Reserved for Diffie-Hellman (X9.42, as defined for IETF-S/MIME)

100 to 110

Private/Experimental algorithm

String-to-Key (S2K) Specifier Types

ID

S2K Type

0

Simple S2K

1

Salted S2K

2

Reserved value

3

Iterated and Salted S2K

100 to 110

Private/Experimental S2K

Key flags

0x01

This key may be used to certify other keys.

0x02

This key may be used to sign data.

0x04

This key may be used to encrypt communications.

0x08

This key may be used to encrypt storage.

0x10

The private component of this key may have been split by a secret-sharing mechanism.

0x20

This key may be used for authentication.

0x80

The private component of this key may be in the possession of more than one person.

Packet tags

0

Reserved - a packet tag MUST NOT have this value

1

Public-Key Encrypted Session Key Packet

2

Signature Packet

3

Symmetric-Key Encrypted Session Key Packet

4

One-Pass Signature Packet

5

Secret-Key Packet

6

Public-Key Packet

7

Secret-Subkey Packet

8

Compressed Data Packet

9

Symmetrically Encrypted Data Packet

10

Marker Packet

11

Literal Data Packet

12

Trust Packet

13

User ID Packet

14

Public-Subkey Packet

17

User Attribute Packet

18

Sym. Encrypted and Integrity Protected Data Packet

19

Modification Detection Code Packet

60 to 63

Private or Experimental Values