jose 4.15.4 → 5.0.1

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 (155) hide show
  1. package/README.md +2 -1
  2. package/dist/browser/index.js +2 -4
  3. package/dist/browser/jwe/flattened/decrypt.js +13 -22
  4. package/dist/browser/jwe/flattened/encrypt.js +3 -18
  5. package/dist/browser/jwe/general/decrypt.js +1 -1
  6. package/dist/browser/jwe/general/encrypt.js +8 -13
  7. package/dist/browser/jwk/embedded.js +2 -2
  8. package/dist/browser/jwk/thumbprint.js +2 -2
  9. package/dist/browser/jwks/local.js +2 -2
  10. package/dist/browser/jwks/remote.js +4 -4
  11. package/dist/browser/jws/flattened/sign.js +1 -1
  12. package/dist/browser/jws/flattened/verify.js +6 -7
  13. package/dist/browser/jws/general/verify.js +1 -1
  14. package/dist/browser/jwt/produce.js +19 -4
  15. package/dist/browser/jwt/sign.js +1 -2
  16. package/dist/browser/jwt/unsecured.js +1 -1
  17. package/dist/browser/jwt/verify.js +1 -2
  18. package/dist/browser/key/import.js +1 -6
  19. package/dist/browser/lib/decrypt_key_management.js +6 -6
  20. package/dist/browser/lib/jwt_claims_set.js +1 -1
  21. package/dist/browser/runtime/asn1.js +1 -2
  22. package/dist/browser/runtime/base64url.js +1 -1
  23. package/dist/browser/runtime/decrypt.js +3 -3
  24. package/dist/browser/runtime/fetch_jwks.js +1 -1
  25. package/dist/browser/runtime/generate.js +5 -8
  26. package/dist/browser/runtime/jwk_to_key.js +2 -45
  27. package/dist/browser/runtime/verify.js +1 -1
  28. package/dist/browser/util/decode_jwt.js +2 -2
  29. package/dist/browser/util/decode_protected_header.js +1 -1
  30. package/dist/browser/util/errors.js +1 -2
  31. package/dist/node/cjs/jwe/compact/encrypt.js +1 -0
  32. package/dist/node/cjs/jwe/flattened/decrypt.js +7 -16
  33. package/dist/node/cjs/jwe/flattened/encrypt.js +12 -19
  34. package/dist/node/cjs/jwe/general/encrypt.js +16 -13
  35. package/dist/node/cjs/jwk/embedded.js +2 -2
  36. package/dist/node/cjs/jwk/thumbprint.js +2 -2
  37. package/dist/node/cjs/jwks/local.js +3 -2
  38. package/dist/node/cjs/jwks/remote.js +13 -6
  39. package/dist/node/cjs/jws/compact/sign.js +1 -0
  40. package/dist/node/cjs/jws/flattened/sign.js +4 -1
  41. package/dist/node/cjs/jws/flattened/verify.js +3 -4
  42. package/dist/node/cjs/jws/general/sign.js +7 -1
  43. package/dist/node/cjs/jwt/encrypt.js +7 -0
  44. package/dist/node/cjs/jwt/produce.js +20 -4
  45. package/dist/node/cjs/jwt/sign.js +2 -2
  46. package/dist/node/cjs/jwt/verify.js +1 -2
  47. package/dist/node/cjs/key/import.js +2 -7
  48. package/dist/node/cjs/lib/aesgcmkw.js +1 -1
  49. package/dist/node/cjs/lib/decrypt_key_management.js +1 -1
  50. package/dist/node/cjs/lib/encrypt_key_management.js +1 -1
  51. package/dist/node/cjs/runtime/aeskw.js +6 -6
  52. package/dist/node/cjs/runtime/asn1.js +8 -8
  53. package/dist/node/cjs/runtime/base64url.js +6 -11
  54. package/dist/node/cjs/runtime/cbc_tag.js +2 -2
  55. package/dist/node/cjs/runtime/check_key_length.js +8 -0
  56. package/dist/node/cjs/runtime/ciphers.js +2 -2
  57. package/dist/node/cjs/runtime/decrypt.js +4 -4
  58. package/dist/node/cjs/runtime/digest.js +2 -2
  59. package/dist/node/cjs/runtime/ecdhes.js +7 -7
  60. package/dist/node/cjs/runtime/encrypt.js +4 -4
  61. package/dist/node/cjs/runtime/fetch_jwks.js +4 -4
  62. package/dist/node/cjs/runtime/generate.js +7 -11
  63. package/dist/node/cjs/runtime/get_named_curve.js +7 -45
  64. package/dist/node/cjs/runtime/get_sign_verify_key.js +4 -4
  65. package/dist/node/cjs/runtime/is_key_like.js +1 -1
  66. package/dist/node/cjs/runtime/is_key_object.js +2 -5
  67. package/dist/node/cjs/runtime/jwk_to_key.js +2 -113
  68. package/dist/node/cjs/runtime/key_to_jwk.js +6 -130
  69. package/dist/node/cjs/runtime/node_key.js +9 -18
  70. package/dist/node/cjs/runtime/pbes2kw.js +4 -4
  71. package/dist/node/cjs/runtime/random.js +2 -2
  72. package/dist/node/cjs/runtime/rsaes.js +8 -8
  73. package/dist/node/cjs/runtime/sign.js +3 -9
  74. package/dist/node/cjs/runtime/timing_safe_equal.js +2 -2
  75. package/dist/node/cjs/runtime/verify.js +3 -10
  76. package/dist/node/cjs/runtime/webcrypto.js +4 -6
  77. package/dist/node/cjs/util/errors.js +26 -59
  78. package/dist/node/esm/jwe/compact/encrypt.js +1 -0
  79. package/dist/node/esm/jwe/flattened/decrypt.js +7 -16
  80. package/dist/node/esm/jwe/flattened/encrypt.js +12 -19
  81. package/dist/node/esm/jwe/general/encrypt.js +17 -14
  82. package/dist/node/esm/jwk/embedded.js +2 -2
  83. package/dist/node/esm/jwk/thumbprint.js +2 -2
  84. package/dist/node/esm/jwks/local.js +3 -2
  85. package/dist/node/esm/jwks/remote.js +13 -6
  86. package/dist/node/esm/jws/compact/sign.js +1 -0
  87. package/dist/node/esm/jws/flattened/sign.js +4 -1
  88. package/dist/node/esm/jws/flattened/verify.js +3 -4
  89. package/dist/node/esm/jws/general/sign.js +7 -1
  90. package/dist/node/esm/jwt/encrypt.js +7 -0
  91. package/dist/node/esm/jwt/produce.js +20 -4
  92. package/dist/node/esm/jwt/sign.js +2 -2
  93. package/dist/node/esm/jwt/verify.js +1 -2
  94. package/dist/node/esm/key/import.js +2 -7
  95. package/dist/node/esm/lib/aesgcmkw.js +1 -1
  96. package/dist/node/esm/lib/decrypt_key_management.js +1 -1
  97. package/dist/node/esm/lib/encrypt_key_management.js +1 -1
  98. package/dist/node/esm/runtime/aeskw.js +2 -2
  99. package/dist/node/esm/runtime/asn1.js +2 -2
  100. package/dist/node/esm/runtime/base64url.js +4 -10
  101. package/dist/node/esm/runtime/cbc_tag.js +1 -1
  102. package/dist/node/esm/runtime/check_key_length.js +6 -0
  103. package/dist/node/esm/runtime/ciphers.js +2 -2
  104. package/dist/node/esm/runtime/decrypt.js +1 -1
  105. package/dist/node/esm/runtime/digest.js +1 -1
  106. package/dist/node/esm/runtime/ecdhes.js +2 -2
  107. package/dist/node/esm/runtime/encrypt.js +1 -1
  108. package/dist/node/esm/runtime/fetch_jwks.js +3 -3
  109. package/dist/node/esm/runtime/generate.js +5 -9
  110. package/dist/node/esm/runtime/get_named_curve.js +5 -42
  111. package/dist/node/esm/runtime/get_sign_verify_key.js +1 -1
  112. package/dist/node/esm/runtime/is_key_like.js +1 -1
  113. package/dist/node/esm/runtime/is_key_object.js +2 -5
  114. package/dist/node/esm/runtime/jwk_to_key.js +2 -113
  115. package/dist/node/esm/runtime/key_to_jwk.js +5 -129
  116. package/dist/node/esm/runtime/node_key.js +7 -16
  117. package/dist/node/esm/runtime/pbes2kw.js +2 -2
  118. package/dist/node/esm/runtime/random.js +1 -1
  119. package/dist/node/esm/runtime/rsaes.js +3 -3
  120. package/dist/node/esm/runtime/sign.js +3 -9
  121. package/dist/node/esm/runtime/timing_safe_equal.js +1 -1
  122. package/dist/node/esm/runtime/verify.js +3 -10
  123. package/dist/node/esm/runtime/webcrypto.js +3 -6
  124. package/dist/node/esm/util/errors.js +26 -59
  125. package/dist/types/index.d.ts +1 -1
  126. package/dist/types/jwe/compact/decrypt.d.ts +1 -1
  127. package/dist/types/jwe/flattened/decrypt.d.ts +1 -1
  128. package/dist/types/jwe/general/decrypt.d.ts +1 -1
  129. package/dist/types/jwe/general/encrypt.d.ts +3 -7
  130. package/dist/types/jwk/embedded.d.ts +1 -1
  131. package/dist/types/jwks/local.d.ts +3 -3
  132. package/dist/types/jwks/remote.d.ts +1 -1
  133. package/dist/types/jws/compact/verify.d.ts +1 -1
  134. package/dist/types/jws/flattened/verify.d.ts +1 -1
  135. package/dist/types/jws/general/verify.d.ts +1 -1
  136. package/dist/types/jwt/decrypt.d.ts +3 -3
  137. package/dist/types/jwt/produce.d.ts +12 -12
  138. package/dist/types/jwt/unsecured.d.ts +3 -3
  139. package/dist/types/jwt/verify.d.ts +3 -3
  140. package/dist/types/key/generate_key_pair.d.ts +7 -5
  141. package/dist/types/key/generate_secret.d.ts +1 -1
  142. package/dist/types/key/import.d.ts +4 -6
  143. package/dist/types/types.d.ts +13 -50
  144. package/package.json +1 -1
  145. package/dist/browser/runtime/zlib.js +0 -7
  146. package/dist/node/cjs/runtime/asn1_sequence_decoder.js +0 -47
  147. package/dist/node/cjs/runtime/asn1_sequence_encoder.js +0 -91
  148. package/dist/node/cjs/runtime/check_modulus_length.js +0 -52
  149. package/dist/node/cjs/runtime/flags.js +0 -8
  150. package/dist/node/cjs/runtime/zlib.js +0 -11
  151. package/dist/node/esm/runtime/asn1_sequence_decoder.js +0 -44
  152. package/dist/node/esm/runtime/asn1_sequence_encoder.js +0 -88
  153. package/dist/node/esm/runtime/check_modulus_length.js +0 -48
  154. package/dist/node/esm/runtime/flags.js +0 -5
  155. package/dist/node/esm/runtime/zlib.js +0 -6
@@ -1,118 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const buffer_1 = require("buffer");
4
- const crypto_1 = require("crypto");
5
- const base64url_js_1 = require("./base64url.js");
6
- const errors_js_1 = require("../util/errors.js");
7
- const get_named_curve_js_1 = require("./get_named_curve.js");
8
- const check_modulus_length_js_1 = require("./check_modulus_length.js");
9
- const asn1_sequence_encoder_js_1 = require("./asn1_sequence_encoder.js");
10
- const flags_js_1 = require("./flags.js");
3
+ const node_crypto_1 = require("node:crypto");
11
4
  const parse = (jwk) => {
12
- if (flags_js_1.jwkImport && jwk.kty !== 'oct') {
13
- return jwk.d
14
- ? (0, crypto_1.createPrivateKey)({ format: 'jwk', key: jwk })
15
- : (0, crypto_1.createPublicKey)({ format: 'jwk', key: jwk });
16
- }
17
- switch (jwk.kty) {
18
- case 'oct': {
19
- return (0, crypto_1.createSecretKey)((0, base64url_js_1.decode)(jwk.k));
20
- }
21
- case 'RSA': {
22
- const enc = new asn1_sequence_encoder_js_1.default();
23
- const isPrivate = jwk.d !== undefined;
24
- const modulus = buffer_1.Buffer.from(jwk.n, 'base64');
25
- const exponent = buffer_1.Buffer.from(jwk.e, 'base64');
26
- if (isPrivate) {
27
- enc.zero();
28
- enc.unsignedInteger(modulus);
29
- enc.unsignedInteger(exponent);
30
- enc.unsignedInteger(buffer_1.Buffer.from(jwk.d, 'base64'));
31
- enc.unsignedInteger(buffer_1.Buffer.from(jwk.p, 'base64'));
32
- enc.unsignedInteger(buffer_1.Buffer.from(jwk.q, 'base64'));
33
- enc.unsignedInteger(buffer_1.Buffer.from(jwk.dp, 'base64'));
34
- enc.unsignedInteger(buffer_1.Buffer.from(jwk.dq, 'base64'));
35
- enc.unsignedInteger(buffer_1.Buffer.from(jwk.qi, 'base64'));
36
- }
37
- else {
38
- enc.unsignedInteger(modulus);
39
- enc.unsignedInteger(exponent);
40
- }
41
- const der = enc.end();
42
- const createInput = {
43
- key: der,
44
- format: 'der',
45
- type: 'pkcs1',
46
- };
47
- const keyObject = isPrivate ? (0, crypto_1.createPrivateKey)(createInput) : (0, crypto_1.createPublicKey)(createInput);
48
- (0, check_modulus_length_js_1.setModulusLength)(keyObject, modulus.length << 3);
49
- return keyObject;
50
- }
51
- case 'EC': {
52
- const enc = new asn1_sequence_encoder_js_1.default();
53
- const isPrivate = jwk.d !== undefined;
54
- const pub = buffer_1.Buffer.concat([
55
- buffer_1.Buffer.alloc(1, 4),
56
- buffer_1.Buffer.from(jwk.x, 'base64'),
57
- buffer_1.Buffer.from(jwk.y, 'base64'),
58
- ]);
59
- if (isPrivate) {
60
- enc.zero();
61
- const enc$1 = new asn1_sequence_encoder_js_1.default();
62
- enc$1.oidFor('ecPublicKey');
63
- enc$1.oidFor(jwk.crv);
64
- enc.add(enc$1.end());
65
- const enc$2 = new asn1_sequence_encoder_js_1.default();
66
- enc$2.one();
67
- enc$2.octStr(buffer_1.Buffer.from(jwk.d, 'base64'));
68
- const enc$3 = new asn1_sequence_encoder_js_1.default();
69
- enc$3.bitStr(pub);
70
- const f2 = enc$3.end(buffer_1.Buffer.from([0xa1]));
71
- enc$2.add(f2);
72
- const f = enc$2.end();
73
- const enc$4 = new asn1_sequence_encoder_js_1.default();
74
- enc$4.add(f);
75
- const f3 = enc$4.end(buffer_1.Buffer.from([0x04]));
76
- enc.add(f3);
77
- const der = enc.end();
78
- const keyObject = (0, crypto_1.createPrivateKey)({ key: der, format: 'der', type: 'pkcs8' });
79
- (0, get_named_curve_js_1.setCurve)(keyObject, jwk.crv);
80
- return keyObject;
81
- }
82
- const enc$1 = new asn1_sequence_encoder_js_1.default();
83
- enc$1.oidFor('ecPublicKey');
84
- enc$1.oidFor(jwk.crv);
85
- enc.add(enc$1.end());
86
- enc.bitStr(pub);
87
- const der = enc.end();
88
- const keyObject = (0, crypto_1.createPublicKey)({ key: der, format: 'der', type: 'spki' });
89
- (0, get_named_curve_js_1.setCurve)(keyObject, jwk.crv);
90
- return keyObject;
91
- }
92
- case 'OKP': {
93
- const enc = new asn1_sequence_encoder_js_1.default();
94
- const isPrivate = jwk.d !== undefined;
95
- if (isPrivate) {
96
- enc.zero();
97
- const enc$1 = new asn1_sequence_encoder_js_1.default();
98
- enc$1.oidFor(jwk.crv);
99
- enc.add(enc$1.end());
100
- const enc$2 = new asn1_sequence_encoder_js_1.default();
101
- enc$2.octStr(buffer_1.Buffer.from(jwk.d, 'base64'));
102
- const f = enc$2.end(buffer_1.Buffer.from([0x04]));
103
- enc.add(f);
104
- const der = enc.end();
105
- return (0, crypto_1.createPrivateKey)({ key: der, format: 'der', type: 'pkcs8' });
106
- }
107
- const enc$1 = new asn1_sequence_encoder_js_1.default();
108
- enc$1.oidFor(jwk.crv);
109
- enc.add(enc$1.end());
110
- enc.bitStr(buffer_1.Buffer.from(jwk.x, 'base64'));
111
- const der = enc.end();
112
- return (0, crypto_1.createPublicKey)({ key: der, format: 'der', type: 'spki' });
113
- }
114
- default:
115
- throw new errors_js_1.JOSENotSupported('Invalid or unsupported JWK "kty" (Key Type) Parameter value');
116
- }
5
+ return (jwk.d ? node_crypto_1.createPrivateKey : node_crypto_1.createPublicKey)({ format: 'jwk', key: jwk });
117
6
  };
118
7
  exports.default = parse;
@@ -1,22 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("crypto");
3
+ const node_crypto_1 = require("node:crypto");
4
4
  const base64url_js_1 = require("./base64url.js");
5
- const asn1_sequence_decoder_js_1 = require("./asn1_sequence_decoder.js");
6
5
  const errors_js_1 = require("../util/errors.js");
7
- const get_named_curve_js_1 = require("./get_named_curve.js");
8
6
  const webcrypto_js_1 = require("./webcrypto.js");
9
7
  const is_key_object_js_1 = require("./is_key_object.js");
10
8
  const invalid_key_input_js_1 = require("../lib/invalid_key_input.js");
11
9
  const is_key_like_js_1 = require("./is_key_like.js");
12
- const flags_js_1 = require("./flags.js");
13
10
  const keyToJWK = (key) => {
14
11
  let keyObject;
15
12
  if ((0, webcrypto_js_1.isCryptoKey)(key)) {
16
13
  if (!key.extractable) {
17
14
  throw new TypeError('CryptoKey is not extractable');
18
15
  }
19
- keyObject = crypto_1.KeyObject.from(key);
16
+ keyObject = node_crypto_1.KeyObject.from(key);
20
17
  }
21
18
  else if ((0, is_key_object_js_1.default)(key)) {
22
19
  keyObject = key;
@@ -30,131 +27,10 @@ const keyToJWK = (key) => {
30
27
  else {
31
28
  throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, 'Uint8Array'));
32
29
  }
33
- if (flags_js_1.jwkExport) {
34
- if (keyObject.type !== 'secret' &&
35
- !['rsa', 'ec', 'ed25519', 'x25519', 'ed448', 'x448'].includes(keyObject.asymmetricKeyType)) {
36
- throw new errors_js_1.JOSENotSupported('Unsupported key asymmetricKeyType');
37
- }
38
- return keyObject.export({ format: 'jwk' });
39
- }
40
- switch (keyObject.type) {
41
- case 'secret':
42
- return {
43
- kty: 'oct',
44
- k: (0, base64url_js_1.encode)(keyObject.export()),
45
- };
46
- case 'private':
47
- case 'public': {
48
- switch (keyObject.asymmetricKeyType) {
49
- case 'rsa': {
50
- const der = keyObject.export({ format: 'der', type: 'pkcs1' });
51
- const dec = new asn1_sequence_decoder_js_1.default(der);
52
- if (keyObject.type === 'private') {
53
- dec.unsignedInteger();
54
- }
55
- const n = (0, base64url_js_1.encode)(dec.unsignedInteger());
56
- const e = (0, base64url_js_1.encode)(dec.unsignedInteger());
57
- let jwk;
58
- if (keyObject.type === 'private') {
59
- jwk = {
60
- d: (0, base64url_js_1.encode)(dec.unsignedInteger()),
61
- p: (0, base64url_js_1.encode)(dec.unsignedInteger()),
62
- q: (0, base64url_js_1.encode)(dec.unsignedInteger()),
63
- dp: (0, base64url_js_1.encode)(dec.unsignedInteger()),
64
- dq: (0, base64url_js_1.encode)(dec.unsignedInteger()),
65
- qi: (0, base64url_js_1.encode)(dec.unsignedInteger()),
66
- };
67
- }
68
- dec.end();
69
- return { kty: 'RSA', n, e, ...jwk };
70
- }
71
- case 'ec': {
72
- const crv = (0, get_named_curve_js_1.default)(keyObject);
73
- let len;
74
- let offset;
75
- let correction;
76
- switch (crv) {
77
- case 'secp256k1':
78
- len = 64;
79
- offset = 31 + 2;
80
- correction = -1;
81
- break;
82
- case 'P-256':
83
- len = 64;
84
- offset = 34 + 2;
85
- correction = -1;
86
- break;
87
- case 'P-384':
88
- len = 96;
89
- offset = 33 + 2;
90
- correction = -3;
91
- break;
92
- case 'P-521':
93
- len = 132;
94
- offset = 33 + 2;
95
- correction = -3;
96
- break;
97
- default:
98
- throw new errors_js_1.JOSENotSupported('Unsupported curve');
99
- }
100
- if (keyObject.type === 'public') {
101
- const der = keyObject.export({ type: 'spki', format: 'der' });
102
- return {
103
- kty: 'EC',
104
- crv,
105
- x: (0, base64url_js_1.encode)(der.subarray(-len, -len / 2)),
106
- y: (0, base64url_js_1.encode)(der.subarray(-len / 2)),
107
- };
108
- }
109
- const der = keyObject.export({ type: 'pkcs8', format: 'der' });
110
- if (der.length < 100) {
111
- offset += correction;
112
- }
113
- return {
114
- ...keyToJWK((0, crypto_1.createPublicKey)(keyObject)),
115
- d: (0, base64url_js_1.encode)(der.subarray(offset, offset + len / 2)),
116
- };
117
- }
118
- case 'ed25519':
119
- case 'x25519': {
120
- const crv = (0, get_named_curve_js_1.default)(keyObject);
121
- if (keyObject.type === 'public') {
122
- const der = keyObject.export({ type: 'spki', format: 'der' });
123
- return {
124
- kty: 'OKP',
125
- crv,
126
- x: (0, base64url_js_1.encode)(der.subarray(-32)),
127
- };
128
- }
129
- const der = keyObject.export({ type: 'pkcs8', format: 'der' });
130
- return {
131
- ...keyToJWK((0, crypto_1.createPublicKey)(keyObject)),
132
- d: (0, base64url_js_1.encode)(der.subarray(-32)),
133
- };
134
- }
135
- case 'ed448':
136
- case 'x448': {
137
- const crv = (0, get_named_curve_js_1.default)(keyObject);
138
- if (keyObject.type === 'public') {
139
- const der = keyObject.export({ type: 'spki', format: 'der' });
140
- return {
141
- kty: 'OKP',
142
- crv,
143
- x: (0, base64url_js_1.encode)(der.subarray(crv === 'Ed448' ? -57 : -56)),
144
- };
145
- }
146
- const der = keyObject.export({ type: 'pkcs8', format: 'der' });
147
- return {
148
- ...keyToJWK((0, crypto_1.createPublicKey)(keyObject)),
149
- d: (0, base64url_js_1.encode)(der.subarray(crv === 'Ed448' ? -57 : -56)),
150
- };
151
- }
152
- default:
153
- throw new errors_js_1.JOSENotSupported('Unsupported key asymmetricKeyType');
154
- }
155
- }
156
- default:
157
- throw new errors_js_1.JOSENotSupported('Unsupported key type');
30
+ if (keyObject.type !== 'secret' &&
31
+ !['rsa', 'ec', 'ed25519', 'x25519', 'ed448', 'x448'].includes(keyObject.asymmetricKeyType)) {
32
+ throw new errors_js_1.JOSENotSupported('Unsupported key asymmetricKeyType');
158
33
  }
34
+ return keyObject.export({ format: 'jwk' });
159
35
  };
160
36
  exports.default = keyToJWK;
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("crypto");
3
+ const node_crypto_1 = require("node:crypto");
4
4
  const get_named_curve_js_1 = require("./get_named_curve.js");
5
5
  const errors_js_1 = require("../util/errors.js");
6
- const check_modulus_length_js_1 = require("./check_modulus_length.js");
7
- const flags_js_1 = require("./flags.js");
6
+ const check_key_length_js_1 = require("./check_key_length.js");
8
7
  const PSS = {
9
- padding: crypto_1.constants.RSA_PKCS1_PSS_PADDING,
10
- saltLength: crypto_1.constants.RSA_PSS_SALTLEN_DIGEST,
8
+ padding: node_crypto_1.constants.RSA_PKCS1_PSS_PADDING,
9
+ saltLength: node_crypto_1.constants.RSA_PSS_SALTLEN_DIGEST,
11
10
  };
12
11
  const ecCurveAlgMap = new Map([
13
12
  ['ES256', 'P-256'],
@@ -28,11 +27,11 @@ function keyForCrypto(alg, key) {
28
27
  if (key.asymmetricKeyType !== 'rsa') {
29
28
  throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa');
30
29
  }
31
- (0, check_modulus_length_js_1.default)(key, alg);
30
+ (0, check_key_length_js_1.default)(key, alg);
32
31
  return key;
33
- case flags_js_1.rsaPssParams && 'PS256':
34
- case flags_js_1.rsaPssParams && 'PS384':
35
- case flags_js_1.rsaPssParams && 'PS512':
32
+ case 'PS256':
33
+ case 'PS384':
34
+ case 'PS512':
36
35
  if (key.asymmetricKeyType === 'rsa-pss') {
37
36
  const { hashAlgorithm, mgf1HashAlgorithm, saltLength } = key.asymmetricKeyDetails;
38
37
  const length = parseInt(alg.slice(-3), 10);
@@ -47,15 +46,7 @@ function keyForCrypto(alg, key) {
47
46
  else if (key.asymmetricKeyType !== 'rsa') {
48
47
  throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa or rsa-pss');
49
48
  }
50
- (0, check_modulus_length_js_1.default)(key, alg);
51
- return { key, ...PSS };
52
- case !flags_js_1.rsaPssParams && 'PS256':
53
- case !flags_js_1.rsaPssParams && 'PS384':
54
- case !flags_js_1.rsaPssParams && 'PS512':
55
- if (key.asymmetricKeyType !== 'rsa') {
56
- throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa');
57
- }
58
- (0, check_modulus_length_js_1.default)(key, alg);
49
+ (0, check_key_length_js_1.default)(key, alg);
59
50
  return { key, ...PSS };
60
51
  case 'ES256':
61
52
  case 'ES256K':
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.decrypt = exports.encrypt = void 0;
4
- const util_1 = require("util");
5
- const crypto_1 = require("crypto");
4
+ const node_util_1 = require("node:util");
5
+ const node_crypto_1 = require("node:crypto");
6
6
  const random_js_1 = require("./random.js");
7
7
  const buffer_utils_js_1 = require("../lib/buffer_utils.js");
8
8
  const base64url_js_1 = require("./base64url.js");
@@ -13,7 +13,7 @@ const crypto_key_js_1 = require("../lib/crypto_key.js");
13
13
  const is_key_object_js_1 = require("./is_key_object.js");
14
14
  const invalid_key_input_js_1 = require("../lib/invalid_key_input.js");
15
15
  const is_key_like_js_1 = require("./is_key_like.js");
16
- const pbkdf2 = (0, util_1.promisify)(crypto_1.pbkdf2);
16
+ const pbkdf2 = (0, node_util_1.promisify)(node_crypto_1.pbkdf2);
17
17
  function getPassword(key, alg) {
18
18
  if ((0, is_key_object_js_1.default)(key)) {
19
19
  return key.export();
@@ -23,7 +23,7 @@ function getPassword(key, alg) {
23
23
  }
24
24
  if ((0, webcrypto_js_1.isCryptoKey)(key)) {
25
25
  (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, 'deriveBits', 'deriveKey');
26
- return crypto_1.KeyObject.from(key).export();
26
+ return node_crypto_1.KeyObject.from(key).export();
27
27
  }
28
28
  throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, 'Uint8Array'));
29
29
  }
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = void 0;
4
- var crypto_1 = require("crypto");
5
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return crypto_1.randomFillSync; } });
4
+ var node_crypto_1 = require("node:crypto");
5
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return node_crypto_1.randomFillSync; } });
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.decrypt = exports.encrypt = void 0;
4
- const crypto_1 = require("crypto");
5
- const check_modulus_length_js_1 = require("./check_modulus_length.js");
4
+ const node_crypto_1 = require("node:crypto");
5
+ const check_key_length_js_1 = require("./check_key_length.js");
6
6
  const webcrypto_js_1 = require("./webcrypto.js");
7
7
  const crypto_key_js_1 = require("../lib/crypto_key.js");
8
8
  const is_key_object_js_1 = require("./is_key_object.js");
@@ -12,7 +12,7 @@ const checkKey = (key, alg) => {
12
12
  if (key.asymmetricKeyType !== 'rsa') {
13
13
  throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa');
14
14
  }
15
- (0, check_modulus_length_js_1.default)(key, alg);
15
+ (0, check_key_length_js_1.default)(key, alg);
16
16
  };
17
17
  const resolvePadding = (alg) => {
18
18
  switch (alg) {
@@ -20,9 +20,9 @@ const resolvePadding = (alg) => {
20
20
  case 'RSA-OAEP-256':
21
21
  case 'RSA-OAEP-384':
22
22
  case 'RSA-OAEP-512':
23
- return crypto_1.constants.RSA_PKCS1_OAEP_PADDING;
23
+ return node_crypto_1.constants.RSA_PKCS1_OAEP_PADDING;
24
24
  case 'RSA1_5':
25
- return crypto_1.constants.RSA_PKCS1_PADDING;
25
+ return node_crypto_1.constants.RSA_PKCS1_PADDING;
26
26
  default:
27
27
  return undefined;
28
28
  }
@@ -47,7 +47,7 @@ function ensureKeyObject(key, alg, ...usages) {
47
47
  }
48
48
  if ((0, webcrypto_js_1.isCryptoKey)(key)) {
49
49
  (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, ...usages);
50
- return crypto_1.KeyObject.from(key);
50
+ return node_crypto_1.KeyObject.from(key);
51
51
  }
52
52
  throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types));
53
53
  }
@@ -56,7 +56,7 @@ const encrypt = (alg, key, cek) => {
56
56
  const oaepHash = resolveOaepHash(alg);
57
57
  const keyObject = ensureKeyObject(key, alg, 'wrapKey', 'encrypt');
58
58
  checkKey(keyObject, alg);
59
- return (0, crypto_1.publicEncrypt)({ key: keyObject, oaepHash, padding }, cek);
59
+ return (0, node_crypto_1.publicEncrypt)({ key: keyObject, oaepHash, padding }, cek);
60
60
  };
61
61
  exports.encrypt = encrypt;
62
62
  const decrypt = (alg, key, encryptedKey) => {
@@ -64,6 +64,6 @@ const decrypt = (alg, key, encryptedKey) => {
64
64
  const oaepHash = resolveOaepHash(alg);
65
65
  const keyObject = ensureKeyObject(key, alg, 'unwrapKey', 'decrypt');
66
66
  checkKey(keyObject, alg);
67
- return (0, crypto_1.privateDecrypt)({ key: keyObject, oaepHash, padding }, encryptedKey);
67
+ return (0, node_crypto_1.privateDecrypt)({ key: keyObject, oaepHash, padding }, encryptedKey);
68
68
  };
69
69
  exports.decrypt = decrypt;
@@ -1,18 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto = require("crypto");
4
- const util_1 = require("util");
3
+ const crypto = require("node:crypto");
4
+ const node_util_1 = require("node:util");
5
5
  const dsa_digest_js_1 = require("./dsa_digest.js");
6
6
  const hmac_digest_js_1 = require("./hmac_digest.js");
7
7
  const node_key_js_1 = require("./node_key.js");
8
8
  const get_sign_verify_key_js_1 = require("./get_sign_verify_key.js");
9
- let oneShotSign;
10
- if (crypto.sign.length > 3) {
11
- oneShotSign = (0, util_1.promisify)(crypto.sign);
12
- }
13
- else {
14
- oneShotSign = crypto.sign;
15
- }
9
+ const oneShotSign = (0, node_util_1.promisify)(crypto.sign);
16
10
  const sign = async (alg, key, data) => {
17
11
  const keyObject = (0, get_sign_verify_key_js_1.default)(alg, key, 'sign');
18
12
  if (alg.startsWith('HS')) {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("crypto");
4
- const timingSafeEqual = crypto_1.timingSafeEqual;
3
+ const node_crypto_1 = require("node:crypto");
4
+ const timingSafeEqual = node_crypto_1.timingSafeEqual;
5
5
  exports.default = timingSafeEqual;
@@ -1,19 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto = require("crypto");
4
- const util_1 = require("util");
3
+ const crypto = require("node:crypto");
4
+ const node_util_1 = require("node:util");
5
5
  const dsa_digest_js_1 = require("./dsa_digest.js");
6
6
  const node_key_js_1 = require("./node_key.js");
7
7
  const sign_js_1 = require("./sign.js");
8
8
  const get_sign_verify_key_js_1 = require("./get_sign_verify_key.js");
9
- const flags_js_1 = require("./flags.js");
10
- let oneShotVerify;
11
- if (crypto.verify.length > 4 && flags_js_1.oneShotCallback) {
12
- oneShotVerify = (0, util_1.promisify)(crypto.verify);
13
- }
14
- else {
15
- oneShotVerify = crypto.verify;
16
- }
9
+ const oneShotVerify = (0, node_util_1.promisify)(crypto.verify);
17
10
  const verify = async (alg, key, signature, data) => {
18
11
  const keyObject = (0, get_sign_verify_key_js_1.default)(alg, key, 'verify');
19
12
  if (alg.startsWith('HS')) {
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isCryptoKey = void 0;
4
- const crypto = require("crypto");
5
- const util = require("util");
4
+ const crypto = require("node:crypto");
5
+ const util = require("node:util");
6
6
  const webcrypto = crypto.webcrypto;
7
7
  exports.default = webcrypto;
8
- exports.isCryptoKey = util.types.isCryptoKey
9
- ? (key) => util.types.isCryptoKey(key)
10
- :
11
- (key) => false;
8
+ const isCryptoKey = (key) => util.types.isCryptoKey(key);
9
+ exports.isCryptoKey = isCryptoKey;