mirror of
https://github.com/danbulant/jose
synced 2026-05-22 13:58:47 +00:00
refactor: dry resolveNodeAlg
This commit is contained in:
parent
a6d83d1d8e
commit
6172bcb18e
5 changed files with 24 additions and 45 deletions
19
lib/help/node_alg.js
Normal file
19
lib/help/node_alg.js
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
module.exports = (alg) => {
|
||||
switch (alg) {
|
||||
case 'RS256':
|
||||
case 'PS256':
|
||||
case 'HS256':
|
||||
case 'ES256':
|
||||
return 'sha256'
|
||||
case 'RS384':
|
||||
case 'PS384':
|
||||
case 'HS384':
|
||||
case 'ES384':
|
||||
return 'sha384'
|
||||
case 'RS512':
|
||||
case 'PS512':
|
||||
case 'HS512':
|
||||
case 'ES512':
|
||||
return 'sha512'
|
||||
}
|
||||
}
|
||||
|
|
@ -3,17 +3,7 @@ const { createSign, createVerify } = require('crypto')
|
|||
|
||||
const { derToJose, joseToDer } = require('../help/ecdsa_signatures')
|
||||
const { KEYOBJECT } = require('../help/symbols')
|
||||
|
||||
const resolveNodeAlg = (alg) => {
|
||||
switch (alg) {
|
||||
case 'ES256':
|
||||
return 'RSA-SHA256'
|
||||
case 'ES384':
|
||||
return 'RSA-SHA384'
|
||||
case 'ES512':
|
||||
return 'RSA-SHA512'
|
||||
}
|
||||
}
|
||||
const resolveNodeAlg = require('../help/node_alg')
|
||||
|
||||
const sign = (jwaAlg, nodeAlg, { [KEYOBJECT]: keyObject }, payload) => {
|
||||
const sign = createSign(nodeAlg)
|
||||
|
|
|
|||
|
|
@ -3,17 +3,7 @@ const { createHmac } = require('crypto')
|
|||
|
||||
const { KEYOBJECT } = require('../help/symbols')
|
||||
const timingSafeEqual = require('../help/timing_safe_equal')
|
||||
|
||||
const resolveHmacAlg = (alg) => {
|
||||
switch (alg) {
|
||||
case 'HS256':
|
||||
return 'sha256'
|
||||
case 'HS384':
|
||||
return 'sha384'
|
||||
case 'HS512':
|
||||
return 'sha512'
|
||||
}
|
||||
}
|
||||
const resolveNodeAlg = require('../help/node_alg')
|
||||
|
||||
const sign = (jwaAlg, hmacAlg, { [KEYOBJECT]: keyObject }, payload) => {
|
||||
const hmac = createHmac(hmacAlg, keyObject)
|
||||
|
|
@ -32,7 +22,7 @@ const verify = (jwaAlg, hmacAlg, { [KEYOBJECT]: keyObject }, payload, signature)
|
|||
|
||||
module.exports = (JWA) => {
|
||||
['HS256', 'HS384', 'HS512'].forEach((jwaAlg) => {
|
||||
const hmacAlg = resolveHmacAlg(jwaAlg)
|
||||
const hmacAlg = resolveNodeAlg(jwaAlg)
|
||||
|
||||
assert(!JWA.sign.has(jwaAlg), `sign alg ${jwaAlg} already registered`)
|
||||
assert(!JWA.verify.has(jwaAlg), `verify alg ${jwaAlg} already registered`)
|
||||
|
|
|
|||
|
|
@ -2,17 +2,7 @@ const { strict: assert } = require('assert')
|
|||
const { createSign, createVerify } = require('crypto')
|
||||
|
||||
const { KEYOBJECT } = require('../help/symbols')
|
||||
|
||||
const resolveNodeAlg = (alg) => {
|
||||
switch (alg) {
|
||||
case 'RS256':
|
||||
return 'RSA-SHA256'
|
||||
case 'RS384':
|
||||
return 'RSA-SHA384'
|
||||
case 'RS512':
|
||||
return 'RSA-SHA512'
|
||||
}
|
||||
}
|
||||
const resolveNodeAlg = require('../help/node_alg')
|
||||
|
||||
const sign = (nodeAlg, { [KEYOBJECT]: keyObject }, payload) => {
|
||||
const sign = createSign(nodeAlg)
|
||||
|
|
|
|||
|
|
@ -2,17 +2,7 @@ const { strict: assert } = require('assert')
|
|||
const { createSign, createVerify, constants } = require('crypto')
|
||||
|
||||
const { KEYOBJECT } = require('../help/symbols')
|
||||
|
||||
const resolveNodeAlg = (alg) => {
|
||||
switch (alg) {
|
||||
case 'PS256':
|
||||
return 'RSA-SHA256'
|
||||
case 'PS384':
|
||||
return 'RSA-SHA384'
|
||||
case 'PS512':
|
||||
return 'RSA-SHA512'
|
||||
}
|
||||
}
|
||||
const resolveNodeAlg = require('../help/node_alg')
|
||||
|
||||
const sign = (nodeAlg, { [KEYOBJECT]: keyObject, length }, payload) => {
|
||||
const sign = createSign(nodeAlg)
|
||||
|
|
|
|||
Loading…
Reference in a new issue