Cryptographic Algorithms
Signing Algorithms
This section lists all required signing algorithms that need to be supported and are commonly used by other parts of the technical specification.
ECDSA using P-256 and SHA-256
Elliptic Curve Digital Signature Algorithm (opens in a new tab) (ECDSA) using Curve P-256 (opens in a new tab) (D.2.2) and SHA-256 (opens in a new tab) is the most commonly used signing algorithms within Company Passport and MUST be supported.
ECDSA using P-256 and SHA-256 is NIST approved, and is a generally well-supported signing algorithm in Hardware Security Modules (HSM) and on-device secure enclaves. on iOS (opens in a new tab) it is the only supported hardware-backed signing algorithm.
ECDSA using P-256 and SHA-256 is registered using alg
value ES256
(opens in a new tab) and crv
value P-256
(opens in a new tab) of the JWK in the JSON Web Algorithms (JWA) specification. It can also be expressed with object identifiers (OID) 1.2.840.10045.4.3.2
(opens in a new tab) for ECDSA with SHA-256 and 1.2.840.10045.3.1.7
(opens in a new tab) for Curve P-256.
Hashing Algorithms
This section lists all required hashing algorithms that need to be supported and are commonly used by other parts of the technical specification.
SHA-256
SHA-256 (opens in a new tab) is the most commonly used hashing algorithm across Attestation Formats, Issuance Protocols and Verification Protocols and MUST be supported.
SHA-256 is registered using alg
value sha-256
(opens in a new tab) in RFC 6920.
Additional requirements
Additional requirements on cryptographic algorithms may be defined by specifications required in Company Passport, and MUST be supported in-line with the requirements set forth by those specifications.
ISO/IEC 18013-5 mDL Attestation Format
The ISO/IEC 18013-5 mDL Attestation Format adds additional requirements on cryptographic algorithms that MAY need to be supported, depending on the Cipher Suite used:
- Hashing Algorithms: SHA-384 (opens in a new tab) and SHA-512 (opens in a new tab)
- Signing Algorithms: ES384 (opens in a new tab) (ECDSA with SHA-384), ES512 (opens in a new tab) (ECDSA with SHA-512), and EdDSA (opens in a new tab)
- Elliptic Curves: Curve P-384 (opens in a new tab), Curve P-521 (opens in a new tab), X25519 (opens in a new tab), X448 (opens in a new tab), Ed25519 (opens in a new tab), Ed448 (opens in a new tab), brainpoolP256r1 (opens in a new tab), brainpoolP320r1 (opens in a new tab), brainpoolP384r1 (opens in a new tab), brainpoolP512r1 (opens in a new tab),