refactor: dry resolveNodeAlg

This commit is contained in:
Filip Skokan 2019-03-26 12:57:21 +01:00
parent a6d83d1d8e
commit 6172bcb18e
5 changed files with 24 additions and 45 deletions

19
lib/help/node_alg.js Normal file
View 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'
}
}

View file

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

View file

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

View file

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

View file

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