Mirror ships no FIPS 140-validated cryptographic module and claims no validation. This page says which algorithms Mirror uses, which module performs them in each place, and what a bank does to put every key operation inside a module it has already validated.
The algorithms: approved ones only#
| Algorithm | Used for | Standard |
|---|---|---|
| ECDSA P-256 with SHA-256 | Signing legs, verdicts, governance events, logins, attestations, deliveries | FIPS 186-5 |
| SHA-256 | Commitments, digests, key ids | FIPS 180-4 |
| HMAC-SHA-256 | Per-shipment salts derived from the corridor secret | FIPS 198-1 |
| ECDH P-256 | Optional pairwise corridor secrets | NIST SP 800-56A Rev. 3 |
There are no proprietary ciphers, no custom constructions and no zero-knowledge proofs; the ZK proof is commissioned, not built. The cryptographic bill of materials is signed at /cbom.
The module, place by place#
| Where | What performs the operation | FIPS position |
|---|---|---|
The bander, corridor secret and member key in the bank's HSM (--custody) | The bank's own HSM or KMS, through the bank's own tool | The bank's module and the bank's validation. This is the recommended production posture. |
| The bander, key files | Node.js and the OpenSSL it is built with | Validated only if that Node build runs with an OpenSSL 3 FIPS provider that is on a validation certificate, started with --force-fips. mirror-bander fips reports the mode of the running process and exits 0 only in FIPS mode. |
| The hosted operator (Cloudflare Worker) | The Workers runtime's cryptography | No FIPS claim is made for it. The operator holds no corridor secret and no member key; it signs verdicts with its own key and compares commitments. |
| The browser console | The browser's WebCrypto | No FIPS claim. The console is for demonstration and verification, not production key custody. |
What a bank does#
- Keep the corridor secret and the member signing key in its HSM. The ceremony is in custody.
- Where the bander must use key files, for example in a pilot, run it on a Node build with the FIPS provider, and check with
mirror-bander fips. - Verify the operator's signatures with the bank's own validated module if its policy requires it. Verification is ES256 over canonical JSON (SPEC §8.2) and needs nothing from Mirror.
What this page does not claim#
- That any Mirror artefact is FIPS-validated.
- That the hosted operator runs in FIPS mode.
- That a key file on disk meets any FIPS requirement.
If a procurement questionnaire asks "is the product FIPS 140-3 validated?", the accurate answer is no. The accurate follow-up is: every key operation can run inside the bank's own validated HSM, and the algorithms are approved.