Cryptography / Key-Handling / Secret-Management DSLs Family Index
type: language-family-index family: cryptography-keys languages_catalogued: 32 tags: [language-reference, family-index, cryptography-keys, openpgp, x509, pkcs, pkcs11, kms, hsm, sops, age, vault, sigstore, slsa, in-toto, tuf, kmip, tpm]
Cryptography / Key-Handling / Secret-Management — Family Index
Family overview
This family catalogues the textual (and a few binary-but-DSL-shaped) languages used to describe cryptographic material itself: how keys, certificates, encrypted payloads, secret bundles, HSM operations, and key-management policies are represented, exchanged, and governed. It sits one layer below the identity-auth-policy family — authorization DSLs decide who can do what, but the formats here decide what the cryptographic object actually is. The defining problem these languages all confront is the algorithm-agility / longevity tension: cryptographic primitives have a half-life of 10–25 years, but the formats that wrap them (PEM blocks, X.509 ASN.1, OpenPGP packets, PKCS#12 bundles) must persist across multiple generations of primitives without re-issuing every certificate, keyring, or signed message. The result is a layered cake of structure (DER/ASN.1, PEM armouring, packet sequences, CBOR) on top of primitive identifiers (OIDs, named curves, JOSE alg strings, OpenPGP algorithm IDs) on top of raw bytes.
The 2024 watershed event is RFC 9580 (“OpenPGP”, July 2024), which obsoletes RFC 4880 (2007) and the related Camellia/ECC extensions, introducing OpenPGP v6 with new SEIPDv2 (AEAD) packets, Argon2 string-to-key, X25519/X448/Ed25519/Ed448 native packets, and a re-thought key fingerprint format. RFC 9580 split the implementer community: GnuPG and a few others backed the parallel LibrePGP draft (a less-disruptive refresh of 4880), while Sequoia, RPM/dnf, Thunderbird, ProtonMail and most of the Rust/Go ecosystem moved to RFC 9580. This is the first true fork in OpenPGP since 1998 and remains unresolved as of May 2026.
The secrets-management ecosystem matured in parallel along two axes: encrypt-at-rest tools for GitOps (Ansible Vault, SOPS, age) and dynamic-secrets brokers (HashiCorp Vault, cloud KMS). SOPS — originally a Mozilla project, donated to the CNCF Sandbox in 2023 under the getsops.io banner with current release v3.12.x (March 2026) — became the de facto GitOps secret-encryption layer, encrypting YAML/JSON/ENV files in place with per-field encryption against AWS KMS, GCP KMS, Azure Key Vault, age, or PGP recipients. age (Filippo Valsorda + Ben Cox, currently v1.3.x) is its minimalist counterpart: an explicit, X25519-based, no-options-no-knobs replacement for GPG file encryption. HashiCorp Vault (current GA 1.20.x, June 2025) is the dynamic-secrets and KMS-broker complement, with its HCL path-capabilities policy DSL as the access-control surface.
Cloud KMS policy DSLs (AWS KMS Key Policies, Azure Key Vault access policies + RBAC, GCP Cloud KMS IAM Conditions with CEL) form the largest deployed slice. Above them sit vendor-neutral abstractions: OASIS KMIP 3.0 (Committee Specification Draft, Aug 2024; public review Sept 2024) is the long-awaited refresh of the 2010-era key-management protocol, and OASIS PKCS#11 v3.2 (Committee Specification Nov 2025, succeeding v3.1 from July 2023) modernises the HSM C API with post-quantum mechanisms. Stacked above everything is the supply-chain provenance wave: TUF 6.0 (March 2025), in-toto Attestation Framework, SLSA v1.1 (with v1.2 in flight), and Sigstore — Cosign v3.0 (released 2025) with keyless signing via Fulcio + Rekor — which together aim to retire long-lived signing keys altogether for OSS distribution. Adopters in 2024–2025 include Homebrew (May 2024), PyPI (Nov 2024), Maven Central (Jan 2025), and NVIDIA NGC model signing (July 2025).
In our deep library
None of these have standalone Tier-2 deep notes — they are formats and protocols rather than general-purpose programming languages.
Cross-reference siblings:
- identity-auth-policy — JOSE family (JWS/JWE/JWA/JWK/JWKS), OAuth/OIDC, SAML, IAM JSON, Cedar, OPA Rego. JWK and JWS sit at the boundary; this note treats them as authorization-policy artefacts but they cross-list here as key representation formats.
- api-description — X.509 and KMIP have OpenAPI/Smithy-style schema infrastructure (RFC 5280’s ASN.1 module, KMIP’s normative XML/JSON/TTLV encodings).
- notation-spec — ASN.1 (the foundation under X.509, PKCS, KMIP), CBOR (under COSE/WebAuthn attestations), and the OID tree all live there as general-purpose notations.
- build-devops — SLSA, in-toto, Sigstore/Cosign signing, and TUF metadata are all CI/CD-resident artefacts.
- network-protocol-dsls — TLS 1.3 wire format, cipher-suite naming, and Mozilla SSL config recommendations.
- config-and-dsl — Ansible Vault, OpenSSL
.cnf,ssh_config/sshd_configare config-file DSLs that happen to carry secrets. - financial-regulatory / government-civictech — SBOM, supply-chain compliance, and FIPS-140 attestation flows overlap with SLSA + in-toto.
Tier 3 family table — PEM / DER / PKCS / X.509 layer
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| PEM (Privacy-Enhanced Mail) encoding | 1993 (RFC 1421); generalised as RFC 7468 (April 2015) | IETF | ASCII-armoured Base64-wrapped binary; -----BEGIN X----- … -----END X----- delimiters | Universal; RFC 7468 is the canonical “textual encodings of PKIX, PKCS, and CMS” spec | https://www.rfc-editor.org/rfc/rfc7468 |
| DER (Distinguished Encoding Rules) | 1988 (X.690, ITU-T) | ITU-T / ISO | Canonical binary encoding of ASN.1; the bytes inside every PEM block | Universal; underlies essentially every PKI format | https://www.itu.int/rec/T-REC-X.690 |
| ASN.1 modules (PKIX, PKCS) | 1984 (ASN.1); PKIX modules 1999+ | ITU-T / IETF PKIX WG | Schema language for the binary structures encoded by DER | Universal; tooling: asn1c, openssl asn1parse, dumpasn1 — see notation-spec | https://www.itu.int/rec/T-REC-X.680 |
| X.509 certificate format + RFC 5280 PKIX profile | 1988 (X.509v1); v3 in 1996; RFC 5280 in May 2008; updated by RFC 6818, RFC 8398, RFC 8399 | ITU-T / IETF PKIX | DER/ASN.1 with named extensions (BasicConstraints, KeyUsage, EKU, SAN, AIA, CRLDP, etc.) | Universal; Web PKI baseline; CA/B Forum Baseline Requirements layer on top | https://www.rfc-editor.org/rfc/rfc5280 |
| PKCS#1 (RSA Cryptography Standard) | 1991 (RSA Labs); RFC 8017 in Nov 2016 | RSA Laboratories → IETF | RSA key + signature/encryption padding formats (PSS, OAEP) | Active (RFC 8017 is current); RSA itself is being supplemented by ML-DSA / ML-KEM | https://www.rfc-editor.org/rfc/rfc8017 |
| PKCS#7 / CMS (Cryptographic Message Syntax) | 1993 (PKCS#7); RFC 5652 in Sept 2009 | RSA Labs → IETF | Signed/enveloped/digested message containers; basis for S/MIME, code signing | Active; the universal “signed blob” format | https://www.rfc-editor.org/rfc/rfc5652 |
| PKCS#8 (Private-Key Information Syntax) | 1993; RFC 5208 / 5958 | RSA Labs → IETF | Algorithm-agnostic private-key container; usually PEM-armoured as -----BEGIN PRIVATE KEY----- | Universal; default modern private-key format | https://www.rfc-editor.org/rfc/rfc5958 |
| PKCS#10 (Certification Request Syntax / CSR) | 1998; RFC 2986 in Nov 2000 | RSA Labs → IETF | The CSR format every CA consumes | Universal | https://www.rfc-editor.org/rfc/rfc2986 |
| PKCS#11 v3.2 (Cryptographic Token Interface) | 1995 v1.0; v3.0 in June 2020; v3.1 in July 2023; v3.2 Committee Spec 01 in Nov 2025 | RSA Labs → OASIS PKCS 11 TC | C API for HSMs/smart cards/TPMs; the CKM_* mechanism + CKA_* attribute namespace is itself a constrained DSL | Active; v3.2 adds PQC mechanisms (ML-DSA, ML-KEM, SLH-DSA) | https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.2/pkcs11-spec-v3.2.html |
| PKCS#12 / PFX (Personal Information Exchange) | 1996; RFC 7292 in July 2014 | RSA Labs → IETF | Encrypted container bundling private key + cert chain (.p12/.pfx) | Universal but ageing; legacy KDF (PKCS#12 v1) was retired by RFC 9579 (May 2024) recommending PBKDF2/PBMAC1 | https://www.rfc-editor.org/rfc/rfc7292 |
OpenSSL openssl.cnf / req/ca config DSL | 1998 (OpenSSL 0.9.x) | OpenSSL project | INI-flavoured config with [sections], env-var expansion, and DN templates; drives openssl req, openssl ca, openssl x509 -extfile | Universal; the de facto “how do I generate a cert” DSL | https://docs.openssl.org/master/man5/config/ |
Tier 3 family table — Email / file encryption (OpenPGP family)
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| OpenPGP (RFC 9580, “crypto refresh”) | RFC 9580 published July 2024 (obsoletes RFC 4880/5581/6637) | IETF OpenPGP WG | Packet-based binary format (ASCII-armourable); v6 keys + SEIPDv2 AEAD + Argon2 S2K + X25519/Ed25519 native | Current standard; Sequoia 2.0+, RPM/dnf, Thunderbird, ProtonMail aligned | https://www.rfc-editor.org/rfc/rfc9580.html |
| OpenPGP (RFC 4880, classic) | RFC 4880 published Nov 2007 | IETF OpenPGP WG | The 2007 message format; still the deployed baseline for two decades of keyrings | Legacy but ubiquitous; obsoleted by RFC 9580 in 2024 — most existing keys are still 4880-style | https://www.rfc-editor.org/rfc/rfc4880 |
| LibrePGP draft | Draft draft-koch-librepgp (2023–) | GnuPG team (Werner Koch) | Parallel evolution of 4880 — adopts AEAD/v5 differently than RFC 9580 | Active fork; GnuPG 2.4.x continues to track LibrePGP rather than RFC 9580; community split unresolved | https://datatracker.ietf.org/doc/draft-koch-librepgp/ |
GnuPG keyring format (pubring.kbx, trustdb.gpg) | GnuPG 1.0 (1999); KBX added in 1.4 era | Werner Koch / GnuPG | Implementation-specific on-disk container for OpenPGP secrets and trust state | Active; v2.4.x is the current GPG line | https://www.gnupg.org/documentation/manuals/gnupg/ |
OpenSSH authorized_keys / known_hosts | OpenSSH 1.0 (1999) | OpenBSD project | Line-oriented mini-DSL: optional options, key type, base64 key, comment | Universal; the file format every Unix sysadmin learns first | https://man.openbsd.org/sshd.8#AUTHORIZED_KEYS_FILE_FORMAT |
OpenSSH ssh_config / sshd_config | OpenSSH 1.0 (1999) | OpenBSD project | Newline-separated Keyword Value config DSL with Host/Match blocks | Universal; client + daemon configuration | https://man.openbsd.org/ssh_config |
| OpenSSH certificate format (non-X.509) | OpenSSH 5.4 (March 2010) | OpenBSD project | Length-prefixed wire format independent of X.509; principals, validity window, critical options, extensions | Active; Smallstep/Vault/Teleport-style SSH CAs all emit this | https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys |
Tier 3 family table — Secret management at rest
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| Ansible Vault | 2014 (Ansible 1.5) | Red Hat (Ansible) | AES-256-CTR-encrypted YAML-compatible blocks (!vault | tag) with PBKDF2 key derivation | Active; still the default secret format in Ansible playbooks | https://docs.ansible.com/ansible/latest/vault_guide/index.html |
| SOPS (Secrets OPerationS) | 2015 at Mozilla; donated to CNCF Sandbox in 2023; v3.12.2 in March 2026 | Mozilla → CNCF (getsops) | Encrypts YAML/JSON/INI/ENV files in place, per-field; multiple KMS backends (AWS/GCP/Azure KMS, age, PGP) | Very active; the de facto GitOps-secrets layer (Flux, ArgoCD integrations) | https://getsops.io/ |
| age encrypted file format | 2019 spec draft; v1.0 in March 2021; v1.3.x current (2025) | Filippo Valsorda + Ben Cox | X25519-based; explicit header with recipient stanzas; payload encrypted with ChaCha20-Poly1305 | Active; minimalist “no options” GPG replacement | https://github.com/FiloSottile/age |
age recipient strings (age1...) | 2019 with age | Filippo Valsorda | Bech32-encoded X25519 public-key identifier; pluggable backends use age1<plugin-name>... form | Active; recipient stanza format is also the user-visible identity DSL | https://age-encryption.org/v1 |
| age-plugin protocol | age 1.1 (2022) | Filippo Valsorda | Stdio-protocol DSL for backend plugins (yubikey, sss, tpm, ledger, fido2-prf, passkey) | Active; reference plugins: age-plugin-yubikey, age-plugin-tpm, age-plugin-fido2-hmac | https://github.com/FiloSottile/age/blob/main/doc/age-plugin.md |
Tier 3 family table — Cloud KMS / HSM policy
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| HashiCorp Vault policy HCL | Vault 0.1 (April 2015); HCL2 since Vault 0.10 (~2018); Vault 1.20.x current (June 2025) | HashiCorp (now IBM) | Path-capabilities DSL in HCL or JSON: path "secret/data/*" { capabilities = ["read","list"] }, with templated {{identity.entity.aliases.X.name}} blocks | Active; cross-list with identity-auth-policy | https://developer.hashicorp.com/vault/docs/concepts/policies |
| AWS KMS Key Policy JSON | AWS KMS GA (Nov 2014) | AWS | IAM-style JSON: Statement[].Effect/Principal/Action/Resource/Condition; identical shape to IAM policies but resource-attached | Active; the primary access-control surface on a CMK | https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html |
| Azure Key Vault access policies / RBAC | Key Vault GA (Jan 2016); RBAC model GA (~2021) | Microsoft Azure | Legacy: per-vault access-policy objects with keys/secrets/certificates permission verbs. Modern: Azure RBAC role definitions on the vault | Active; Microsoft now recommends RBAC over legacy access policies | https://learn.microsoft.com/en-us/azure/key-vault/general/rbac-guide |
| GCP Cloud KMS IAM Conditions (CEL) | GA 2020 | Google Cloud | IAM bindings on KeyRings/CryptoKeys with CEL condition expressions (request.time, resource.name.startsWith(...)) | Active; CEL covered in identity-auth-policy | https://cloud.google.com/iam/docs/conditions-overview |
| OASIS KMIP 3.0 | KMIP 1.0 (Oct 2010); 3.0 Committee Spec Draft Aug 23 2024, public review Sept 13 2024; expected OASIS Standard 2026 | OASIS KMIP TC | Vendor-neutral KMS protocol; TTLV/XML/JSON encodings; attribute language (Cryptographic Algorithm, Usage Mask, State) is itself a managed-object DSL | Emerging; 3.0 supersedes 2.1 (Dec 2020); adds richer attribute model and PQC support | https://docs.oasis-open.org/kmip/kmip-spec/v3.0/csd01/kmip-spec-v3.0-csd01.html |
| TPM 2.0 command + attribute DSL | TPM 2.0 first spec 2014; TPM 2.0 Library v185 in March 2026; ISO/IEC 11889:2015 | Trusted Computing Group | Command codes (TPM_CC_*), object attributes (TPMA_OBJECT_*), algorithm IDs (TPM_ALG_*); tpm2-tools CLI is the user-facing surface | Active; v185 adds Firmware-Limited Objects | https://trustedcomputinggroup.org/resource/tpm-library-specification/ |
| AD CS Certificate Template | Windows Server 2003 R2 (2005) | Microsoft | LDAP-stored template object (pKICertificateTemplate); per-template fields control issuance policy, EKU, subject construction | Active in enterprise PKI; well known after the ESC1–ESC15 escalation primitives published by SpecterOps | https://learn.microsoft.com/en-us/windows-server/identity/ad-cs/manage-certificate-templates |
| Windows DPAPI / CNG blob format | DPAPI in Windows 2000 (2000); CNG in Windows Vista (2007) | Microsoft | Opaque user/machine-scoped encrypted blobs; CNG providers expose key-storage namespace (Microsoft Software Key Storage Provider, Microsoft Smart Card Key Storage Provider) | Active; underlies LSA Secrets, EFS, browser credential stores | https://learn.microsoft.com/en-us/windows/win32/seccng/cng-portal |
Tier 3 family table — Supply-chain signatures / provenance
| Format | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| TLS 1.3 cipher suite naming | TLS 1.3 (RFC 8446, Aug 2018) | IETF TLS WG | Tiny DSL: TLS_<AEAD>_<HASH> (e.g. TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256); only 5 mandatory-to-implement suites | Universal; deliberately drastically narrower than the TLS 1.2 cipher zoo | https://www.rfc-editor.org/rfc/rfc8446#section-B.4 |
| Mozilla SSL Configuration Generator output | 2015 (ssl-config-generator) | Mozilla Foundation | Generates nginx/apache/haproxy/etc configs from {Modern, Intermediate} profile (Old retired in tool v6.0) | Active; Intermediate is the recommended default for general-purpose servers | https://ssl-config.mozilla.org/ |
| JOSE family: JWS / JWE / JWA / JWK / JWKS | RFCs 7515/7516/7517/7518/7519 (May 2015) | IETF JOSE WG | JSON-serialised crypto containers: compact/flattened/general; cross-list with identity-auth-policy | Universal | https://datatracker.ietf.org/wg/jose/about/ |
| JWK Thumbprint URI (RFC 9278) | RFC 9278 (Aug 2022) | IETF | urn:ietf:params:oauth:jwk-thumbprint:sha-256:<base64url> — compact stable JWK identifier built on RFC 7638 thumbprints | Standard; used by OAuth attestation flows, sender-constrained tokens | https://www.rfc-editor.org/rfc/rfc9278.html |
| TUF (The Update Framework) | TUF 1.0 spec 2017; TUF 6.0 released 11 March 2025 | NYU Tandon (Justin Cappos) → CNCF Graduated | Signed metadata DSL: root.json, targets.json, snapshot.json, timestamp.json with delegations; threshold-signed JSON | Active; underlies Notary v2, Sigstore root-of-trust, RubyGems, PyPI attestation distribution | https://theupdateframework.io/ |
| in-toto Attestation Framework | in-toto Spec 0.9 (2019); Attestation Framework v1.0 (2023+) | NYU / CNCF (in-toto graduated 2023) | Statement + Predicate envelope: _type=https://in-toto.io/Statement/v1, predicateType=<URI>, signed with DSSE envelope (application/vnd.dev.sigstore.bundle+json) | Active; the universal supply-chain attestation envelope | https://github.com/in-toto/attestation |
| SLSA Provenance v1.0 / v1.1 | SLSA v1.0 GA April 2023; v1.1 Approved Spec (~2024); v1.2 in flight | OpenSSF (Google-incubated) | Build-provenance predicate (https://slsa.dev/provenance/v1) carried inside in-toto Statement: buildDefinition, runDetails, externalParameters | Active; GitHub Actions, GitLab, Tekton Chains all emit it | https://slsa.dev/spec/v1.0/provenance |
| DSSE (Dead Simple Signing Envelope) | DSSE v1.0 (2021) | Secure Systems Lab → in-toto/Sigstore | JSON envelope binding payload + payloadType + signatures; replaced JWS for supply-chain use due to canonicalisation issues | Active; the underlying signature wrapper for all in-toto/SLSA/Sigstore bundles | https://github.com/secure-systems-lab/dsse |
| Sigstore Cosign signature / bundle | Cosign 1.0 (June 2022); Cosign v3.0 (2025) with bundles default-on | Sigstore (Linux Foundation) | Keyless signatures via Fulcio short-lived certs + Rekor transparency log; Cosign v3 unifies output as Sigstore bundle (.sig/.bundle) | Active; adopters in 2024–25: Homebrew (May 2024), PyPI (Nov 2024), Maven Central (Jan 2025), NVIDIA NGC (Jul 2025) | https://docs.sigstore.dev/cosign/signing/overview/ |
| gitsign / git signing format | gitsign 0.1 (2022) | Sigstore | Drop-in gpg.format = x509 git signer using Sigstore keyless OIDC flow; signature stored as PKCS#7-in-PEM | Active | https://docs.sigstore.dev/cosign/signing/gitsign/ |
Notable threads
-
RFC 9580 vs LibrePGP — the first real OpenPGP fork. From RFC 4880 (Nov 2007) to RFC 9580 (July 2024) is 17 years, during which AEAD, Argon2, Curve25519, and SHA-3 all became standard everywhere except OpenPGP. RFC 9580 finally lands all of them — SEIPDv2 with OCB/GCM/EAX, Argon2 string-to-key, v6 keys with X25519/X448/Ed25519/Ed448 native packets, and a new key-fingerprint format. The catch: GnuPG (the dominant 4880 implementation) declined to follow and instead helped author LibrePGP, a parallel less-disruptive evolution. Sequoia, RPM/dnf signing, Thunderbird, ProtonMail, and most of the Rust/Go ecosystem moved to RFC 9580; GnuPG 2.4.x continues to track LibrePGP. As of May 2026 the community remains split — interop between RFC 9580 keyrings and GnuPG can fail silently, which is the first time that has been true since 1998.
-
SOPS + age as the GitOps secret duo. The combination of
getsops/sopsv3.12.x (March 2026) andagev1.3.x — both small, focused, well-audited tools — has displaced both Ansible Vault (too coarse-grained) and Vault-in-the-loop dynamic secrets (operationally heavy) for the most common case: “I have a YAML/JSON file with a few secret fields and I want to commit it to Git.” Per-field encryption means diffs stay reviewable, age recipients can be team-rotated cheaply, and Flux/ArgoCD ship native SOPS support so the decryption happens at deploy time inside the cluster. The 2023 CNCF Sandbox donation cementedgetsopsas the canonical fork after Mozilla’s withdrawal. -
HashiCorp Vault HCL policies vs cloud KMS — the make-vs-buy axis. Vault 1.20.x (June 2025) is the IBM-stewarded current line and the dominant multi-cloud secrets+KMS broker, with its path-capability HCL DSL being a small but expressive policy language. Cloud-native shops typically pick AWS KMS / Azure Key Vault / GCP KMS instead — three non-interoperable JSON dialects (covered also in identity-auth-policy) — and accept lock-in for the operational simplicity. Vault’s value proposition is increasingly “the abstraction that hides which of the three you’re actually talking to.”
-
Sigstore + Cosign keyless signing is eating traditional GPG signing in OSS. The pattern: developer authenticates to Fulcio with an OIDC identity (GitHub/Google/Microsoft), Fulcio issues a 10-minute X.509 cert binding that identity to an ephemeral keypair, the developer signs, the signature event is logged in Rekor (a Merkle-tree transparency log), and the certificate expires. There is no long-lived signing key to lose, leak, or rotate. Cosign v3.0 (2025) made Sigstore bundles the default output format. Adoption in 2024–25 is genuinely broad: Homebrew formula signing (May 2024), PyPI’s
attestationsindex (Nov 2024), Maven Central (Jan 2025), NVIDIA’s NGC model registry (July 2025). The gap remaining is Debian/RPM ecosystem — apt-get/yum still rely on long-lived OpenPGP signing keys, althoughrpm-sequoiais the bridge for Fedora/RHEL. -
TUF + in-toto + SLSA as the supply-chain trifecta. Each layer answers a different question. TUF (6.0, March 2025) answers “how do clients securely fetch metadata about updates without trusting a single key?” via role-separated, threshold-signed JSON. in-toto (Attestation Framework, CNCF Graduated 2023) answers “how do I make verifiable claims about how an artefact was built?” via DSSE-signed Statement+Predicate envelopes. SLSA (v1.0 April 2023, v1.1 latest Approved, v1.2 in flight) answers “what does a good build provenance look like?” via the standardised
slsa.dev/provenance/v1predicate. The three compose: PyPI’s 2024 attestation rollout uses in-toto Statement typev1, SLSA-provenance predicates, distributed via TUF metadata. -
KMIP 3.0 (CSD 2024) as the long-overdue refresh. KMIP 2.1 shipped in December 2020 and was effectively the last major release before a four-year gap. KMIP 3.0 (Committee Specification Draft, 23 Aug 2024; public review 13 Sept 2024) tightens the attribute model and lays the groundwork for post-quantum mechanism registration. It remains the only vendor-neutral KMS protocol — every commercial HSM and KMS (Thales, Entrust, Utimaco, IBM, Fortanix, AWS CloudHSM-with-shim, HashiCorp Vault as a KMIP server) speaks it. Adoption lags the spec by ~3 years historically.
-
TLS 1.3 cipher-suite naming as a tiny DSL with heavy implications. TLS 1.3 deliberately gutted the cipher zoo down to five MTI suites (
TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256, plus the rarely-usedTLS_AES_128_CCM_SHA256/TLS_AES_128_CCM_8_SHA256). The naming format is itself a small DSL —TLS_<AEAD>_<HASH>— and the absence of key-exchange/signature components in the suite name (those moved tosupported_groupsandsignature_algorithmsextensions) is a deliberate decoupling that finally killed the algorithm-fragility problem of TLS 1.2’sTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256-style enumeration. Mozilla’s ssl-config-generator v6.0 dropped the “Old” profile entirely in 2024, leaving only Modern (TLS 1.3 only) and Intermediate (TLS 1.2+).
Citations
- RFC 9580 (OpenPGP, July 2024 — obsoletes RFC 4880/5581/6637): https://www.rfc-editor.org/rfc/rfc9580.html
- RFC 4880 (OpenPGP Message Format, Nov 2007, legacy): https://datatracker.ietf.org/doc/html/rfc4880
- LibrePGP draft (Werner Koch / GnuPG): https://datatracker.ietf.org/doc/draft-koch-librepgp/
- RFC 5280 (X.509 Internet PKIX profile, May 2008): https://www.rfc-editor.org/rfc/rfc5280
- RFC 7468 (Textual encodings of PKIX, PKCS, CMS — “PEM”): https://www.rfc-editor.org/rfc/rfc7468
- RFC 5652 (Cryptographic Message Syntax / CMS): https://www.rfc-editor.org/rfc/rfc5652
- RFC 8017 (PKCS#1 v2.2 / RSA): https://www.rfc-editor.org/rfc/rfc8017
- RFC 7292 (PKCS#12) + RFC 9579 (PBMAC1 in PKCS#12, May 2024): https://www.rfc-editor.org/rfc/rfc9579
- OASIS PKCS#11 v3.2 spec (CS01, Nov 2025): https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.2/pkcs11-spec-v3.2.html
- OASIS KMIP 3.0 spec (CSD01, Aug 2024): https://docs.oasis-open.org/kmip/kmip-spec/v3.0/csd01/kmip-spec-v3.0-csd01.html
- TPM 2.0 Library specifications (Trusted Computing Group): https://trustedcomputinggroup.org/resource/tpm-library-specification/
- OpenSSL configuration manual: https://docs.openssl.org/master/man5/config/
- OpenSSH
sshd_configmanual: https://man.openbsd.org/sshd_config - OpenSSH certificate format (PROTOCOL.certkeys): https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys
- SOPS (
getsops/sops) docs: https://getsops.io/docs/ - age project (FiloSottile/age): https://github.com/FiloSottile/age
- age v1 specification: https://age-encryption.org/v1
- HashiCorp Vault policies: https://developer.hashicorp.com/vault/docs/concepts/policies
- AWS KMS Key Policies: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
- Azure Key Vault RBAC guide: https://learn.microsoft.com/en-us/azure/key-vault/general/rbac-guide
- GCP Cloud KMS IAM Conditions (CEL): https://cloud.google.com/iam/docs/conditions-overview
- AD CS Certificate Templates: https://learn.microsoft.com/en-us/windows-server/identity/ad-cs/manage-certificate-templates
- RFC 8446 (TLS 1.3, including suite registry): https://www.rfc-editor.org/rfc/rfc8446
- Mozilla SSL Configuration Generator: https://ssl-config.mozilla.org/
- Mozilla Server Side TLS Recommendations: https://wiki.mozilla.org/Security/Server_Side_TLS
- RFC 9278 (JWK Thumbprint URI, Aug 2022): https://www.rfc-editor.org/rfc/rfc9278.html
- TUF (The Update Framework) home + spec: https://theupdateframework.io/
- in-toto Attestation Framework: https://github.com/in-toto/attestation
- SLSA v1.0 Provenance: https://slsa.dev/spec/v1.0/provenance
- SLSA v1.1 specification: https://slsa.dev/spec/v1.1/
- DSSE (Dead Simple Signing Envelope): https://github.com/secure-systems-lab/dsse
- Sigstore Cosign overview + v3 announcement: https://blog.sigstore.dev/cosign-3-0-available/
- Sigstore docs (Fulcio, Rekor, Cosign): https://docs.sigstore.dev/