ECDSA Quantum-vulnerable Renamed import 125 places See details
JOSE algorithm declared in configuration
An `alg` value in JSON or YAML. `none` is reported as a critical defect; HS* is an HMAC and is not quantum-vulnerable; RS*, PS*, ES* and EdDSA are.
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.
-
lib/consts/jwa.js:5
'ES256', 'ES384', 'ES512', -
lib/helpers/defaults.js:3432
'ES256', -
lib/helpers/defaults.js:3455
idTokenSigningAlgValues: ['RS256', 'PS256', 'ES256', 'Ed25519', 'EdDSA'], -
lib/helpers/defaults.js:3479
'ES256', -
lib/helpers/defaults.js:3502
userinfoSigningAlgValues: ['RS256', 'PS256', 'ES256', 'Ed25519', 'EdDSA'], -
lib/helpers/defaults.js:3525
'ES256', -
lib/helpers/defaults.js:3551
'ES256', -
lib/helpers/defaults.js:3820
dPoPSigningAlgValues: ['ES256', 'Ed25519', 'EdDSA'], -
lib/helpers/defaults.js:3839
attestSigningAlgValues: ['ES256', 'Ed25519', 'EdDSA'], -
lib/helpers/initialize_keystore.js:61
available = ['ES256']; -
lib/helpers/initialize_keystore.js:64
available = ['ES384']; -
lib/helpers/initialize_keystore.js:67
available = ['ES512']; -
lib/helpers/keystore.js:113
case 'ES256': return 'P-256'; -
lib/helpers/keystore.js:114
case 'ES384': return 'P-384'; -
lib/helpers/keystore.js:115
case 'ES512': return 'P-521'; -
lib/models/id_token.js:17
case 'ES256': -
lib/models/id_token.js:22
case 'ES384': -
lib/models/id_token.js:27
case 'ES512': -
test/ciba/ciba.config.js:105
test path
backchannel_authentication_request_signing_alg: 'ES256', -
test/ciba/ciba.test.js:931
test path
const { privateKey, publicKey } = await generateKeyPair('ES256'); -
test/ciba/ciba.test.js:946
test path
}).setProtectedHeader({ alg: 'ES256' }) -
test/ciba/ciba.test.js:963
test path
const { privateKey } = await generateKeyPair('ES256'); -
test/ciba/ciba.test.js:972
test path
}).setProtectedHeader({ alg: 'ES256' }) -
test/ciba/ciba.test.js:997
test path
const { privateKey } = await generateKeyPair('ES256'); -
test/ciba/ciba.test.js:1006
test path
}).setProtectedHeader({ alg: 'ES256' }) -
test/ciba/ciba.test.js:1031
test path
const { privateKey } = await generateKeyPair('ES256'); -
test/ciba/ciba.test.js:1040
test path
}).setProtectedHeader({ alg: 'ES256' }) -
test/ciba/ciba.test.js:1065
test path
const { privateKey } = await generateKeyPair('ES256'); -
test/ciba/ciba.test.js:1074
test path
}).setProtectedHeader({ alg: 'ES256' }) -
test/client_auth/client_auth.test.js:190
test path
'ES256', -
test/client_auth/client_auth.test.js:191
test path
'ES384', -
test/client_auth/client_auth.test.js:192
test path
'ES512', -
test/client_auth/client_auth.test.js:223
test path
'ES256', -
test/client_auth/client_auth.test.js:224
test path
'ES384', -
test/client_auth/client_auth.test.js:225
test path
'ES512', -
test/configuration/client_metadata.test.js:687
test path
'ES256', -
test/configuration/client_metadata.test.js:688
test path
'ES384', -
test/configuration/client_metadata.test.js:689
test path
'ES512', -
test/configuration/client_metadata.test.js:1650
test path
'ES256', -
test/configuration/client_metadata.test.js:1651
test path
'ES384', -
test/configuration/client_metadata.test.js:1652
test path
'ES512', -
test/configuration/client_metadata.test.js:1873
test path
for (const alg of ['RS256', 'PS384', 'ES512', 'Ed25519', 'EdDSA', ...pqc]) { -
test/configuration/client_metadata.test.js:2152
test path
const supported = ['PS256', 'ES256', 'RS256']; -
test/configuration/client_metadata.test.js:2156
test path
id_token_signing_alg_values_supported: ['PS256', 'RS256', 'ES256'], -
test/configuration/client_metadata.test.js:2162
test path
rejects(this.title, ['ES256'], `${this.title} must include the value of provided id_token_signed_response_alg`, { -
test/configuration/client_metadata.test.js:2166
test path
rejects(this.title, ['ES256'], `${this.title} includes no supported values`, undefined, { -
test/configuration/keystore_configuration.test.js:66
test path
generateKeyPair('ES256', { extractable: true }), -
test/custom_grants/custom_grants.config.js:10
test path
config.enabledJWA.dPoPSigningAlgValues = ['ES256']; -
test/custom_grants/grant_implementations.test.js:94
test path
.setProtectedHeader({ alg: 'ES256' }) -
test/custom_grants/grant_implementations.test.js:104
test path
async function signClaims(privateKey, claims, alg = 'ES256') { -
test/custom_grants/grant_implementations.test.js:170
test path
alg: 'ES256', -
test/custom_grants/grant_implementations.test.js:183
test path
this.jwtKeyPair = await generateKeyPair('ES256'); -
test/custom_grants/grant_implementations.test.js:184
test path
this.otherKeyPair = await generateKeyPair('ES256'); -
test/custom_grants/grant_implementations.test.js:225
test path
{ algorithms: ['ES256'], key: this.jwtKeyPair.publicKey }, -
test/custom_grants/grant_implementations.test.js:249
test path
const keyPair = await generateKeyPair('ES256', { extractable: true }); -
test/custom_grants/grant_implementations.test.js:752
test path
const es384 = await generateKeyPair('ES384'); -
test/custom_grants/grant_implementations.test.js:760
test path
}, 'ES384'), -
test/custom_grants/grants/jwt_bearer.js:57
test path
algorithms = ['ES256'], -
test/dpop/dpop.config.js:7
test path
config.enabledJWA.dPoPSigningAlgValues = ['ES256', 'PS256']; -
test/dpop/dpop.test.js:27
test path
}).setProtectedHeader({ alg: 'ES256', typ: 'dpop+jwt', jwk: await exportJWK(keypair.publicKey) }) -
test/dpop/dpop.test.js:38
test path
this.keypair = await generateKeyPair('ES256', { extractable: true }); -
test/dpop/dpop.test.js:47
test path
expect(response.body).to.have.deep.property('dpop_signing_alg_values_supported', ['ES256', 'PS256']); -
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/dpop/dpop.test.js:377
test path
.set('DPoP', await DPoP(await generateKeyPair('ES256', { extractable: true }), `${this.provider.issuer}${this.suitePath('/me')}`, 'GET', undefined, token)) -
test/dpop/dpop.test.js:386
test path
.set('DPoP', await DPoP(await generateKeyPair('ES256', { extractable: true }), `${this.provider.issuer}${this.suitePath('/me')}`, 'GET', undefined, dpop)) -
test/dpop/dpop.test.js:797
test path
.set('DPoP', await DPoP(await generateKeyPair('ES256', { extractable: true }), `${this.provider.issuer}${this.suitePath('/token')}`, 'POST')) -
test/dpop/dpop.test.js:971
test path
.set('DPoP', await DPoP(await generateKeyPair('ES256', { extractable: true }), `${this.provider.issuer}${this.suitePath('/token')}`, 'POST')) -
test/dpop/dpop.test.js:982
test path
await generateKeyPair('ES256', { extractable: true }), -
test/external_signing/external_signing.config.js:103
test path
id_token_signed_response_alg: 'ES256', -
test/external_signing/external_signing.config.js:119
test path
id_token_signed_response_alg: 'ES384', -
test/external_signing/external_signing.test.js:40
test path
expect(body.id_token_signing_alg_values_supported).to.include('ES384'); -
test/fapi/fapi-final.config.js:10
test path
export const keypair = await generateKeyPair('ES256'); -
test/fapi/fapi-final.config.js:27
test path
requestObjectSigningAlgValues: ['ES256'], -
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.config.js:10
test path
export const keypair = await generateKeyPair('ES256'); -
test/fapi/fapi2.config.js:26
test path
requestObjectSigningAlgValues: ['ES256'], -
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/jwt/jsonwebtoken.test.js:102
test path
const { privateKey, publicKey } = await generateKeyPair('ES256'); -
test/jwt/jsonwebtoken.test.js:104
test path
return JWT.sign({ data: true }, privateKey, 'ES256') -
test/jwt/jsonwebtoken.test.js:107
test path
expect(decoded.header).to.have.property('alg', 'ES256'); -
test/keys.js:14
test path
generate('ES256'), -
test/openid4vci/openid4vci.config.js:11
test path
export const attesterKeypair = await generateKeyPair('ES256', { extractable: true }); -
test/openid4vci/openid4vci.config.js:17
test path
config.enabledJWA.dPoPSigningAlgValues = ['ES256']; -
test/openid4vci/openid4vci.config.js:93
test path
proof_signing_alg_values_supported: ['ES256'], -
test/openid4vci/openid4vci.config.js:104
test path
proof_signing_alg_values_supported: ['ES256'], -
test/openid4vci/openid4vci.config.js:128
test path
proof_signing_alg_values_supported: ['ES256'], -
test/openid4vci/openid4vci.config.js:139
test path
proof_signing_alg_values_supported: ['ES256'], -
test/openid4vci/openid4vci.test.js:35
test path
alg = 'ES256', -
test/openid4vci/openid4vci.test.js:77
test path
alg = 'ES256', -
test/openid4vci/openid4vci.test.js:114
test path
.setProtectedHeader({ alg: 'ES256', typ: 'dpop+jwt', jwk: await exportJWK(keypair.publicKey) }) -
test/openid4vci/openid4vci.test.js:133
test path
proof_signing_alg_values_supported: ['ES256'], -
test/openid4vci/openid4vci.test.js:181
test path
proof_signing_alg_values_supported: ['ES256'], -
test/openid4vci/openid4vci.test.js:276
test path
proof_signing_alg_values_supported: ['ES256'], -
test/openid4vci/openid4vci.test.js:302
test path
proof_signing_alg_values_supported: ['ES256'], -
test/openid4vci/openid4vci.test.js:330
test path
proof_signing_alg_values_supported: ['ES256'], -
test/openid4vci/openid4vci.test.js:358
test path
proof_signing_alg_values_supported: ['ES256'], -
test/openid4vci/openid4vci.test.js:496
test path
this.keypair = await generateKeyPair('ES256', { extractable: true }); -
test/openid4vci/openid4vci.test.js:498
test path
this.otherKeypair = await generateKeyPair('ES256', { extractable: true }); -
test/openid4vci/openid4vci.test.js:730
test path
.expect('WWW-Authenticate', /algs="ES256"/); -
test/openid4vci/openid4vci.test.js:1461
test path
const thirdKeypair = await generateKeyPair('ES256', { extractable: true }); -
test/openid4vci/openid4vci.test.js:1660
test path
const p384 = await generateKeyPair('ES384', { extractable: true }); -
test/openid4vci/openid4vci.test.js:1662
test path
alg: 'ES384', -
test/openid4vci/openid4vci.test.js:1766
test path
const wrongKey = await generateKeyPair('ES256', { extractable: true }); -
test/openid4vci/openid4vci.test.js:2244
test path
const wrongKey = await generateKeyPair('ES256', { extractable: true }); -
test/openid4vci/openid4vci.test.js:2268
test path
const p384 = await generateKeyPair('ES384', { extractable: true }); -
test/openid4vci/openid4vci.test.js:2272
test path
alg: 'ES384', -
test/openid4vci/pre_authorized_code.test.js:191
test path
const keypair = await generateKeyPair('ES256', { extractable: true }); -
test/openid4vci/pre_authorized_code.test.js:194
test path
alg: 'ES256',