> ## Documentation Index
> Fetch the complete documentation index at: https://docs.truthlocks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Signing algorithms and key custody

> Managed key generation, verification support, signature encoding and rotation limits.

Revision: 2026-10-13.

## Choose a supported operation

Algorithm names identify a cryptographic operation. They do not mean every key provider can generate every kind of key.

| Algorithm | Managed generation on Truthlocks | Verification implementation |
| - | - | - |
| Ed25519 (`EdDSA` alias) | Yes | Ed25519 |
| ES256 | Yes | P-256 and SHA-256 |
| ES384 | Yes | P-384 and SHA-384 |
| ES512 | No | P-521 and SHA-512 |
| RS256 | Yes | RSA PKCS#1 v1.5 and SHA-256 |
| RS384 | No | RSA PKCS#1 v1.5 and SHA-384 |
| RS512 | Yes | RSA PKCS#1 v1.5 and SHA-512 |
| PS256 | Yes | RSA-PSS and SHA-256 |
| PS384 | No | RSA-PSS and SHA-384 |
| PS512 | Yes | RSA-PSS and SHA-512 |

Managed generation uses the supported [Google Cloud KMS algorithms](https://docs.cloud.google.com/kms/docs/algorithms). Requests for unsupported managed algorithms are rejected; the service must not relabel another algorithm to satisfy the request. Verification support does not provide a private signing key or enable a new issuance provider.

## Keys and encoding

Use `provider: "KMS"` to generate a dedicated managed issuer key. New issuer keys do not reuse the shared historical platform key. Existing records keep their original key identifiers; replacing a key does not rewrite their signatures.

Public-key registration takes base64url-encoded **DER SubjectPublicKeyInfo**. Registering a public key alone does not allow Truthlocks to mint with its private key. The mint endpoint does not ingest externally generated signatures.

Payloads and signatures use base64url without padding. ECDSA signatures in Truthlocks records use **ASN.1 DER**, not the fixed-width concatenation used in JWS. RSA-PSS uses a salt length equal to the digest length. New software RSA signing requires at least 3072 bits; verification retains support for registered RSA public keys of at least 2048 bits. The ECDSA curve must match the algorithm. See the algorithm definitions in [RFC 7518](https://www.rfc-editor.org/rfc/rfc7518.html).

## Verify current state

Online verification resolves the registered record's status, issuer and key. Supplying an inline envelope cannot override revocation or substitute another issuer. Original signed bytes are still required for a successful signature check. Offline verification cannot establish the latest online revocation status by itself.

Use the [signed record specification](/enterprise/signed-records) for expiry and evidence semantics. Lost historical private keys cannot be recreated, and missing historical public keys cannot be guessed. A cryptographic algorithm test does not by itself establish HSM certification, compliance certification or a completed key-rotation exercise.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.