mirror of
https://github.com/danbulant/jose
synced 2026-05-24 20:41:46 +00:00
refactor: sign/verify order unified
This commit is contained in:
parent
faa45bc03b
commit
2d32176b10
5 changed files with 27 additions and 27 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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'])
|
||||
|
|
|
|||
Loading…
Reference in a new issue