diff --git a/lib/jwa/ecdsa.js b/lib/jwa/ecdsa.js index 87a83e07..4db1ced1 100644 --- a/lib/jwa/ecdsa.js +++ b/lib/jwa/ecdsa.js @@ -13,6 +13,12 @@ const resolveNodeAlg = (alg) => { } } +const sign = (jwaAlg, nodeAlg, { keyObject }, payload) => { + const sign = createSign(nodeAlg) + sign.update(payload) + return derToJose(sign.sign(keyObject), jwaAlg) +} + const verify = (jwaAlg, nodeAlg, { keyObject }, payload, signature) => { const verify = createVerify(nodeAlg) verify.update(payload) @@ -24,12 +30,6 @@ const verify = (jwaAlg, nodeAlg, { keyObject }, payload, signature) => { } } -const sign = (jwaAlg, nodeAlg, { keyObject }, payload) => { - const sign = createSign(nodeAlg) - sign.update(payload) - return derToJose(sign.sign(keyObject), jwaAlg) -} - module.exports = (JWA) => { ['ES256', 'ES384', 'ES512'].forEach((jwaAlg) => { const nodeAlg = resolveNodeAlg(jwaAlg) diff --git a/lib/jwa/hmac.js b/lib/jwa/hmac.js index bbc17139..c345613b 100644 --- a/lib/jwa/hmac.js +++ b/lib/jwa/hmac.js @@ -12,6 +12,12 @@ const resolveHmacAlg = (alg) => { } } +const sign = (jwaAlg, hmacAlg, { keyObject }, payload) => { + const hmac = createHmac(hmacAlg, keyObject) + hmac.update(payload) + return hmac.digest() +} + const verify = (jwaAlg, hmacAlg, { keyObject }, payload, signature) => { const hmac = createHmac(hmacAlg, keyObject) hmac.update(payload) @@ -25,12 +31,6 @@ const verify = (jwaAlg, hmacAlg, { keyObject }, payload, signature) => { return timingSafeEqual(actual, expected) } -const sign = (jwaAlg, hmacAlg, { keyObject }, payload) => { - const hmac = createHmac(hmacAlg, keyObject) - hmac.update(payload) - return hmac.digest() -} - module.exports = (JWA) => { ['HS256', 'HS384', 'HS512'].forEach((jwaAlg) => { const hmacAlg = resolveHmacAlg(jwaAlg) diff --git a/lib/jwa/rsassa_pkcs1.js b/lib/jwa/rsassa_pkcs1.js index dc60e9e3..e42adeac 100644 --- a/lib/jwa/rsassa_pkcs1.js +++ b/lib/jwa/rsassa_pkcs1.js @@ -12,18 +12,18 @@ const resolveNodeAlg = (alg) => { } } -const verify = (jwaAlg, nodeAlg, { keyObject }, payload, signature) => { - const verify = createVerify(nodeAlg) - verify.update(payload) - return verify.verify(keyObject, signature) -} - const sign = (jwaAlg, nodeAlg, { keyObject }, payload) => { const sign = createSign(nodeAlg) sign.update(payload) return sign.sign(keyObject) } +const verify = (jwaAlg, nodeAlg, { keyObject }, payload, signature) => { + const verify = createVerify(nodeAlg) + verify.update(payload) + return verify.verify(keyObject, signature) +} + module.exports = (JWA) => { ['RS256', 'RS384', 'RS512'].forEach((jwaAlg) => { const nodeAlg = resolveNodeAlg(jwaAlg) diff --git a/lib/jwa/rsassa_pss.js b/lib/jwa/rsassa_pss.js index 96c846ab..efaacf3f 100644 --- a/lib/jwa/rsassa_pss.js +++ b/lib/jwa/rsassa_pss.js @@ -16,18 +16,18 @@ const resolveNodeAlg = (alg) => { } } -const verify = (jwaAlg, nodeAlg, { keyObject }, payload, signature) => { - const verify = createVerify(nodeAlg) - verify.update(payload) - return verify.verify({ key: keyObject, padding, saltLength }, signature) -} - const sign = (jwaAlg, nodeAlg, { keyObject }, payload) => { const sign = createSign(nodeAlg) sign.update(payload) return sign.sign({ key: keyObject, padding, saltLength }) } +const verify = (jwaAlg, nodeAlg, { keyObject }, payload, signature) => { + const verify = createVerify(nodeAlg) + verify.update(payload) + return verify.verify({ key: keyObject, padding, saltLength }, signature) +} + module.exports = (JWA) => { ['PS256', 'PS384', 'PS512'].forEach((jwaAlg) => { const nodeAlg = resolveNodeAlg(jwaAlg) diff --git a/lib/jwk/key/oct.js b/lib/jwk/key/oct.js index 8b162fae..354e4856 100644 --- a/lib/jwk/key/oct.js +++ b/lib/jwk/key/oct.js @@ -80,7 +80,7 @@ class OctKey extends Key { } if (this.alg) { - return new Set(ENC_ALGS.has(this.alg) ? [this.alg] : []) + return new Set(ENC_ALGS.has(this.alg) ? [this.alg] : undefined) } return new Set([`A${this.length / 2}CBC-HS${this.length}`, `A${this.length}GCM`].filter(a => ENC_ALGS.has(a))) @@ -91,7 +91,7 @@ class OctKey extends Key { } if (this.alg) { - return new Set(SIG_ALGS.has(this.alg) ? [this.alg] : []) + return new Set(SIG_ALGS.has(this.alg) ? [this.alg] : undefined) } return new Set(SIG_ALGS) @@ -102,7 +102,7 @@ class OctKey extends Key { } if (this.alg) { - return new Set(WRAP_ALGS.has(this.alg) ? [this.alg] : []) + return new Set(WRAP_ALGS.has(this.alg) ? [this.alg] : undefined) } const algs = new Set(['dir', 'PBES2-HS256+A128KW', 'PBES2-HS384+A192KW', 'PBES2-HS512+A256KW'])