jose 3.20.1 → 3.20.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/browser/jwe/flattened/decrypt.js +7 -11
  2. package/dist/browser/jwe/flattened/encrypt.js +2 -5
  3. package/dist/browser/jws/flattened/sign.js +1 -2
  4. package/dist/browser/jws/flattened/verify.js +2 -4
  5. package/dist/browser/lib/cek.js +3 -2
  6. package/dist/browser/lib/decrypt_key_management.js +4 -1
  7. package/dist/browser/lib/encrypt_key_management.js +1 -3
  8. package/dist/browser/lib/iv.js +3 -2
  9. package/dist/browser/runtime/aesgcmkw.js +1 -3
  10. package/dist/browser/runtime/random.js +1 -2
  11. package/dist/browser/util/errors.js +66 -34
  12. package/dist/node/cjs/jwe/compact/decrypt.js +1 -1
  13. package/dist/node/cjs/jwe/flattened/decrypt.js +18 -22
  14. package/dist/node/cjs/jwe/flattened/encrypt.js +13 -16
  15. package/dist/node/cjs/jwe/general/decrypt.js +2 -2
  16. package/dist/node/cjs/jwk/embedded.js +2 -2
  17. package/dist/node/cjs/jwk/from_key_like.js +1 -1
  18. package/dist/node/cjs/jwk/parse.js +1 -1
  19. package/dist/node/cjs/jwk/thumbprint.js +2 -2
  20. package/dist/node/cjs/jwks/remote.js +3 -3
  21. package/dist/node/cjs/jws/compact/verify.js +1 -1
  22. package/dist/node/cjs/jws/flattened/sign.js +8 -9
  23. package/dist/node/cjs/jws/flattened/verify.js +11 -13
  24. package/dist/node/cjs/jws/general/verify.js +2 -2
  25. package/dist/node/cjs/jwt/decrypt.js +2 -2
  26. package/dist/node/cjs/jwt/produce.js +4 -4
  27. package/dist/node/cjs/jwt/unsecured.js +1 -1
  28. package/dist/node/cjs/jwt/verify.js +2 -2
  29. package/dist/node/cjs/key/export.js +3 -3
  30. package/dist/node/cjs/key/import.js +10 -10
  31. package/dist/node/cjs/lib/cek.js +4 -3
  32. package/dist/node/cjs/lib/check_key_type.js +4 -4
  33. package/dist/node/cjs/lib/decrypt_key_management.js +16 -13
  34. package/dist/node/cjs/lib/encrypt_key_management.js +14 -16
  35. package/dist/node/cjs/lib/iv.js +4 -3
  36. package/dist/node/cjs/lib/jwt_claims_set.js +4 -4
  37. package/dist/node/cjs/runtime/aesgcmkw.js +4 -6
  38. package/dist/node/cjs/runtime/aeskw.js +11 -11
  39. package/dist/node/cjs/runtime/asn1.js +6 -6
  40. package/dist/node/cjs/runtime/cbc_tag.js +2 -2
  41. package/dist/node/cjs/runtime/check_cek_length.js +1 -1
  42. package/dist/node/cjs/runtime/ciphers.js +1 -1
  43. package/dist/node/cjs/runtime/decrypt.js +15 -15
  44. package/dist/node/cjs/runtime/digest.js +1 -1
  45. package/dist/node/cjs/runtime/ecdhes.js +18 -18
  46. package/dist/node/cjs/runtime/encrypt.js +14 -14
  47. package/dist/node/cjs/runtime/fetch_jwks.js +2 -2
  48. package/dist/node/cjs/runtime/generate.js +4 -4
  49. package/dist/node/cjs/runtime/get_named_curve.js +5 -5
  50. package/dist/node/cjs/runtime/get_sign_verify_key.js +5 -5
  51. package/dist/node/cjs/runtime/invalid_key_input.js +2 -2
  52. package/dist/node/cjs/runtime/is_key_like.js +1 -1
  53. package/dist/node/cjs/runtime/jwk_to_key.js +11 -11
  54. package/dist/node/cjs/runtime/key_to_jwk.js +27 -27
  55. package/dist/node/cjs/runtime/node_key.js +4 -4
  56. package/dist/node/cjs/runtime/pbes2kw.js +13 -13
  57. package/dist/node/cjs/runtime/random.js +3 -2
  58. package/dist/node/cjs/runtime/rsaes.js +7 -7
  59. package/dist/node/cjs/runtime/secret_key.js +1 -1
  60. package/dist/node/cjs/runtime/sign.js +4 -4
  61. package/dist/node/cjs/runtime/verify.js +5 -5
  62. package/dist/node/cjs/runtime/zlib.js +2 -2
  63. package/dist/node/cjs/util/decode_protected_header.js +2 -2
  64. package/dist/node/cjs/util/errors.js +69 -37
  65. package/dist/node/cjs/util/generate_key_pair.js +1 -1
  66. package/dist/node/cjs/util/generate_secret.js +1 -1
  67. package/dist/node/esm/jwe/flattened/decrypt.js +7 -11
  68. package/dist/node/esm/jwe/flattened/encrypt.js +2 -5
  69. package/dist/node/esm/jws/flattened/sign.js +1 -2
  70. package/dist/node/esm/jws/flattened/verify.js +2 -4
  71. package/dist/node/esm/lib/cek.js +3 -2
  72. package/dist/node/esm/lib/decrypt_key_management.js +4 -1
  73. package/dist/node/esm/lib/encrypt_key_management.js +1 -3
  74. package/dist/node/esm/lib/iv.js +3 -2
  75. package/dist/node/esm/runtime/aesgcmkw.js +1 -3
  76. package/dist/node/esm/runtime/random.js +1 -2
  77. package/dist/node/esm/util/errors.js +66 -34
  78. package/dist/types/types.d.ts +1 -0
  79. package/dist/types/util/errors.d.ts +21 -18
  80. package/package.json +2 -1
@@ -28,7 +28,7 @@ exports.default = (protectedHeader, encodedPayload, options = {}) => {
28
28
  }
29
29
  catch {
30
30
  }
31
- if (!(0, is_object_js_1.default)(payload)) {
31
+ if (!is_object_js_1.default(payload)) {
32
32
  throw new errors_js_1.JWTInvalid('JWT Claims Set must be a top-level JSON object');
33
33
  }
34
34
  const { issuer } = options;
@@ -47,7 +47,7 @@ exports.default = (protectedHeader, encodedPayload, options = {}) => {
47
47
  let tolerance;
48
48
  switch (typeof options.clockTolerance) {
49
49
  case 'string':
50
- tolerance = (0, secs_js_1.default)(options.clockTolerance);
50
+ tolerance = secs_js_1.default(options.clockTolerance);
51
51
  break;
52
52
  case 'number':
53
53
  tolerance = options.clockTolerance;
@@ -59,7 +59,7 @@ exports.default = (protectedHeader, encodedPayload, options = {}) => {
59
59
  throw new TypeError('Invalid clockTolerance option type');
60
60
  }
61
61
  const { currentDate } = options;
62
- const now = (0, epoch_js_1.default)(currentDate || new Date());
62
+ const now = epoch_js_1.default(currentDate || new Date());
63
63
  if (payload.iat !== undefined || options.maxTokenAge) {
64
64
  if (typeof payload.iat !== 'number') {
65
65
  throw new errors_js_1.JWTClaimValidationFailed('"iat" claim must be a number', 'iat', 'invalid');
@@ -86,7 +86,7 @@ exports.default = (protectedHeader, encodedPayload, options = {}) => {
86
86
  }
87
87
  if (options.maxTokenAge) {
88
88
  const age = now - payload.iat;
89
- const max = typeof options.maxTokenAge === 'number' ? options.maxTokenAge : (0, secs_js_1.default)(options.maxTokenAge);
89
+ const max = typeof options.maxTokenAge === 'number' ? options.maxTokenAge : secs_js_1.default(options.maxTokenAge);
90
90
  if (age - tolerance > max) {
91
91
  throw new errors_js_1.JWTExpired('"iat" claim timestamp check failed (too far in the past)', 'iat', 'check_failed');
92
92
  }
@@ -4,18 +4,16 @@ exports.unwrap = exports.wrap = void 0;
4
4
  const encrypt_js_1 = require("./encrypt.js");
5
5
  const decrypt_js_1 = require("./decrypt.js");
6
6
  const iv_js_1 = require("../lib/iv.js");
7
- const random_js_1 = require("./random.js");
8
7
  const base64url_js_1 = require("./base64url.js");
9
- const generateIv = (0, iv_js_1.default)(random_js_1.default);
10
8
  const wrap = async (alg, key, cek, iv) => {
11
9
  const jweAlgorithm = alg.substr(0, 7);
12
- iv || (iv = generateIv(jweAlgorithm));
13
- const { ciphertext: encryptedKey, tag } = await (0, encrypt_js_1.default)(jweAlgorithm, cek, key, iv, new Uint8Array(0));
14
- return { encryptedKey, iv: (0, base64url_js_1.encode)(iv), tag: (0, base64url_js_1.encode)(tag) };
10
+ iv || (iv = iv_js_1.default(jweAlgorithm));
11
+ const { ciphertext: encryptedKey, tag } = await encrypt_js_1.default(jweAlgorithm, cek, key, iv, new Uint8Array(0));
12
+ return { encryptedKey, iv: base64url_js_1.encode(iv), tag: base64url_js_1.encode(tag) };
15
13
  };
16
14
  exports.wrap = wrap;
17
15
  const unwrap = async (alg, key, encryptedKey, iv, tag) => {
18
16
  const jweAlgorithm = alg.substr(0, 7);
19
- return (0, decrypt_js_1.default)(jweAlgorithm, key, encryptedKey, iv, tag, new Uint8Array(0));
17
+ return decrypt_js_1.default(jweAlgorithm, key, encryptedKey, iv, tag, new Uint8Array(0));
20
18
  };
21
19
  exports.unwrap = unwrap;
@@ -15,38 +15,38 @@ function checkKeySize(key, alg) {
15
15
  }
16
16
  }
17
17
  function ensureKeyObject(key, alg, usage) {
18
- if ((0, is_key_object_js_1.default)(key)) {
18
+ if (is_key_object_js_1.default(key)) {
19
19
  return key;
20
20
  }
21
21
  if (key instanceof Uint8Array) {
22
- return (0, secret_key_js_1.default)(key);
22
+ return secret_key_js_1.default(key);
23
23
  }
24
- if ((0, webcrypto_js_1.isCryptoKey)(key)) {
25
- return (0, webcrypto_js_1.getKeyObject)(key, alg, new Set([usage]));
24
+ if (webcrypto_js_1.isCryptoKey(key)) {
25
+ return webcrypto_js_1.getKeyObject(key, alg, new Set([usage]));
26
26
  }
27
- throw new TypeError((0, invalid_key_input_js_1.default)(key, 'KeyObject', 'CryptoKey', 'Uint8Array'));
27
+ throw new TypeError(invalid_key_input_js_1.default(key, 'KeyObject', 'CryptoKey', 'Uint8Array'));
28
28
  }
29
29
  const wrap = async (alg, key, cek) => {
30
30
  const size = parseInt(alg.substr(1, 3), 10);
31
31
  const algorithm = `aes${size}-wrap`;
32
- if (!(0, ciphers_js_1.default)(algorithm)) {
32
+ if (!ciphers_js_1.default(algorithm)) {
33
33
  throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
34
34
  }
35
35
  const keyObject = ensureKeyObject(key, alg, 'wrapKey');
36
36
  checkKeySize(keyObject, alg);
37
- const cipher = (0, crypto_1.createCipheriv)(algorithm, keyObject, Buffer.alloc(8, 0xa6));
38
- return (0, buffer_utils_js_1.concat)(cipher.update(cek), cipher.final());
37
+ const cipher = crypto_1.createCipheriv(algorithm, keyObject, Buffer.alloc(8, 0xa6));
38
+ return buffer_utils_js_1.concat(cipher.update(cek), cipher.final());
39
39
  };
40
40
  exports.wrap = wrap;
41
41
  const unwrap = async (alg, key, encryptedKey) => {
42
42
  const size = parseInt(alg.substr(1, 3), 10);
43
43
  const algorithm = `aes${size}-wrap`;
44
- if (!(0, ciphers_js_1.default)(algorithm)) {
44
+ if (!ciphers_js_1.default(algorithm)) {
45
45
  throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
46
46
  }
47
47
  const keyObject = ensureKeyObject(key, alg, 'unwrapKey');
48
48
  checkKeySize(keyObject, alg);
49
- const cipher = (0, crypto_1.createDecipheriv)(algorithm, keyObject, Buffer.alloc(8, 0xa6));
50
- return (0, buffer_utils_js_1.concat)(cipher.update(encryptedKey), cipher.final());
49
+ const cipher = crypto_1.createDecipheriv(algorithm, keyObject, Buffer.alloc(8, 0xa6));
50
+ return buffer_utils_js_1.concat(cipher.update(encryptedKey), cipher.final());
51
51
  };
52
52
  exports.unwrap = unwrap;
@@ -7,17 +7,17 @@ const is_key_object_js_1 = require("./is_key_object.js");
7
7
  const invalid_key_input_js_1 = require("./invalid_key_input.js");
8
8
  const genericExport = (keyType, keyFormat, key) => {
9
9
  let keyObject;
10
- if ((0, webcrypto_js_1.isCryptoKey)(key)) {
10
+ if (webcrypto_js_1.isCryptoKey(key)) {
11
11
  if (!key.extractable) {
12
12
  throw new TypeError('CryptoKey is not extractable');
13
13
  }
14
- keyObject = (0, webcrypto_js_1.getKeyObject)(key);
14
+ keyObject = webcrypto_js_1.getKeyObject(key);
15
15
  }
16
- else if ((0, is_key_object_js_1.default)(key)) {
16
+ else if (is_key_object_js_1.default(key)) {
17
17
  keyObject = key;
18
18
  }
19
19
  else {
20
- throw new TypeError((0, invalid_key_input_js_1.default)(key, 'KeyObject', 'CryptoKey'));
20
+ throw new TypeError(invalid_key_input_js_1.default(key, 'KeyObject', 'CryptoKey'));
21
21
  }
22
22
  if (keyObject.type !== keyType) {
23
23
  throw new TypeError(`key is not a ${keyType} key`);
@@ -32,13 +32,13 @@ const toPKCS8 = (key) => {
32
32
  return genericExport('private', 'pkcs8', key);
33
33
  };
34
34
  exports.toPKCS8 = toPKCS8;
35
- const fromPKCS8 = (pem) => (0, crypto_1.createPrivateKey)({
35
+ const fromPKCS8 = (pem) => crypto_1.createPrivateKey({
36
36
  key: Buffer.from(pem.replace(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g, ''), 'base64'),
37
37
  type: 'pkcs8',
38
38
  format: 'der',
39
39
  });
40
40
  exports.fromPKCS8 = fromPKCS8;
41
- const fromSPKI = (pem) => (0, crypto_1.createPublicKey)({
41
+ const fromSPKI = (pem) => crypto_1.createPublicKey({
42
42
  key: Buffer.from(pem.replace(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\s)/g, ''), 'base64'),
43
43
  type: 'spki',
44
44
  format: 'der',
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const crypto_1 = require("crypto");
4
4
  const buffer_utils_js_1 = require("../lib/buffer_utils.js");
5
5
  function cbcTag(aad, iv, ciphertext, macSize, macKey, keySize) {
6
- const macData = (0, buffer_utils_js_1.concat)(aad, iv, ciphertext, (0, buffer_utils_js_1.uint64be)(aad.length << 3));
7
- const hmac = (0, crypto_1.createHmac)(`sha${macSize}`, macKey);
6
+ const macData = buffer_utils_js_1.concat(aad, iv, ciphertext, buffer_utils_js_1.uint64be(aad.length << 3));
7
+ const hmac = crypto_1.createHmac(`sha${macSize}`, macKey);
8
8
  hmac.update(macData);
9
9
  return hmac.digest().slice(0, keySize >> 3);
10
10
  }
@@ -24,7 +24,7 @@ const checkCekLength = (enc, cek) => {
24
24
  }
25
25
  return;
26
26
  }
27
- if ((0, is_key_object_js_1.default)(cek) && cek.type === 'secret') {
27
+ if (is_key_object_js_1.default(cek) && cek.type === 'secret') {
28
28
  if (cek.symmetricKeySize << 3 !== expected) {
29
29
  throw new errors_js_1.JWEInvalid('Invalid Content Encryption Key length');
30
30
  }
@@ -3,6 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const crypto_1 = require("crypto");
4
4
  let ciphers;
5
5
  exports.default = (algorithm) => {
6
- ciphers || (ciphers = new Set((0, crypto_1.getCiphers)()));
6
+ ciphers || (ciphers = new Set(crypto_1.getCiphers()));
7
7
  return ciphers.has(algorithm);
8
8
  };
@@ -13,20 +13,20 @@ const invalid_key_input_js_1 = require("./invalid_key_input.js");
13
13
  const ciphers_js_1 = require("./ciphers.js");
14
14
  async function cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {
15
15
  const keySize = parseInt(enc.substr(1, 3), 10);
16
- if ((0, is_key_object_js_1.default)(cek)) {
16
+ if (is_key_object_js_1.default(cek)) {
17
17
  cek = cek.export();
18
18
  }
19
19
  const encKey = cek.subarray(keySize >> 3);
20
20
  const macKey = cek.subarray(0, keySize >> 3);
21
21
  const macSize = parseInt(enc.substr(-3), 10);
22
22
  const algorithm = `aes-${keySize}-cbc`;
23
- if (!(0, ciphers_js_1.default)(algorithm)) {
23
+ if (!ciphers_js_1.default(algorithm)) {
24
24
  throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);
25
25
  }
26
- const expectedTag = (0, cbc_tag_js_1.default)(aad, iv, ciphertext, macSize, macKey, keySize);
26
+ const expectedTag = cbc_tag_js_1.default(aad, iv, ciphertext, macSize, macKey, keySize);
27
27
  let macCheckPassed;
28
28
  try {
29
- macCheckPassed = (0, timing_safe_equal_js_1.default)(tag, expectedTag);
29
+ macCheckPassed = timing_safe_equal_js_1.default(tag, expectedTag);
30
30
  }
31
31
  catch {
32
32
  }
@@ -35,8 +35,8 @@ async function cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {
35
35
  }
36
36
  let plaintext;
37
37
  try {
38
- const cipher = (0, crypto_1.createDecipheriv)(algorithm, encKey, iv);
39
- plaintext = (0, buffer_utils_js_1.concat)(cipher.update(ciphertext), cipher.final());
38
+ const cipher = crypto_1.createDecipheriv(algorithm, encKey, iv);
39
+ plaintext = buffer_utils_js_1.concat(cipher.update(ciphertext), cipher.final());
40
40
  }
41
41
  catch {
42
42
  }
@@ -48,16 +48,16 @@ async function cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {
48
48
  async function gcmDecrypt(enc, cek, ciphertext, iv, tag, aad) {
49
49
  const keySize = parseInt(enc.substr(1, 3), 10);
50
50
  const algorithm = `aes-${keySize}-gcm`;
51
- if (!(0, ciphers_js_1.default)(algorithm)) {
51
+ if (!ciphers_js_1.default(algorithm)) {
52
52
  throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);
53
53
  }
54
54
  try {
55
- const cipher = (0, crypto_1.createDecipheriv)(algorithm, cek, iv, { authTagLength: 16 });
55
+ const cipher = crypto_1.createDecipheriv(algorithm, cek, iv, { authTagLength: 16 });
56
56
  cipher.setAuthTag(tag);
57
57
  if (aad.byteLength) {
58
58
  cipher.setAAD(aad, { plaintextLength: ciphertext.length });
59
59
  }
60
- return (0, buffer_utils_js_1.concat)(cipher.update(ciphertext), cipher.final());
60
+ return buffer_utils_js_1.concat(cipher.update(ciphertext), cipher.final());
61
61
  }
62
62
  catch {
63
63
  throw new errors_js_1.JWEDecryptionFailed();
@@ -65,17 +65,17 @@ async function gcmDecrypt(enc, cek, ciphertext, iv, tag, aad) {
65
65
  }
66
66
  const decrypt = async (enc, cek, ciphertext, iv, tag, aad) => {
67
67
  let key;
68
- if ((0, webcrypto_js_1.isCryptoKey)(cek)) {
69
- key = (0, webcrypto_js_1.getKeyObject)(cek, enc, new Set(['decrypt']));
68
+ if (webcrypto_js_1.isCryptoKey(cek)) {
69
+ key = webcrypto_js_1.getKeyObject(cek, enc, new Set(['decrypt']));
70
70
  }
71
- else if (cek instanceof Uint8Array || (0, is_key_object_js_1.default)(cek)) {
71
+ else if (cek instanceof Uint8Array || is_key_object_js_1.default(cek)) {
72
72
  key = cek;
73
73
  }
74
74
  else {
75
- throw new TypeError((0, invalid_key_input_js_1.default)(cek, 'KeyObject', 'CryptoKey', 'Uint8Array'));
75
+ throw new TypeError(invalid_key_input_js_1.default(cek, 'KeyObject', 'CryptoKey', 'Uint8Array'));
76
76
  }
77
- (0, check_cek_length_js_1.default)(enc, key);
78
- (0, check_iv_length_js_1.default)(enc, iv);
77
+ check_cek_length_js_1.default(enc, key);
78
+ check_iv_length_js_1.default(enc, iv);
79
79
  switch (enc) {
80
80
  case 'A128CBC-HS256':
81
81
  case 'A192CBC-HS384':
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const crypto_1 = require("crypto");
4
- const digest = (algorithm, data) => (0, crypto_1.createHash)(algorithm).update(data).digest();
4
+ const digest = (algorithm, data) => crypto_1.createHash(algorithm).update(data).digest();
5
5
  exports.default = digest;
@@ -10,43 +10,43 @@ const errors_js_1 = require("../util/errors.js");
10
10
  const webcrypto_js_1 = require("./webcrypto.js");
11
11
  const is_key_object_js_1 = require("./is_key_object.js");
12
12
  const invalid_key_input_js_1 = require("./invalid_key_input.js");
13
- const generateKeyPair = (0, util_1.promisify)(crypto_1.generateKeyPair);
13
+ const generateKeyPair = util_1.promisify(crypto_1.generateKeyPair);
14
14
  const deriveKey = async (publicKee, privateKee, algorithm, keyLength, apu = new Uint8Array(0), apv = new Uint8Array(0)) => {
15
15
  let publicKey;
16
- if ((0, webcrypto_js_1.isCryptoKey)(publicKee)) {
17
- publicKey = (0, webcrypto_js_1.getKeyObject)(publicKee, 'ECDH-ES');
16
+ if (webcrypto_js_1.isCryptoKey(publicKee)) {
17
+ publicKey = webcrypto_js_1.getKeyObject(publicKee, 'ECDH-ES');
18
18
  }
19
- else if ((0, is_key_object_js_1.default)(publicKee)) {
19
+ else if (is_key_object_js_1.default(publicKee)) {
20
20
  publicKey = publicKee;
21
21
  }
22
22
  else {
23
- throw new TypeError((0, invalid_key_input_js_1.default)(publicKee, 'KeyObject', 'CryptoKey'));
23
+ throw new TypeError(invalid_key_input_js_1.default(publicKee, 'KeyObject', 'CryptoKey'));
24
24
  }
25
25
  let privateKey;
26
- if ((0, webcrypto_js_1.isCryptoKey)(privateKee)) {
27
- privateKey = (0, webcrypto_js_1.getKeyObject)(privateKee, 'ECDH-ES', new Set(['deriveBits', 'deriveKey']));
26
+ if (webcrypto_js_1.isCryptoKey(privateKee)) {
27
+ privateKey = webcrypto_js_1.getKeyObject(privateKee, 'ECDH-ES', new Set(['deriveBits', 'deriveKey']));
28
28
  }
29
- else if ((0, is_key_object_js_1.default)(privateKee)) {
29
+ else if (is_key_object_js_1.default(privateKee)) {
30
30
  privateKey = privateKee;
31
31
  }
32
32
  else {
33
- throw new TypeError((0, invalid_key_input_js_1.default)(privateKee, 'KeyObject', 'CryptoKey'));
33
+ throw new TypeError(invalid_key_input_js_1.default(privateKee, 'KeyObject', 'CryptoKey'));
34
34
  }
35
- const value = (0, buffer_utils_js_1.concat)((0, buffer_utils_js_1.lengthAndInput)(buffer_utils_js_1.encoder.encode(algorithm)), (0, buffer_utils_js_1.lengthAndInput)(apu), (0, buffer_utils_js_1.lengthAndInput)(apv), (0, buffer_utils_js_1.uint32be)(keyLength));
36
- const sharedSecret = (0, crypto_1.diffieHellman)({ privateKey, publicKey });
37
- return (0, buffer_utils_js_1.concatKdf)(digest_js_1.default, sharedSecret, keyLength, value);
35
+ const value = buffer_utils_js_1.concat(buffer_utils_js_1.lengthAndInput(buffer_utils_js_1.encoder.encode(algorithm)), buffer_utils_js_1.lengthAndInput(apu), buffer_utils_js_1.lengthAndInput(apv), buffer_utils_js_1.uint32be(keyLength));
36
+ const sharedSecret = crypto_1.diffieHellman({ privateKey, publicKey });
37
+ return buffer_utils_js_1.concatKdf(digest_js_1.default, sharedSecret, keyLength, value);
38
38
  };
39
39
  exports.deriveKey = deriveKey;
40
40
  const generateEpk = async (kee) => {
41
41
  let key;
42
- if ((0, webcrypto_js_1.isCryptoKey)(kee)) {
43
- key = (0, webcrypto_js_1.getKeyObject)(kee);
42
+ if (webcrypto_js_1.isCryptoKey(kee)) {
43
+ key = webcrypto_js_1.getKeyObject(kee);
44
44
  }
45
- else if ((0, is_key_object_js_1.default)(kee)) {
45
+ else if (is_key_object_js_1.default(kee)) {
46
46
  key = kee;
47
47
  }
48
48
  else {
49
- throw new TypeError((0, invalid_key_input_js_1.default)(kee, 'KeyObject', 'CryptoKey'));
49
+ throw new TypeError(invalid_key_input_js_1.default(kee, 'KeyObject', 'CryptoKey'));
50
50
  }
51
51
  switch (key.asymmetricKeyType) {
52
52
  case 'x25519':
@@ -55,7 +55,7 @@ const generateEpk = async (kee) => {
55
55
  return (await generateKeyPair('x448')).privateKey;
56
56
  }
57
57
  case 'ec': {
58
- const namedCurve = (0, get_named_curve_js_1.default)(key);
58
+ const namedCurve = get_named_curve_js_1.default(key);
59
59
  return (await generateKeyPair('ec', { namedCurve })).privateKey;
60
60
  }
61
61
  default:
@@ -63,5 +63,5 @@ const generateEpk = async (kee) => {
63
63
  }
64
64
  };
65
65
  exports.generateEpk = generateEpk;
66
- const ecdhAllowed = (key) => ['P-256', 'P-384', 'P-521', 'X25519', 'X448'].includes((0, get_named_curve_js_1.default)(key));
66
+ const ecdhAllowed = (key) => ['P-256', 'P-384', 'P-521', 'X25519', 'X448'].includes(get_named_curve_js_1.default(key));
67
67
  exports.ecdhAllowed = ecdhAllowed;
@@ -12,48 +12,48 @@ const errors_js_1 = require("../util/errors.js");
12
12
  const ciphers_js_1 = require("./ciphers.js");
13
13
  async function cbcEncrypt(enc, plaintext, cek, iv, aad) {
14
14
  const keySize = parseInt(enc.substr(1, 3), 10);
15
- if ((0, is_key_object_js_1.default)(cek)) {
15
+ if (is_key_object_js_1.default(cek)) {
16
16
  cek = cek.export();
17
17
  }
18
18
  const encKey = cek.subarray(keySize >> 3);
19
19
  const macKey = cek.subarray(0, keySize >> 3);
20
20
  const algorithm = `aes-${keySize}-cbc`;
21
- if (!(0, ciphers_js_1.default)(algorithm)) {
21
+ if (!ciphers_js_1.default(algorithm)) {
22
22
  throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);
23
23
  }
24
- const cipher = (0, crypto_1.createCipheriv)(algorithm, encKey, iv);
25
- const ciphertext = (0, buffer_utils_js_1.concat)(cipher.update(plaintext), cipher.final());
24
+ const cipher = crypto_1.createCipheriv(algorithm, encKey, iv);
25
+ const ciphertext = buffer_utils_js_1.concat(cipher.update(plaintext), cipher.final());
26
26
  const macSize = parseInt(enc.substr(-3), 10);
27
- const tag = (0, cbc_tag_js_1.default)(aad, iv, ciphertext, macSize, macKey, keySize);
27
+ const tag = cbc_tag_js_1.default(aad, iv, ciphertext, macSize, macKey, keySize);
28
28
  return { ciphertext, tag };
29
29
  }
30
30
  async function gcmEncrypt(enc, plaintext, cek, iv, aad) {
31
31
  const keySize = parseInt(enc.substr(1, 3), 10);
32
32
  const algorithm = `aes-${keySize}-gcm`;
33
- if (!(0, ciphers_js_1.default)(algorithm)) {
33
+ if (!ciphers_js_1.default(algorithm)) {
34
34
  throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);
35
35
  }
36
- const cipher = (0, crypto_1.createCipheriv)(algorithm, cek, iv, { authTagLength: 16 });
36
+ const cipher = crypto_1.createCipheriv(algorithm, cek, iv, { authTagLength: 16 });
37
37
  if (aad.byteLength) {
38
38
  cipher.setAAD(aad, { plaintextLength: plaintext.length });
39
39
  }
40
- const ciphertext = (0, buffer_utils_js_1.concat)(cipher.update(plaintext), cipher.final());
40
+ const ciphertext = buffer_utils_js_1.concat(cipher.update(plaintext), cipher.final());
41
41
  const tag = cipher.getAuthTag();
42
42
  return { ciphertext, tag };
43
43
  }
44
44
  const encrypt = async (enc, plaintext, cek, iv, aad) => {
45
45
  let key;
46
- if ((0, webcrypto_js_1.isCryptoKey)(cek)) {
47
- key = (0, webcrypto_js_1.getKeyObject)(cek, enc, new Set(['encrypt']));
46
+ if (webcrypto_js_1.isCryptoKey(cek)) {
47
+ key = webcrypto_js_1.getKeyObject(cek, enc, new Set(['encrypt']));
48
48
  }
49
- else if (cek instanceof Uint8Array || (0, is_key_object_js_1.default)(cek)) {
49
+ else if (cek instanceof Uint8Array || is_key_object_js_1.default(cek)) {
50
50
  key = cek;
51
51
  }
52
52
  else {
53
- throw new TypeError((0, invalid_key_input_js_1.default)(cek, 'KeyObject', 'CryptoKey', 'Uint8Array'));
53
+ throw new TypeError(invalid_key_input_js_1.default(cek, 'KeyObject', 'CryptoKey', 'Uint8Array'));
54
54
  }
55
- (0, check_cek_length_js_1.default)(enc, key);
56
- (0, check_iv_length_js_1.default)(enc, iv);
55
+ check_cek_length_js_1.default(enc, key);
56
+ check_iv_length_js_1.default(enc, iv);
57
57
  switch (enc) {
58
58
  case 'A128CBC-HS256':
59
59
  case 'A192CBC-HS384':
@@ -18,7 +18,7 @@ const fetchJwks = async (url, timeout, options) => {
18
18
  agent,
19
19
  timeout,
20
20
  });
21
- const [response] = (await Promise.race([(0, events_1.once)(req, 'response'), (0, events_1.once)(req, 'timeout')]));
21
+ const [response] = (await Promise.race([events_1.once(req, 'response'), events_1.once(req, 'timeout')]));
22
22
  if (!response) {
23
23
  req.destroy();
24
24
  throw new errors_js_1.JWKSTimeout();
@@ -31,7 +31,7 @@ const fetchJwks = async (url, timeout, options) => {
31
31
  parts.push(part);
32
32
  }
33
33
  try {
34
- return JSON.parse(buffer_utils_js_1.decoder.decode((0, buffer_utils_js_1.concat)(...parts)));
34
+ return JSON.parse(buffer_utils_js_1.decoder.decode(buffer_utils_js_1.concat(...parts)));
35
35
  }
36
36
  catch {
37
37
  throw new errors_js_1.JOSEError('Failed to parse the JSON Web Key Set HTTP response as JSON');
@@ -6,7 +6,7 @@ const util_1 = require("util");
6
6
  const random_js_1 = require("./random.js");
7
7
  const check_modulus_length_js_1 = require("./check_modulus_length.js");
8
8
  const errors_js_1 = require("../util/errors.js");
9
- const generate = (0, util_1.promisify)(crypto_1.generateKeyPair);
9
+ const generate = util_1.promisify(crypto_1.generateKeyPair);
10
10
  async function generateSecret(alg, options) {
11
11
  let length;
12
12
  switch (alg) {
@@ -32,7 +32,7 @@ async function generateSecret(alg, options) {
32
32
  default:
33
33
  throw new errors_js_1.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
34
34
  }
35
- return (0, crypto_1.createSecretKey)((0, random_js_1.default)(new Uint8Array(length >> 3)));
35
+ return crypto_1.createSecretKey(random_js_1.default(new Uint8Array(length >> 3)));
36
36
  }
37
37
  exports.generateSecret = generateSecret;
38
38
  async function generateKeyPair(alg, options) {
@@ -57,8 +57,8 @@ async function generateKeyPair(alg, options) {
57
57
  modulusLength,
58
58
  publicExponent: 0x10001,
59
59
  });
60
- (0, check_modulus_length_js_1.setModulusLength)(keypair.privateKey, modulusLength);
61
- (0, check_modulus_length_js_1.setModulusLength)(keypair.publicKey, modulusLength);
60
+ check_modulus_length_js_1.setModulusLength(keypair.privateKey, modulusLength);
61
+ check_modulus_length_js_1.setModulusLength(keypair.publicKey, modulusLength);
62
62
  return keypair;
63
63
  }
64
64
  case 'ES256':
@@ -28,14 +28,14 @@ const namedCurveToJOSE = (namedCurve) => {
28
28
  const getNamedCurve = (kee, raw) => {
29
29
  var _a;
30
30
  let key;
31
- if ((0, webcrypto_js_1.isCryptoKey)(kee)) {
32
- key = (0, webcrypto_js_1.getKeyObject)(kee);
31
+ if (webcrypto_js_1.isCryptoKey(kee)) {
32
+ key = webcrypto_js_1.getKeyObject(kee);
33
33
  }
34
- else if ((0, is_key_object_js_1.default)(kee)) {
34
+ else if (is_key_object_js_1.default(kee)) {
35
35
  key = kee;
36
36
  }
37
37
  else {
38
- throw new TypeError((0, invalid_key_input_js_1.default)(kee, 'KeyObject', 'CryptoKey'));
38
+ throw new TypeError(invalid_key_input_js_1.default(kee, 'KeyObject', 'CryptoKey'));
39
39
  }
40
40
  if (key.type === 'secret') {
41
41
  throw new TypeError('only "private" or "public" type keys can be used for this operation');
@@ -53,7 +53,7 @@ const getNamedCurve = (kee, raw) => {
53
53
  }
54
54
  let namedCurve = (_a = key.asymmetricKeyDetails) === null || _a === void 0 ? void 0 : _a.namedCurve;
55
55
  if (!namedCurve && key.type === 'private') {
56
- namedCurve = getNamedCurve((0, crypto_1.createPublicKey)(key), true);
56
+ namedCurve = getNamedCurve(crypto_1.createPublicKey(key), true);
57
57
  }
58
58
  else if (!namedCurve) {
59
59
  const buf = key.export({ format: 'der', type: 'spki' });
@@ -7,16 +7,16 @@ const invalid_key_input_js_1 = require("./invalid_key_input.js");
7
7
  function getSignVerifyKey(alg, key, usage) {
8
8
  if (key instanceof Uint8Array) {
9
9
  if (!alg.startsWith('HS')) {
10
- throw new TypeError((0, invalid_key_input_js_1.default)(key, 'KeyObject', 'CryptoKey'));
10
+ throw new TypeError(invalid_key_input_js_1.default(key, 'KeyObject', 'CryptoKey'));
11
11
  }
12
- return (0, secret_key_js_1.default)(key);
12
+ return secret_key_js_1.default(key);
13
13
  }
14
14
  if (key instanceof crypto.KeyObject) {
15
15
  return key;
16
16
  }
17
- if ((0, webcrypto_js_1.isCryptoKey)(key)) {
18
- return (0, webcrypto_js_1.getKeyObject)(key, alg, new Set([usage]));
17
+ if (webcrypto_js_1.isCryptoKey(key)) {
18
+ return webcrypto_js_1.getKeyObject(key, alg, new Set([usage]));
19
19
  }
20
- throw new TypeError((0, invalid_key_input_js_1.default)(key, 'KeyObject', 'CryptoKey', 'Uint8Array'));
20
+ throw new TypeError(invalid_key_input_js_1.default(key, 'KeyObject', 'CryptoKey', 'Uint8Array'));
21
21
  }
22
22
  exports.default = getSignVerifyKey;
@@ -24,12 +24,12 @@ exports.default = (actual, ...types) => {
24
24
  msg += ` Received an instance of ${actual.constructor.name}`;
25
25
  }
26
26
  else {
27
- const inspected = (0, util_1.inspect)(actual, { depth: -1 });
27
+ const inspected = util_1.inspect(actual, { depth: -1 });
28
28
  msg += ` Received ${inspected}`;
29
29
  }
30
30
  }
31
31
  else {
32
- let inspected = (0, util_1.inspect)(actual, { colors: false });
32
+ let inspected = util_1.inspect(actual, { colors: false });
33
33
  if (inspected.length > 25)
34
34
  inspected = `${inspected.slice(0, 25)}...`;
35
35
  msg += ` Received type ${typeof actual} (${inspected})`;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.types = void 0;
4
4
  const webcrypto_js_1 = require("./webcrypto.js");
5
5
  const is_key_object_js_1 = require("./is_key_object.js");
6
- exports.default = (key) => (0, is_key_object_js_1.default)(key) || (0, webcrypto_js_1.isCryptoKey)(key);
6
+ exports.default = (key) => is_key_object_js_1.default(key) || webcrypto_js_1.isCryptoKey(key);
7
7
  const types = ['KeyObject'];
8
8
  exports.types = types;
9
9
  if (parseInt(process.versions.node) >= 16) {
@@ -14,12 +14,12 @@ const jwkImportSupported = major >= 16 || (major === 15 && minor >= 12);
14
14
  const parse = (jwk) => {
15
15
  if (jwkImportSupported && jwk.kty !== 'oct') {
16
16
  return jwk.d
17
- ? (0, crypto_1.createPrivateKey)({ format: 'jwk', key: jwk })
18
- : (0, crypto_1.createPublicKey)({ format: 'jwk', key: jwk });
17
+ ? crypto_1.createPrivateKey({ format: 'jwk', key: jwk })
18
+ : crypto_1.createPublicKey({ format: 'jwk', key: jwk });
19
19
  }
20
20
  switch (jwk.kty) {
21
21
  case 'oct': {
22
- return (0, crypto_1.createSecretKey)((0, base64url_js_1.decode)(jwk.k));
22
+ return crypto_1.createSecretKey(base64url_js_1.decode(jwk.k));
23
23
  }
24
24
  case 'RSA': {
25
25
  const enc = new asn1_sequence_encoder_js_1.default();
@@ -47,8 +47,8 @@ const parse = (jwk) => {
47
47
  format: 'der',
48
48
  type: 'pkcs1',
49
49
  };
50
- const keyObject = isPrivate ? (0, crypto_1.createPrivateKey)(createInput) : (0, crypto_1.createPublicKey)(createInput);
51
- (0, check_modulus_length_js_1.setModulusLength)(keyObject, modulus.length << 3);
50
+ const keyObject = isPrivate ? crypto_1.createPrivateKey(createInput) : crypto_1.createPublicKey(createInput);
51
+ check_modulus_length_js_1.setModulusLength(keyObject, modulus.length << 3);
52
52
  return keyObject;
53
53
  }
54
54
  case 'EC': {
@@ -78,8 +78,8 @@ const parse = (jwk) => {
78
78
  const f3 = enc$4.end(Buffer.from([0x04]));
79
79
  enc.add(f3);
80
80
  const der = enc.end();
81
- const keyObject = (0, crypto_1.createPrivateKey)({ key: der, format: 'der', type: 'pkcs8' });
82
- (0, get_named_curve_js_1.setCurve)(keyObject, jwk.crv);
81
+ const keyObject = crypto_1.createPrivateKey({ key: der, format: 'der', type: 'pkcs8' });
82
+ get_named_curve_js_1.setCurve(keyObject, jwk.crv);
83
83
  return keyObject;
84
84
  }
85
85
  const enc$1 = new asn1_sequence_encoder_js_1.default();
@@ -88,8 +88,8 @@ const parse = (jwk) => {
88
88
  enc.add(enc$1.end());
89
89
  enc.bitStr(pub);
90
90
  const der = enc.end();
91
- const keyObject = (0, crypto_1.createPublicKey)({ key: der, format: 'der', type: 'spki' });
92
- (0, get_named_curve_js_1.setCurve)(keyObject, jwk.crv);
91
+ const keyObject = crypto_1.createPublicKey({ key: der, format: 'der', type: 'spki' });
92
+ get_named_curve_js_1.setCurve(keyObject, jwk.crv);
93
93
  return keyObject;
94
94
  }
95
95
  case 'OKP': {
@@ -105,14 +105,14 @@ const parse = (jwk) => {
105
105
  const f = enc$2.end(Buffer.from([0x04]));
106
106
  enc.add(f);
107
107
  const der = enc.end();
108
- return (0, crypto_1.createPrivateKey)({ key: der, format: 'der', type: 'pkcs8' });
108
+ return crypto_1.createPrivateKey({ key: der, format: 'der', type: 'pkcs8' });
109
109
  }
110
110
  const enc$1 = new asn1_sequence_encoder_js_1.default();
111
111
  enc$1.oidFor(jwk.crv);
112
112
  enc.add(enc$1.end());
113
113
  enc.bitStr(Buffer.from(jwk.x, 'base64'));
114
114
  const der = enc.end();
115
- return (0, crypto_1.createPublicKey)({ key: der, format: 'der', type: 'spki' });
115
+ return crypto_1.createPublicKey({ key: der, format: 'der', type: 'spki' });
116
116
  }
117
117
  default:
118
118
  throw new errors_js_1.JOSENotSupported('Invalid or unsupported JWK "kty" (Key Type) Parameter value');