From 602f3a3b2ea757baf56e2b78e7298f17b5b2e566 Mon Sep 17 00:00:00 2001 From: bourgeoa Date: Fri, 26 Dec 2025 16:36:46 +0100 Subject: [PATCH 1/2] allow ES384 and 512 --- src/algorithms/index.js | 54 ++++++++++++++++++++++++++++++++++++++--- src/jose/JWA.js | 5 ++++ 2 files changed, 55 insertions(+), 4 deletions(-) diff --git a/src/algorithms/index.js b/src/algorithms/index.js index 5dff01b..e91b742 100644 --- a/src/algorithms/index.js +++ b/src/algorithms/index.js @@ -64,8 +64,23 @@ supportedAlgorithms.define('ES256', 'sign', new ECDSA({ }, namedCurve: 'P-256' })) -//supportedAlgorithms.define('ES384', 'sign', {}) -//supportedAlgorithms.define('ES512', 'sign', {}) + +supportedAlgorithms.define('ES384', 'sign', new ECDSA({ + name: 'ECDSA', + hash: { + name: 'SHA-384' + }, + namedCurve: 'P-384' +})) + +supportedAlgorithms.define('ES512', 'sign', new ECDSA({ + name: 'ECDSA', + hash: { + name: 'SHA-512' + }, + namedCurve: 'P-521' +})) + //supportedAlgorithms.define('PS256', 'sign', {}) //supportedAlgorithms.define('PS384', 'sign', {}) //supportedAlgorithms.define('PS512', 'sign', {}) @@ -126,8 +141,23 @@ supportedAlgorithms.define('ES256', 'verify', new ECDSA({ }, namedCurve: 'P-256' })) -//supportedAlgorithms.define('ES384', 'verify', {}) -//supportedAlgorithms.define('ES512', 'verify', {}) + +supportedAlgorithms.define('ES384', 'verify', new ECDSA({ + name: 'ECDSA', + hash: { + name: 'SHA-384' + }, + namedCurve: 'P-384' +})) + +supportedAlgorithms.define('ES512', 'verify', new ECDSA({ + name: 'ECDSA', + hash: { + name: 'SHA-512' + }, + namedCurve: 'P-521' +})) + //supportedAlgorithms.define('PS256', 'verify', {}) //supportedAlgorithms.define('PS384', 'verify', {}) //supportedAlgorithms.define('PS512', 'verify', {}) @@ -165,6 +195,22 @@ supportedAlgorithms.define('ES256', 'importKey', new ECDSA({ namedCurve: 'P-256' })) +supportedAlgorithms.define('ES384', 'importKey', new ECDSA({ + name: 'ECDSA', + hash: { + name: 'SHA-384' + }, + namedCurve: 'P-384' +})) + +supportedAlgorithms.define('ES512', 'importKey', new ECDSA({ + name: 'ECDSA', + hash: { + name: 'SHA-512' + }, + namedCurve: 'P-521' +})) + /** * Export */ diff --git a/src/jose/JWA.js b/src/jose/JWA.js index 69a9b11..a237917 100644 --- a/src/jose/JWA.js +++ b/src/jose/JWA.js @@ -87,6 +87,11 @@ class JWA { */ static async importKey (key) { let normalizedAlgorithm = supportedAlgorithms.normalize('importKey', key.alg) + + if (normalizedAlgorithm instanceof Error) { + return Promise.reject(new NotSupportedError(key.alg)) + } + return normalizedAlgorithm.importKey(key) } } From ba6f0c602396d1d5538244ea31c49f7d8ce9525c Mon Sep 17 00:00:00 2001 From: bourgeoa Date: Fri, 26 Dec 2025 16:42:01 +0100 Subject: [PATCH 2/2] 0.7.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c36463d..a93e12c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@solid/jose", - "version": "0.6.9", + "version": "0.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@solid/jose", - "version": "0.6.9", + "version": "0.7.0", "license": "MIT", "dependencies": { "@sinonjs/text-encoding": "^0.7.2", diff --git a/package.json b/package.json index dc0405d..793be96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@solid/jose", - "version": "0.6.9", + "version": "0.7.0", "description": "JSON Object Signing and Encryption", "main": "src/index.js", "directories": {