OpenPGP

Created

  • 2024-01-19

Last Updated

  • 2026-07-02

Available Formats


OpenPGP String-to-Key (S2K) Types

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

ID S2K Type S2K Field Size (Octets) Generate? Reference
0 Simple S2K 2 No RFC 9580, Section 3.7.1.1
1 Salted S2K 10 Only when string is high entropy RFC 9580, Section 3.7.1.2
2 Reserved value No RFC 9580
3 Iterated and Salted S2K 11 Yes RFC 9580, Section 3.7.1.3
4 Argon2 20 Yes RFC 9580, Section 3.7.1.4
5-99 Unassigned
100-110 Private or Experimental Use As appropriate RFC 9580
111-255 Unassigned

OpenPGP Packet Types

Registration Procedure(s)

  • RFC Required

Reference

Available Formats

ID Critical Packet Type Description Shorthand Reference
0 Yes Reserved - this Packet Type ID MUST NOT be used RFC 9580
1 Yes Public Key Encrypted Session Key Packet PKESK RFC 9580, Section 5.1
2 Yes Signature Packet SIG RFC 9580, Section 5.2
3 Yes Symmetric Key Encrypted Session Key Packet SKESK RFC 9580, Section 5.3
4 Yes One-Pass Signature Packet OPS RFC 9580, Section 5.4
5 Yes Secret Key Packet SECKEY RFC 9580, Section 5.5.1.3
6 Yes Public Key Packet PUBKEY RFC 9580, Section 5.5.1.1
7 Yes Secret Subkey Packet SECSUBKEY RFC 9580, Section 5.5.1.4
8 Yes Compressed Data Packet COMP RFC 9580, Section 5.6
9 Yes Symmetrically Encrypted Data Packet SED RFC 9580, Section 5.7
10 Yes Marker Packet MARKER RFC 9580, Section 5.8
11 Yes Literal Data Packet LIT RFC 9580, Section 5.9
12 Yes Trust Packet TRUST RFC 9580, Section 5.10
13 Yes User ID Packet UID RFC 9580, Section 5.11
14 Yes Public Subkey Packet PUBSUBKEY RFC 9580, Section 5.5.1.2
15-16 Unassigned
17 Yes User Attribute Packet UAT RFC 9580, Section 5.12
18 Yes Symmetrically Encrypted and Integrity Protected Data Packet SEIPD RFC 9580, Section 5.13
19 Yes Reserved (formerly Modification Detection Code Packet) RFC 9580, Section 5.13.1
20 Yes Reserved RFC 9580
21 Yes Padding Packet PADDING RFC 9580, Section 5.14
22-39 Yes Unassigned Critical Packets
40-59 No Unassigned Non-Critical Packets
60-63 No Private or Experimental Use RFC 9580

OpenPGP User Attribute Subpacket Types

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

ID Attribute Subpacket Reference
0 Reserved RFC 9580
1 Image Attribute Subpacket RFC 9580, Section 5.12.1
2-99 Unassigned
100-110 Private or Experimental Use RFC 9580
111-255 Unassigned

OpenPGP Image Attribute Encoding Format

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

ID Encoding Reference
0 Reserved RFC 9580
1 JPEG JFIF RFC 9580
2-99 Unassigned
100-110 Private or Experimental Use RFC 9580
111-255 Unassigned

OpenPGP Signature Subpacket Types

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

ID Description Reference
0 Reserved RFC 9580
1 Reserved RFC 9580
2 Signature Creation Time RFC 9580, Section 5.2.3.11
3 Signature Expiration Time RFC 9580, Section 5.2.3.18
4 Exportable Certification RFC 9580, Section 5.2.3.19
5 Trust Signature RFC 9580, Section 5.2.3.21
6 Regular Expression RFC 9580, Section 5.2.3.22
7 Revocable RFC 9580, Section 5.2.3.20
8 Reserved RFC 9580
9 Key Expiration Time RFC 9580, Section 5.2.3.13
10 Placeholder for backward compatibility RFC 9580
11 Preferred Symmetric Ciphers for v1 SEIPD RFC 9580, Section 5.2.3.14
12 Revocation Key (deprecated) RFC 9580, Section 5.2.3.23
13-15 Reserved RFC 9580
16 Issuer Key ID RFC 9580, Section 5.2.3.12
17-19 Reserved RFC 9580
20 Notation Data RFC 9580, Section 5.2.3.24
21 Preferred Hash Algorithms RFC 9580, Section 5.2.3.16
22 Preferred Compression Algorithms RFC 9580, Section 5.2.3.17
23 Key Server Preferences RFC 9580, Section 5.2.3.25
24 Preferred Key Server RFC 9580, Section 5.2.3.26
25 Primary User ID RFC 9580, Section 5.2.3.27
26 Policy URI RFC 9580, Section 5.2.3.28
27 Key Flags RFC 9580, Section 5.2.3.29
28 Signer's User ID RFC 9580, Section 5.2.3.30
29 Reason for Revocation RFC 9580, Section 5.2.3.31
30 Features RFC 9580, Section 5.2.3.32
31 Signature Target RFC 9580, Section 5.2.3.33
32 Embedded Signature RFC 9580, Section 5.2.3.34
33 Issuer Fingerprint RFC 9580, Section 5.2.3.35
34 Reserved RFC 9580
35 Intended Recipient Fingerprint RFC 9580, Section 5.2.3.36
37 Reserved (Attested Certifications) RFC 9580
38 Reserved (Key Block) RFC 9580
39 Preferred AEAD Ciphersuites RFC 9580, Section 5.2.3.15
40-99 Unassigned
100-110 Private or Experimental Use RFC 9580
111-127 Unassigned

OpenPGP Key Server Preference Flags

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Note

This is a variable length bit field.

Available Formats

Flag Shorthand Definition Reference
0x80... No-modify The keyholder requests that this key only be modified or updated by the keyholder or an administrator of the key server. RFC 9580

OpenPGP Reason for Revocation (Revocation Octet)

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

Code Reason Reference
0 No reason specified (Key Revocation or Certification Revocation signatures) RFC 9580
1 Key is superseded (Key Revocation signatures) RFC 9580
2 Key material has been compromised (Key Revocation signatures) RFC 9580
3 Key is retired and no longer used (Key Revocation signatures) RFC 9580
4-31 Unassigned
32 User ID information is no longer valid (Certification Revocation signatures) RFC 9580
33-99 Unassigned
100-110 Private Use RFC 9580

OpenPGP Features Flags

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Note

This is a variable length bit field.

Available Formats

Feature Definition Reference
0x01... Version 1 Symmetrically Encrypted and Integrity Protected Data packet RFC 9580, Section 5.13.1
0x02... Reserved RFC 9580
0x04... Reserved RFC 9580
0x08... Version 2 Symmetrically Encrypted and Integrity Protected Data packet RFC 9580, Section 5.13.2

OpenPGP New Packet Versions (OBSOLETE)

Registration Procedure(s)

  • Registry closed

Reference

Note

Those wishing to use the removed "New Packet Versions" registry should instead register new versions of the relevant packets in the "OpenPGP Key and Signature Versions", "OpenPGP Key IDs and Fingerprints", and "OpenPGP Encrypted Message Packet Versions" registries.

No registrations at this time.

OpenPGP Key Flags

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Note

This is a variable length bit field.

Available Formats

Flag Definition Reference
0x01... This key may be used to make User ID certifications (Signature Type IDs 0x10-0x13) or Direct Key signatures (Signature Type ID 0x1F) over other keys. RFC 9580
0x02... This key may be used to sign data. RFC 9580
0x04... This key may be used to encrypt communications. RFC 9580
0x08... This key may be used to encrypt storage. RFC 9580
0x10... The private component of this key may have been split by a secret-sharing mechanism. RFC 9580
0x20... This key may be used for authentication. RFC 9580
0x80... The private component of this key may be in the possession of more than one person. RFC 9580
0x0004... Reserved (ADSK) RFC 9580
0x0008... Reserved (timestamping) RFC 9580

OpenPGP Public Key Algorithms

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Note

The field specifications enclosed in square brackets for PKESK Format represent fields that may or may not be present, depending on the PKESK version.

Available Formats

ID Algorithm Public Key Format Secret Key Format Signature Format PKESK Format Reference
0 Reserved RFC 9580
1 RSA (Encrypt or Sign) FIPS186 MPI(n), MPI(e) RFC 9580, Section 5.5.5.1 MPI(d), MPI(p), MPI(q), MPI(u) MPI(m^d mod n) RFC 9580, Section 5.2.3.1 MPI(m^e mod n) RFC 9580, Section 5.1.3 RFC 9580
2 RSA Encrypt-Only FIPS186 MPI(n), MPI(e) RFC 9580, Section 5.5.5.1 MPI(d), MPI(p), MPI(q), MPI(u) N/A MPI(m^e mod n) RFC 9580, Section 5.1.3 RFC 9580
3 RSA Sign-Only FIPS186 MPI(n), MPI(e) RFC 9580, Section 5.5.5.1 MPI(d), MPI(p), MPI(q), MPI(u) MPI(m^d mod n) RFC 9580, Section 5.2.3.1 N/A RFC 9580
4-15 Unassigned
16 Elgamal (Encrypt-Only) ELGAMAL MPI(p), MPI(g), MPI(y) RFC 9580, Section 5.5.5.3 MPI(x) N/A MPI(g^k mod p), MPI(m * y^k mod p) RFC 9580, Section 5.1.4 RFC 9580
17 DSA (Digital Signature Algorithm) FIPS186 MPI(p), MPI(q), MPI(g), MPI(y) RFC 9580, Section 5.5.5.2 MPI(x) MPI(r), MPI(s) RFC 9580, Section 5.2.3.2 N/A RFC 9580
18 ECDH public key algorithm OID, MPI(point in curve-specific point format), KDFParams RFC 9580, Section 9.2.1, 5.5.5.6 MPI(value in curve-specific format) RFC 9580, Section 9.2.1 N/A MPI(point in curve-specific point format), size octet, encoded key RFC 9580, Section 9.2.1, 5.1.5, 11.5 RFC 9580
19 ECDSA public key algorithm FIPS186 OID, MPI(point in SEC1 format) RFC 9580, Section 5.5.5.4 MPI(value) MPI(r), MPI(s) RFC 9580, Section 5.2.3.2 N/A RFC 9580
20 Reserved (formerly Elgamal Encrypt or Sign) RFC 9580
21 Reserved for Diffie-Hellman (X9.42, as defined for IETF-S/MIME) RFC 9580
22 EdDSALegacy (deprecated) OID, MPI(point in prefixed native format) RFC 9580, Section 11.2.2, 5.5.5.5 MPI(value in curve-specific format) RFC 9580, Section 9.2.1 MPI, MPI RFC 9580, Section 9.2.1, 5.2.3.3 N/A RFC 9580
23 Reserved (AEDH) RFC 9580
24 Reserved (AEDSA) RFC 9580
25 X25519 32 octets RFC 9580, Section 5.5.5.7 32 octets N/A 32 octets, size octet, encoded key RFC 9580, Section 5.1.6 RFC 9580
26 X448 56 octets RFC 9580, Section 5.5.5.8 56 octets N/A 56 octets, size octet, encoded key RFC 9580, Section 5.1.7 RFC 9580
27 Ed25519 32 octets RFC 9580, Section 5.5.5.9 32 octets 64 octets RFC 9580, Section 5.2.3.4 RFC 9580
28 Ed448 57 octets RFC 9580, Section 5.5.5.10 57 octets 114 octets RFC 9580, Section 5.2.3.5 RFC 9580
29 Unassigned
30 ML-DSA-65+Ed25519 32-octet Ed25519 public key Table 6, 1952-octet ML-DSA-65 public key Table 7 32-octet Ed25519 secret key Table 6, 32-octet ML-DSA-65 secret key Table 7 64-octet Ed25519 signature Table 6, 3309-octet ML-DSA-65 signature Table 7 N/A RFC 9980, Section 5
31 ML-DSA-87+Ed448 57-octet Ed448 public key Table 6, 2592-octet ML-DSA-87 public key Table 7 57-octet Ed448 secret key Table 6, 32-octet ML-DSA-87 secret key Table 7 114-octet Ed448 signature Table 6, 4627-octet ML-DSA-87 signature Table 7 N/A RFC 9980, Section 5
32 SLH-DSA-SHAKE-128s 32-octet public key Table 8 64-octet secret key Table 8 7856-octet signature Table 8 N/A RFC 9980, Section 6.1
33 SLH-DSA-SHAKE-128f 32-octet public key Table 8 64-octet secret key Table 8 17088-octet signature Table 8 N/A RFC 9980, Section 6.1
34 SLH-DSA-SHAKE-256s 64-octet public key Table 8 128-octet secret key Table 8 29792-octet signature Table 8 N/A RFC 9980, Section 6.1
35 ML-KEM-768+X25519 32-octet X25519 public key Table 3, 1184-octet ML-KEM-768 public key Table 4 32-octet X25519 secret key Table 3, 64-octet ML-KEM-768 secret key Table 4 N/A 32-octet X25519 ciphertext, 1088-octet ML-KEM-768 ciphertext, 1 octet remaining length, [1-octet algorithm ID in the case of v3 PKESK,] n octets wrapped session key RFC 9980, Section 4.3.1 RFC 9980, Section 4
36 ML-KEM-1024+X448 56-octet X448 public key Table 3, 1568-octet ML-KEM-1024 public key Table 4 56-octet X448 secret key Table 3, 64-octet ML-KEM-1024 secret key Table 4 N/A 56-octet X448 ciphertext, 1568-octet ML-KEM-1024 ciphertext, 1 octet remaining length, [1-octet algorithm ID in the case of v3 PKESK,] n octets wrapped session key RFC 9980, Section 4.3.1 RFC 9980, Section 4
37-99 Unassigned
100-110 Private or Experimental Use
111-255 Unassigned

OpenPGP Symmetric Key Algorithms

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Note

When registering a new symmetric cipher with a block size of 64 or 128 bits and a key size that is a multiple of 64 bits, no new considerations are needed.

If the new cipher has a different block size, there needs to be additional documentation describing how to use the cipher in CFB mode.

If the new cipher has an unusual key size, then padding needs to be considered for X25519 and X448 key wrapping, which currently needs no padding.

Available Formats

ID Algorithm Reference
0 Plaintext or unencrypted data RFC 9580
1 IDEA IDEA RFC 9580
2 TripleDES (or DES-EDE) SP800-67 with 168-bit key derived from 192 RFC 9580
3 CAST5 with 128-bit key RFC 2144 RFC 9580
4 Blowfish with 128-bit key, 16 rounds BLOWFISH RFC 9580
5 Reserved RFC 9580
6 Reserved RFC 9580
7 AES with 128-bit key AES RFC 9580
8 AES with 192-bit key RFC 9580
9 AES with 256-bit key RFC 9580
10 Twofish with 256-bit key TWOFISH RFC 9580
11 Camellia with 128-bit key RFC 3713 RFC 9580
12 Camellia with 192-bit key RFC 9580
13 Camellia with 256-bit key RFC 9580
14-99 Unassigned
100-110 Private or Experimental Use RFC 9580
111-252 Unassigned
253-255 Reserved to avoid collision with Secret Key Encryption (see the OpenPGP Secret Key Encryption (S2K Usage Octet) registry and RFC 9580, Section 5.5.3) RFC 9580

OpenPGP Hash Algorithms

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Note

When registering a new hash algorithm, if the algorithm is also to be used with RSA signing schemes, it must also have an entry in the "OpenPGP Hash Algorithm Identifiers for RSA Signatures' use of EMSA-PKCS1-v1_5 Padding" registry.

Available Formats

ID Algorithm Text Name V6 Signature Salt Size Reference
0 Reserved RFC 9580
1 MD5 RFC 1321 "MD5" N/A RFC 9580
2 SHA-1 FIPS180 "SHA1" N/A RFC 9580
3 RIPEMD-160 RIPEMD-160 "RIPEMD160" N/A RFC 9580
4-7 Reserved RFC 9580
8 SHA2-256 FIPS180 "SHA256" 16 RFC 9580
9 SHA2-384 FIPS180 "SHA384" 24 RFC 9580
10 SHA2-512 FIPS180 "SHA512" 32 RFC 9580
11 SHA2-224 FIPS180 "SHA224" 16 RFC 9580
12 SHA3-256 FIPS202 "SHA3-256" 16 RFC 9580
13 Reserved RFC 9580
14 SHA3-512 FIPS202 "SHA3-512" 32 RFC 9580
15-99 Unassigned
100-110 Private or Experimental Use RFC 9580
111-255 Unassigned

OpenPGP Compression Algorithms

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

ID Algorithm Reference
0 Uncompressed RFC 9580
1 ZIP RFC 1951 RFC 9580
2 ZLIB RFC 1950 RFC 9580
3 BZip2 BZ2 RFC 9580
4-99 Unassigned RFC 9580
100-110 Private or Experimental Use RFC 9580
111-255 Unassigned RFC 9580

OpenPGP Secret Key Encryption (S2K Usage Octet)

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

S2K Usage Octet Shorthand Encryption Parameter Fields Encryption Generate? Reference
0 Unprotected - v3 or v4 keys: [cleartext secrets || check(secrets)] v6 keys: [cleartext secrets] Yes RFC 9580
Known symmetric cipher algo ID (see RFC 9580, Section 9.3) LegacyCFB IV CFB(MD5(passphrase), secrets || check(secrets)) No RFC 9580
253 AEAD params-length (v6-only), cipher-algo, AEAD-mode, S2K-specifier-length (v6-only), S2K-specifier, nonce AEAD(HKDF(S2K(passphrase), info), secrets, packetprefix) Yes RFC 9580
254 CFB params-length (v6-only), cipher-algo, S2K-specifier-length (v6-only), S2K-specifier, IV CFB(S2K(passphrase), secrets || SHA1(secrets)) Yes RFC 9580
255 MalleableCFB cipher-algo, S2K-specifier, IV CFB(S2K(passphrase), secrets || check(secrets)) No RFC 9580

OpenPGP Signature Types

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

ID Name Reference
0x00 Binary Signature RFC 9580, Section 5.2.1.1
0x01 Text Signature RFC 9580, Section 5.2.1.2
0x02 Standalone Signature RFC 9580, Section 5.2.1.3
0x03-0x0F Unassigned
0x10 Generic Certification Signature RFC 9580, Section 5.2.1.4
0x11 Persona Certification Signature RFC 9580, Section 5.2.1.5
0x12 Casual Certification Signature RFC 9580, Section 5.2.1.6
0x13 Positive Certification Signature RFC 9580, Section 5.2.1.7
0x14-0x17 Unassigned
0x18 Subkey Binding Signature RFC 9580, Section 5.2.1.8
0x19 Primary Key Binding Signature RFC 9580, Section 5.2.1.9
0x1A-0x1E Unassigned
0x1F Direct Key Signature RFC 9580, Section 5.2.1.10
0x20 Key Revocation Signature RFC 9580, Section 5.2.1.11
0x21-0x27 Unassigned
0x28 Subkey Revocation Signature RFC 9580, Section 5.2.1.12
0x29-0x2F Unassigned
0x30 Certification Revocation Signature RFC 9580, Section 5.2.1.13
0x31-0x3F Unassigned
0x40 Timestamp Signature RFC 9580, Section 5.2.1.14
0x41-0x4F Unassigned
0x50 Third-Party Confirmation Signature RFC 9580, Section 5.2.1.15
0x51-0xFE Unassigned
0xFF Reserved RFC 9580, Section 5.2.1.16

OpenPGP Signature Notation Data Subpacket Notation Flags

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

Flag Position Shorthand Description Reference
0x80000000 (first bit of the first octet) human-readable Notation value is UTF-8 text RFC 9580

OpenPGP Signature Notation Data Subpacket Types

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Note

Notation names are arbitrary Unicode strings encoded in UTF-8. They reside in two namespaces: the IETF namespace and the user namespace.

This registry documents the IETF namespace. The names in this registry MUST NOT contain the "@" character (0x40), since the presence of that character indicates the user namespace.

Notation Name Data Type Allowed Values Reference
No registrations at this time.

OpenPGP Key IDs and Fingerprints

Registration Procedure(s)

  • RFC Required

Reference

Note

When a new key version is defined, the "OpenPGP Key and Signature Versions" registry should also be updated.

Available Formats

Key Version Fingerprint Fingerprint Length (Bits) Key ID Reference
3 MD5(MPIs without length octets) 128 low 64 bits of RSA modulus RFC 9580, Section 5.5.4.1
4 SHA1(normalized pubkey packet) 160 last 64 bits of fingerprint RFC 9580, Section 5.5.4.2
6 SHA256(normalized pubkey packet) 256 first 64 bits of fingerprint RFC 9580, Section 5.5.4.3

OpenPGP Image Attribute Versions

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

Version Reference
1 RFC 9580, Section 5.12.1

OpenPGP Armor Header Lines

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

Armor Header Use Reference
BEGIN PGP MESSAGE Used for signed, encrypted, or compressed files. RFC 9580
BEGIN PGP PUBLIC KEY BLOCK Used for armoring public keys. RFC 9580
BEGIN PGP PRIVATE KEY BLOCK Used for armoring private keys. RFC 9580
BEGIN PGP SIGNATURE Used for detached signatures, OpenPGP/MIME signatures, and cleartext signatures. RFC 9580

OpenPGP Armor Header Keys

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

Key Summary Reference
Version Implementation information RFC 9580, Section 6.2.2.1
Comment Arbitrary text RFC 9580, Section 6.2.2.2
Hash Hash algorithms used in some v4 cleartext signed messages RFC 9580, Section 6.2.2.3
Charset Character set RFC 9580, Section 6.2.2.4

OpenPGP ECC Curve OIDs and Usage

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Note

When a new elliptic curve is registered for use with OpenPGP, it should also be added to the "OpenPGP ECC Curve-specific Wire Formats" registry. If it is used for ECDH, also add it to the "OpenPGP ECDH KDF and KEK Parameters" registry.

Available Formats

ASN.1 Object Identifier OID Len Curve OID Octets Curve Name Usage Field Size (fsize) Reference
1.2.840.10045.3.1.7 8 2A 86 48 CE 3D 03 01 07 NIST P-256 ECDSA, ECDH 32 RFC 9580
1.3.132.0.34 5 2B 81 04 00 22 NIST P-384 ECDSA, ECDH 48 RFC 9580
1.3.132.0.35 5 2B 81 04 00 23 NIST P-521 ECDSA, ECDH 66 RFC 9580
1.3.36.3.3.2.8.1.1.7 9 2B 24 03 03 02 08 01 01 07 brainpoolP256r1 ECDSA, ECDH 32 RFC 9580
1.3.36.3.3.2.8.1.1.11 9 2B 24 03 03 02 08 01 01 0B brainpoolP384r1 ECDSA, ECDH 48 RFC 9580
1.3.36.3.3.2.8.1.1.13 9 2B 24 03 03 02 08 01 01 0D brainpoolP512r1 ECDSA, ECDH 64 RFC 9580
1.3.6.1.4.1.11591.15.1 9 2B 06 01 04 01 DA 47 0F 01 Ed25519Legacy EdDSALegacy 32 RFC 9580
1.3.6.1.4.1.3029.1.5.1 10 2B 06 01 04 01 97 55 01 05 01 Curve25519Legacy ECDH 32 RFC 9580

OpenPGP ECC Curve-Specific Wire Formats

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

Curve ECDH Point Format ECDH Secret Key MPI EdDSA Secret Key MPI EdDSA Signature first MPI EdDSA Signature second MPI Reference
NIST P-256 SEC1 integer N/A N/A N/A RFC 9580
NIST P-384 SEC1 integer N/A N/A N/A RFC 9580
NIST P-521 SEC1 integer N/A N/A N/A RFC 9580
brainpoolP256r1 SEC1 integer N/A N/A N/A RFC 9580
brainpoolP384r1 SEC1 integer N/A N/A N/A RFC 9580
brainpoolP512r1 SEC1 integer N/A N/A N/A RFC 9580
Ed25519Legacy N/A N/A 32 octets of secret 32 octets of R 32 octets of S RFC 9580
Curve25519Legacy prefixed native integer RFC 9580, Section 5.5.5.6.1.1 N/A N/A N/A RFC 9580

OpenPGP Hash Algorithm Identifiers for RSA Signatures' Use of EMSA-PKCS1-v1_5 Padding

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

Hash Algorithm OID Full Hash Prefix Reference
MD5 1.2.840.113549.2.5 0x30, 0x20, 0x30, 0x0C, 0x06, 0x08, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x02, 0x05, 0x05, 0x00, 0x04, 0x10 RFC 9580
SHA-1 1.3.14.3.2.26 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0x04, 0x14 RFC 9580
RIPEMD-160 1.3.36.3.2.1 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x24, 0x03, 0x02, 0x01, 0x05, 0x00, 0x04, 0x14 RFC 9580
SHA2-256 2.16.840.1.101.3.4.2.1 0x30, 0x31, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20 RFC 9580
SHA2-384 2.16.840.1.101.3.4.2.2 0x30, 0x41, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05, 0x00, 0x04, 0x30 RFC 9580
SHA2-512 2.16.840.1.101.3.4.2.3 0x30, 0x51, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05, 0x00, 0x04, 0x40 RFC 9580
SHA2-224 2.16.840.1.101.3.4.2.4 0x30, 0x2D, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04, 0x05, 0x00, 0x04, 0x1C RFC 9580
SHA3-256 2.16.840.1.101.3.4.2.8 0x30, 0x31, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x08, 0x05, 0x00, 0x04, 0x20 RFC 9580
SHA3-512 2.16.840.1.101.3.4.2.10 0x30, 0x51, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x0a, 0x05, 0x00, 0x04, 0x40 RFC 9580

OpenPGP AEAD Algorithms

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

ID Name Nonce Length (Octets) Authentication Tag Length (Octets) Reference
0 Reserved RFC 9580
1 EAX EAX 16 16 RFC 9580
2 OCB RFC 7253 15 16 RFC 9580
3 GCM SP800-38D 12 16 RFC 9580
4-99 Unassigned
100-110 Private or Experimental Use RFC 9580
111-255 Unassigned

OpenPGP Encrypted Message Packet Versions

Registration Procedure(s)

  • RFC Required

Reference

Note

When a new version of SEIPD, PKESK, or SKESK are defined, consider also adding a corresponding flag to the "OpenPGP Features Flags" registry.

Available Formats

Version of Encrypted Data Payload Version of Preceding Symmetric Key ESK (If Any) Version of Preceding Public Key ESK (If Any) Generate? Reference
SED RFC 9580, Section 5.7 - v2 PKESK RFC 2440 No RFC 9580
SED RFC 9580, Section 5.7 v4 SKESK RFC 9580, Section 5.3.1 v3 PKESK RFC 9580, Section 5.1.1 No RFC 9580
v1 SEIPD RFC 9580, Section 5.13.1 v4 SKESK RFC 9580, Section 5.3.1 v3 PKESK RFC 9580, Section 5.1.1 Yes RFC 9580
v2 SEIPD RFC 9580, Section 5.13.2 v6 SKESK RFC 9580, Section 5.3.2 v6 PKESK RFC 9580, Section 5.1.2 Yes RFC 9580

OpenPGP Key and Signature Versions

Registration Procedure(s)

  • RFC Required

Reference

Note

When a new key version is defined, the "OpenPGP Key IDs and Fingerprints" registry should also be updated.

Available Formats


OpenPGP Elliptic Curve Point Wire Formats

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

Name Wire Format Reference
SEC1 0x04 || x || y RFC 9580, Section 11.2.1
Prefixed native 0x40 || native RFC 9580, Section 11.2.2

OpenPGP Elliptic Curve Scalar Encodings

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

Type Description Reference
integer An integer encoded in big-endian format as a standard OpenPGP MPI RFC 9580, Section 3.2
octet string An octet string of fixed length that may be shorter on the wire due to leading zeros being stripped by the MPI encoding and may need to be zero-padded before use RFC 9580, Section 11.3.1
prefixed N octets An octet string of fixed length N, prefixed with octet 0x40 to ensure no leading zero octet RFC 9580, Section 11.3.2

OpenPGP ECDH KDF and KEK Parameters

Registration Procedure(s)

  • Specification Required

Expert(s)

  • Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer

Reference

Available Formats

Curve Hash Algorithm Symmetric Algorithm Reference
NIST P-256 SHA2-256 AES-128 RFC 9580
NIST P-384 SHA2-384 AES-192 RFC 9580
NIST P-521 SHA2-512 AES-256 RFC 9580
brainpoolP256r1 SHA2-256 AES-128 RFC 9580
brainpoolP384r1 SHA2-384 AES-192 RFC 9580
brainpoolP512r1 SHA2-512 AES-256 RFC 9580
Curve25519Legacy SHA2-256 AES-128 RFC 9580