ECDSA Quantum-vulnerable 30 places See details
JWT signed with a classical algorithm
A JOSE `alg` value. RS*, PS*, ES* and EdDSA sign with a quantum-vulnerable key; HS* is an HMAC and is not affected. `alg: 'none'` is reported as a critical defect today.
A quantum computer of sufficient size breaks this completely. It has to be replaced, not tuned. Broken by Shor's algorithm on a cryptographically relevant quantum computer.
What to do. No standardised post-quantum JOSE algorithm exists yet. Keep token lifetimes short.
-
test/ciba/ciba.test.js:921
test path
}).setProtectedHeader({ alg: 'ES256' }) -
test/ciba/ciba.test.js:947
test path
}).setProtectedHeader({ alg: 'ES256' }) -
test/ciba/ciba.test.js:981
test path
}).setProtectedHeader({ alg: 'ES256' }) -
test/ciba/ciba.test.js:1015
test path
}).setProtectedHeader({ alg: 'ES256' }) -
test/ciba/ciba.test.js:1049
test path
}).setProtectedHeader({ alg: 'ES256' }) -
test/dpop/dpop.test.js:27
test path
}).setProtectedHeader({ alg: 'ES256', typ: 'dpop+jwt', jwk: await exportJWK(keypair.publicKey) }) -
test/dpop/dpop.test.js:123
test path
alg: 'ES256', -
test/dpop/dpop.test.js:173
test path
alg: 'ES256', -
test/dpop/dpop.test.js:197
test path
alg: 'ES256', -
test/dpop/dpop.test.js:216
test path
alg: 'ES256', -
test/dpop/dpop.test.js:232
test path
.setProtectedHeader({ alg: 'ES256', typ: 'dpop+jwt', jwk: this.jwk }) -
test/dpop/dpop.test.js:246
test path
.setProtectedHeader({ alg: 'ES256', typ: 'dpop+jwt', jwk: this.jwk }) -
test/dpop/dpop.test.js:261
test path
.setProtectedHeader({ alg: 'ES256', typ: 'dpop+jwt', jwk: this.jwk }) -
test/dpop/dpop.test.js:292
test path
.setProtectedHeader({ alg: 'ES256', typ: 'dpop+jwt', jwk: this.jwk }) -
test/fapi/fapi-final.test.js:115
test path
}).setProtectedHeader({ alg: 'ES256' }).sign(keypair.privateKey); -
test/fapi/fapi-final.test.js:151
test path
}).setProtectedHeader({ alg: 'ES256' }).sign(keypair.privateKey); -
test/fapi/fapi-final.test.js:184
test path
}).setProtectedHeader({ alg: 'ES256' }).sign(keypair.privateKey); -
test/fapi/fapi-final.test.js:218
test path
}).setProtectedHeader({ alg: 'ES256' }).sign(keypair.privateKey); -
test/fapi/fapi-final.test.js:252
test path
}).setProtectedHeader({ alg: 'ES256' }).sign(keypair.privateKey); -
test/fapi/fapi2.test.js:88
test path
}).setProtectedHeader({ alg: 'ES256' }).sign(keypair.privateKey), -
test/fapi/fapi2.test.js:164
test path
}).setProtectedHeader({ alg: 'ES256' }).sign(keypair.privateKey); -
test/fapi/fapi2.test.js:195
test path
}).setProtectedHeader({ alg: 'ES256' }).sign(keypair.privateKey); -
test/fapi/fapi2.test.js:228
test path
}).setProtectedHeader({ alg: 'ES256' }).sign(keypair.privateKey); -
test/fapi/fapi2.test.js:261
test path
}).setProtectedHeader({ alg: 'ES256' }).sign(keypair.privateKey); -
test/formats/jwt.test.js:535
test path
alg: 'ES512', -
test/jwks/jwks_uri.test.js:105
test path
alg: 'ES256', -
test/openid4vci/openid4vci.test.js:93
test path
.setProtectedHeader({ alg: 'ES256', typ: 'dpop+jwt', jwk: await exportJWK(keypair.publicKey) }) -
test/openid4vci/openid4vci.test.js:1462
test path
alg: 'ES384', -
test/openid4vci/openid4vci.test.js:2030
test path
alg: 'ES384', -
test/openid4vci/pre_authorized_code.test.js:167
test path
alg: 'ES256',