Interface
Signer interface decouples the state machine from any particular key management
backend. The state machine calls Sign exactly once per poll close, with the canonical
tally payload:
PublicKeyDER() are stored in types.Tally for independent
verification.
Managed signing posture
- Key type:
ECC_NIST_P256asymmetric key, suitable for the shared managed signing boundary and FIPS 140-3 validated module deployments - In the preferred deployment posture, AWS KMS is paired with Azure Managed HSM as the external or attested high-assurance boundary
- Every
Signcall is CloudTrail-audited — immutable signing history - Public key is cached at construction time; KMS is not called for
PublicKeyDER() kms.Signer.VerifyDERprovides local verification without KMS (useful for auditors)
app.Config.KMSKeyID. Leave it empty in local
development; the state machine falls back to a non-production stub.
Bringing your own signer
Implement the two-method interface to plug in any backend:state.State via: