Certificates

A DAT certificate expresses the time ranges, algorithms, and keys required to issue and verify tokens as a single string.

cid
uint64
.
start
uint64
.
duration
uint64
.
ttl
uint64
.
sig-alg
name
.
crypto-alg
name
.
sig-key
Base64Url
.
crypto-key
Base64Url
A certificate also consists of dot-separated ASCII fields in a fixed order.
text
cid.start.duration.ttl.sig-alg.crypto-alg.sig-key.crypto-key

Time ranges

  • A certificate can issue DATs from start through start + duration, including both endpoints.
  • An issued DAT is valid for ttl from its issuance time.
  • The certificate is required for verification through start + duration + ttl. It remains verifiable at that exact time.

Deleting a certificate as soon as its issuance period ends makes it impossible to verify DATs that have already been issued. Managers and CMS treat issuability and verifiability separately.

Certificate IDs and key rotation

The cid is the public contract identifying a key and its time ranges. Never overwrite an existing cid with different keys. To rotate keys, create a new certificate with a new cid. Services synchronize the new certificate in advance and remove the old one only after every DAT it issued has expired.

Signature algorithms

NamePurposeVerify-only certificate
HMAC-SHA256-MFSHMAC SHA-256Not supported
HMAC-SHA384-MFSHMAC SHA-384Not supported
HMAC-SHA512-MFSHMAC SHA-512Not supported
ECDSA-P256ECDSA P-256Supported
ECDSA-P384ECDSA P-384Supported
ECDSA-P521ECDSA P-521Supported

HMAC signs and verifies with the same key, so giving that key to a verifying server also grants issuance authority. Use ECDSA and verify-only certificates in environments where issuance authority must be separated.

Encryption algorithms

NameKey
IV-AES128-GCMAES-128
IV-AES256-GCMAES-256

Algorithm names are part of the wire contract. Do not replace them with JWT aliases.

Full and verify-only certificates

A full ECDSA certificate includes the private key required for signing. A verify-only certificate retains only the ECDSA public key, but keeps the AES key required to decrypt secure. A verify-only service can therefore verify and decrypt DATs, but cannot issue new ones.