OpenPGP String-to-Key (S2K) Types
Registration Procedure(s)
- Specification Required
Expert(s)
- Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer
Reference
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
Available Formats
OpenPGP Signature Subpacket Types
Registration Procedure(s)
- Specification Required
Expert(s)
- Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer
Reference
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
Available Formats
OpenPGP Secret Key Encryption (S2K Usage Octet)
Registration Procedure(s)
- Specification Required
Expert(s)
- Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer
Reference
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
Available Formats
OpenPGP Encrypted Message Packet Versions
Registration Procedure(s)
- RFC Required
Reference
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
Note
When a new key version is defined, the "OpenPGP Key IDs and Fingerprints" registry should also be updated.
Available Formats
| Signing Key Version | Signature Packet Version | OPS Packet Version | Generate? | Reference |
|---|---|---|---|---|
| 3 RFC 9580, Section 5.5.2.1 | 3 RFC 9580, Section 5.2.2 | 3 RFC 9580, Section 5.4 | No | RFC 9580 |
| 4 RFC 9580, Section 5.5.2.2 | 3 RFC 9580, Section 5.2.2 | 3 RFC 9580, Section 5.4 | No | RFC 9580 |
| 4 RFC 9580, Section 5.5.2.2 | 4 RFC 9580, Section 5.2.3 | 3 RFC 9580, Section 5.4 | Yes | RFC 9580 |
| 6 RFC 9580, Section 5.5.2.3 | 6 RFC 9580, Section 5.2.3 | 6 RFC 9580, Section 5.4 | Yes | RFC 9580 |
OpenPGP Elliptic Curve Point Wire Formats
Registration Procedure(s)
- Specification Required
Expert(s)
- Daniel Kahn Gillmor, Andrew Gallagher, Heiko Schäfer
Reference
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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
- RFC 9580: OpenPGP
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 |