aboutsummaryrefslogtreecommitdiffstats
path: root/backend/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js
diff options
context:
space:
mode:
authorLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2024-07-25 12:10:39 +0530
committerLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2024-07-25 12:10:39 +0530
commit4f27eefd6ec24a2644e674850f5a2b5d4928b168 (patch)
tree26067f67ef4d25b2b0d84b26d72432b1cade5825 /backend/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js
parentc00ac1ff51c795d4d93c32e0a913e2cebf917d0c (diff)
downloadadmin-panel-4f27eefd6ec24a2644e674850f5a2b5d4928b168.tar.gz
admin-panel-4f27eefd6ec24a2644e674850f5a2b5d4928b168.tar.bz2
admin-panel-4f27eefd6ec24a2644e674850f5a2b5d4928b168.zip
added .gitignore
Diffstat (limited to 'backend/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js')
-rw-r--r--backend/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js66
1 files changed, 0 insertions, 66 deletions
diff --git a/backend/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js b/backend/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js
deleted file mode 100644
index c10340b..0000000
--- a/backend/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js
+++ /dev/null
@@ -1,66 +0,0 @@
-const ASYMMETRIC_KEY_DETAILS_SUPPORTED = require('./asymmetricKeyDetailsSupported');
-const RSA_PSS_KEY_DETAILS_SUPPORTED = require('./rsaPssKeyDetailsSupported');
-
-const allowedAlgorithmsForKeys = {
- 'ec': ['ES256', 'ES384', 'ES512'],
- 'rsa': ['RS256', 'PS256', 'RS384', 'PS384', 'RS512', 'PS512'],
- 'rsa-pss': ['PS256', 'PS384', 'PS512']
-};
-
-const allowedCurves = {
- ES256: 'prime256v1',
- ES384: 'secp384r1',
- ES512: 'secp521r1',
-};
-
-module.exports = function(algorithm, key) {
- if (!algorithm || !key) return;
-
- const keyType = key.asymmetricKeyType;
- if (!keyType) return;
-
- const allowedAlgorithms = allowedAlgorithmsForKeys[keyType];
-
- if (!allowedAlgorithms) {
- throw new Error(`Unknown key type "${keyType}".`);
- }
-
- if (!allowedAlgorithms.includes(algorithm)) {
- throw new Error(`"alg" parameter for "${keyType}" key type must be one of: ${allowedAlgorithms.join(', ')}.`)
- }
-
- /*
- * Ignore the next block from test coverage because it gets executed
- * conditionally depending on the Node version. Not ignoring it would
- * prevent us from reaching the target % of coverage for versions of
- * Node under 15.7.0.
- */
- /* istanbul ignore next */
- if (ASYMMETRIC_KEY_DETAILS_SUPPORTED) {
- switch (keyType) {
- case 'ec':
- const keyCurve = key.asymmetricKeyDetails.namedCurve;
- const allowedCurve = allowedCurves[algorithm];
-
- if (keyCurve !== allowedCurve) {
- throw new Error(`"alg" parameter "${algorithm}" requires curve "${allowedCurve}".`);
- }
- break;
-
- case 'rsa-pss':
- if (RSA_PSS_KEY_DETAILS_SUPPORTED) {
- const length = parseInt(algorithm.slice(-3), 10);
- const { hashAlgorithm, mgf1HashAlgorithm, saltLength } = key.asymmetricKeyDetails;
-
- if (hashAlgorithm !== `sha${length}` || mgf1HashAlgorithm !== hashAlgorithm) {
- throw new Error(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of "alg" ${algorithm}.`);
- }
-
- if (saltLength !== undefined && saltLength > length >> 3) {
- throw new Error(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of "alg" ${algorithm}.`)
- }
- }
- break;
- }
- }
-}