Skip to content

Add ML-DSA certificate generation (--mldsa flag) using Go 1.27 crypto/mldsa #669

Description

@netanmangal

France's ANSSI will stop certifying security products without post-quantum cryptography starting in 2027 - the first hard regulatory deadline of its kind globally. Additional mandates: US NSA CNSA 2.0 (2027), NIST IR 8547 (deprecation by 2030, disallowed by 2035), EU critical infrastructure (2030).

Summary

mkcert currently supports RSA and ECDSA certificates. With Go 1.27 shipping crypto/mldsa (FIPS 204) with full crypto/x509 ML-DSA support, mkcert could add a --mldsa flag (parallel to the existing --ecdsa flag) for generating locally-trusted ML-DSA development certificates.

This would make mkcert the easiest way for any developer to create PQC certificates for local testing.

Proposed API

# Generate ML-DSA root CA + leaf certificate
mkcert --mldsa localhost 127.0.0.1 ::1

# Generate ML-DSA root CA only
mkcert --mldsa --install

Context

  • Go 1.27's crypto/mldsa proposal is Accepted with crypto/x509 ML-DSA signing support
  • age v1.3.0 already shipped PQC (hybrid ML-KEM-768)
  • Microsoft AD CS shipped ML-DSA certificates (GA, May 2026)
  • AWS Private CA shipped PQC certificates (GA, November 2025)

Implementation Notes

The change would be modest — a new branch in generateKey() (cert.go) alongside the existing ECDSA and RSA paths. Go 1.27's crypto/x509 handles ML-DSA certificate creation natively.

I'm aware of the maintenance discussion in #664 and am happy to contribute the implementation if this is something you'd accept.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions