refactor: sign/verify order unified

This commit is contained in:
Filip Skokan 2019-01-26 14:21:03 +01:00
parent faa45bc03b
commit 2d32176b10
5 changed files with 27 additions and 27 deletions

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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'])