@agnostack/verifyd 2.5.0-alpha.2 → 2.5.0-alpha.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.
@@ -13,8 +13,11 @@ const getChunkedRawBody = (req) => __awaiter(void 0, void 0, void 0, function* (
13
13
  return req.rawBody;
14
14
  }
15
15
  // TODO: move to req.text() after next 13.5: https://github.com/vercel/next.js/discussions/13405
16
+ // NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
17
+ // from statically resolving this optional dynamic import at bundle time.
18
+ const rawBodyModule = 'raw-body';
16
19
  try {
17
- const _getRawBody = (yield import('raw-body')).default;
20
+ const _getRawBody = (yield import(rawBodyModule)).default;
18
21
  if (!req.method || (lowercase(req.method) === 'get')) {
19
22
  return undefined;
20
23
  }
@@ -28,14 +28,18 @@ export class WebCrypto {
28
28
  }
29
29
  }
30
30
  // 2. If still no subtle, fall back to polyfills (Node.js < 18, unusual environments)
31
+ // NOTE: Module names are assigned to variables to prevent bundlers (esbuild, webpack, etc.)
32
+ // from statically resolving these optional dynamic imports at bundle time.
31
33
  if (!((_c = this._crypto) === null || _c === void 0 ? void 0 : _c.subtle)) {
34
+ const cryptoPolyfill = 'isomorphic-webcrypto';
35
+ const nodeCrypto = 'crypto';
32
36
  try {
33
- this._crypto = (yield import('isomorphic-webcrypto')).default;
37
+ this._crypto = (yield import(cryptoPolyfill)).default;
34
38
  }
35
39
  catch (_ignore) {
36
40
  console.info('Failed to import isomorphic-webcrypto, retrying w/ node crypto');
37
41
  try {
38
- this._crypto = (yield import('crypto')).default;
42
+ this._crypto = (yield import(nodeCrypto)).default;
39
43
  }
40
44
  catch (error) {
41
45
  // eslint-disable-next-line max-len
@@ -62,8 +66,11 @@ export class WebCrypto {
62
66
  if ((typeof window !== 'undefined') && (typeof window.TextDecoder === 'function')) {
63
67
  return window.TextDecoder;
64
68
  }
69
+ // NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
70
+ // from statically resolving this optional dynamic import at bundle time.
71
+ const nodeUtil = 'util';
65
72
  try {
66
- const TextDecoder = (yield import('util')).TextDecoder;
73
+ const TextDecoder = (yield import(nodeUtil)).TextDecoder;
67
74
  this._util.TextDecoder = TextDecoder;
68
75
  return TextDecoder;
69
76
  }
@@ -85,8 +92,11 @@ export class WebCrypto {
85
92
  if ((typeof window !== 'undefined') && (typeof window.TextEncoder === 'function')) {
86
93
  return window.TextEncoder;
87
94
  }
95
+ // NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
96
+ // from statically resolving this optional dynamic import at bundle time.
97
+ const nodeUtil = 'util';
88
98
  try {
89
- const TextEncoder = (yield import('util')).TextEncoder;
99
+ const TextEncoder = (yield import(nodeUtil)).TextEncoder;
90
100
  this._util.TextEncoder = TextEncoder;
91
101
  return TextEncoder;
92
102
  }
@@ -153,6 +163,9 @@ export class WebCrypto {
153
163
  case 'sharedSecret': {
154
164
  return ['encrypt', 'decrypt'];
155
165
  }
166
+ case 'hmac': {
167
+ return ['sign', 'verify'];
168
+ }
156
169
  default: {
157
170
  return [];
158
171
  }
@@ -169,6 +182,12 @@ export class WebCrypto {
169
182
  name: 'AES-GCM',
170
183
  };
171
184
  }
185
+ case 'hmac': {
186
+ return {
187
+ name: 'HMAC',
188
+ hash: { name: 'SHA-256' },
189
+ };
190
+ }
172
191
  default: {
173
192
  return {
174
193
  name: 'ECDH',
@@ -191,6 +210,12 @@ export class WebCrypto {
191
210
  return keyPair;
192
211
  });
193
212
  }
213
+ importRawKey(keyType_1, rawBytes_1) {
214
+ return __awaiter(this, arguments, void 0, function* (keyType, rawBytes, { extractable = true } = {}) {
215
+ const crypto = yield this.getWebCrypto();
216
+ return crypto.subtle.importKey('raw', rawBytes, this.getKeyAlgorythm(keyType), extractable, this.getKeyOperations(keyType));
217
+ });
218
+ }
194
219
  generateHMAC(message, derivedKey) {
195
220
  return __awaiter(this, void 0, void 0, function* () {
196
221
  if (!message || !derivedKey) {
@@ -208,6 +233,31 @@ export class WebCrypto {
208
233
  return this.timingSafeEqual(calculatedHMAC, verifiableHMAC);
209
234
  });
210
235
  }
236
+ createSignedToken(message, hmacKey, ttlSeconds) {
237
+ return __awaiter(this, void 0, void 0, function* () {
238
+ const expiry = Math.floor(Date.now() / 1000) + ttlSeconds;
239
+ const hmacHex = yield this.generateHMAC(`${message}:${expiry}`, hmacKey);
240
+ return `${expiry}.${hmacHex}`;
241
+ });
242
+ }
243
+ verifySignedToken(token, message, hmacKey) {
244
+ return __awaiter(this, void 0, void 0, function* () {
245
+ if (!token || typeof token !== 'string') {
246
+ return false;
247
+ }
248
+ const dotIndex = token.indexOf('.');
249
+ if (dotIndex === -1) {
250
+ return false;
251
+ }
252
+ const expiryStr = token.substring(0, dotIndex);
253
+ const signature = token.substring(dotIndex + 1);
254
+ const expiry = parseInt(expiryStr, 10);
255
+ if (isNaN(expiry) || expiry <= Math.floor(Date.now() / 1000)) {
256
+ return false;
257
+ }
258
+ return this.verifyHMAC(`${message}:${expiryStr}`, hmacKey, signature);
259
+ });
260
+ }
211
261
  // NOTE: intentionally separated out as async to be able to .catch
212
262
  getStorableKey(key) {
213
263
  return __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"rawbody.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/rawbody.js"],"names":[],"mappings":"AAuBO,sDAMN"}
1
+ {"version":3,"file":"rawbody.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/rawbody.js"],"names":[],"mappings":"AA0BO,sDAMN"}
@@ -39,8 +39,11 @@ const getChunkedRawBody = (req) => __awaiter(void 0, void 0, void 0, function* (
39
39
  return req.rawBody;
40
40
  }
41
41
  // TODO: move to req.text() after next 13.5: https://github.com/vercel/next.js/discussions/13405
42
+ // NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
43
+ // from statically resolving this optional dynamic import at bundle time.
44
+ const rawBodyModule = 'raw-body';
42
45
  try {
43
- const _getRawBody = (yield Promise.resolve().then(() => __importStar(require('raw-body')))).default;
46
+ const _getRawBody = (yield Promise.resolve(`${rawBodyModule}`).then(s => __importStar(require(s)))).default;
44
47
  if (!req.method || ((0, display_1.lowercase)(req.method) === 'get')) {
45
48
  return undefined;
46
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rawbody.js","sourceRoot":"","sources":["../../../src/lib/utils/rawbody.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAgD;AAEhD,MAAM,iBAAiB,GAAG,CAAO,GAAG,EAAE,EAAE;IACtC,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,OAAO,CAAA;IACpB,CAAC;IAED,gGAAgG;IAChG,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,CAAC,wDAAa,UAAU,GAAC,CAAC,CAAC,OAAO,CAAA;QAEtD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAA,mBAAS,EAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,EAAE,CAAC,CAAA;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAA;QACvF,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA,CAAA;AAED,yEAAyE;AAClE,MAAM,aAAa,GAAG,CAAO,GAAG,EAAE,EAAE;IAAC,OAAA,CAC1C,iBAAiB,CAAC,GAAG,CAAC;SACnB,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,GAAG,EAAE,KAAK,CAAC,CAAA;QAChE,MAAM,KAAK,CAAA;IACf,CAAC,CAAC,CACH,CAAA;EAAA,CAAA;AANY,QAAA,aAAa,iBAMzB"}
1
+ {"version":3,"file":"rawbody.js","sourceRoot":"","sources":["../../../src/lib/utils/rawbody.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAgD;AAEhD,MAAM,iBAAiB,GAAG,CAAO,GAAG,EAAE,EAAE;IACtC,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,OAAO,CAAA;IACpB,CAAC;IAED,gGAAgG;IAChG,sFAAsF;IACtF,yEAAyE;IACzE,MAAM,aAAa,GAAG,UAAU,CAAA;IAChC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,CAAC,yBAAa,aAAa,uCAAC,CAAC,CAAC,OAAO,CAAA;QAEzD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAA,mBAAS,EAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,EAAE,CAAC,CAAA;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAA;QACvF,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA,CAAA;AAED,yEAAyE;AAClE,MAAM,aAAa,GAAG,CAAO,GAAG,EAAE,EAAE;IAAC,OAAA,CAC1C,iBAAiB,CAAC,GAAG,CAAC;SACnB,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,GAAG,EAAE,KAAK,CAAC,CAAA;QAChE,MAAM,KAAK,CAAA;IACf,CAAC,CAAC,CACH,CAAA;EAAA,CAAA;AANY,QAAA,aAAa,iBAMzB"}
@@ -18,15 +18,28 @@ export class WebCrypto {
18
18
  getKeyOperations(keyType: any): string[];
19
19
  getKeyAlgorythm(keyType: any): {
20
20
  name: string;
21
+ hash?: undefined;
22
+ namedCurve?: undefined;
23
+ } | {
24
+ name: string;
25
+ hash: {
26
+ name: string;
27
+ };
21
28
  namedCurve?: undefined;
22
29
  } | {
23
30
  name: string;
24
31
  namedCurve: string;
32
+ hash?: undefined;
25
33
  };
26
34
  generateKeyPair(): Promise<any>;
27
35
  generateSharedSecret(): Promise<any>;
36
+ importRawKey(keyType: any, rawBytes: any, { extractable }?: {
37
+ extractable?: boolean | undefined;
38
+ }): Promise<any>;
28
39
  generateHMAC(message: any, derivedKey: any): Promise<string | undefined>;
29
40
  verifyHMAC(message: any, derivedKey: any, verifiableHMAC: any): Promise<boolean>;
41
+ createSignedToken(message: any, hmacKey: any, ttlSeconds: any): Promise<string>;
42
+ verifySignedToken(token: any, message: any, hmacKey: any): Promise<boolean>;
30
43
  getStorableKey(key: any): Promise<string>;
31
44
  parseStorableHex(storableHex: any): Promise<any>;
32
45
  restoreStorableKey(keyType: any, storableHex: any): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"AAQA;IACE;;;OAGC;IAFC,aAA4B;IAC5B,WAAwB;IAG1B,kBAEC;IAED,6BA6BC;IAED,+BAsBC;IAED,+BAsBC;IAED,mDAiBC;IAED,sCAMC;IAED,mCAYC;IAED,oDAIC;IAED,oCAMC;IAED,gDAMC;IAED,yCAkBC;IAED;;;;;;MAmBC;IAED,gCASC;IAED,qCASC;IAED,yEAiBC;IAED,iFAIC;IAGD,0CAKC;IAGD,iDAEC;IAED,iEAsBC;IAED,8CAUC;IAED,kDAUC;IAED;;;qBAoBC;IAED;;;qBAqBC;IAED;;;;;;;;;OAaC;IAED,sFAuBC;IAED,qEAuBC;CACF"}
1
+ {"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"AAQA;IACE;;;OAGC;IAFC,aAA4B;IAC5B,WAAwB;IAG1B,kBAEC;IAED,6BAiCC;IAED,+BAyBC;IAED,+BAyBC;IAED,mDAiBC;IAED,sCAMC;IAED,mCAYC;IAED,oDAIC;IAED,oCAMC;IAED,gDAMC;IAED,yCAsBC;IAED;;;;;;;;;;;;;;MA0BC;IAED,gCASC;IAED,qCASC;IAED;;qBAUC;IAED,yEAiBC;IAED,iFAIC;IAED,gFAKC;IAED,4EAmBC;IAGD,0CAKC;IAGD,iDAEC;IAED,iEAsBC;IAED,8CAUC;IAED,kDAUC;IAED;;;qBAoBC;IAED;;;qBAqBC;IAED;;;;;;;;;OAaC;IAED,sFAuBC;IAED,qEAuBC;CACF"}
@@ -54,14 +54,18 @@ class WebCrypto {
54
54
  }
55
55
  }
56
56
  // 2. If still no subtle, fall back to polyfills (Node.js < 18, unusual environments)
57
+ // NOTE: Module names are assigned to variables to prevent bundlers (esbuild, webpack, etc.)
58
+ // from statically resolving these optional dynamic imports at bundle time.
57
59
  if (!((_c = this._crypto) === null || _c === void 0 ? void 0 : _c.subtle)) {
60
+ const cryptoPolyfill = 'isomorphic-webcrypto';
61
+ const nodeCrypto = 'crypto';
58
62
  try {
59
- this._crypto = (yield Promise.resolve().then(() => __importStar(require('isomorphic-webcrypto')))).default;
63
+ this._crypto = (yield Promise.resolve(`${cryptoPolyfill}`).then(s => __importStar(require(s)))).default;
60
64
  }
61
65
  catch (_ignore) {
62
66
  console.info('Failed to import isomorphic-webcrypto, retrying w/ node crypto');
63
67
  try {
64
- this._crypto = (yield Promise.resolve().then(() => __importStar(require('crypto')))).default;
68
+ this._crypto = (yield Promise.resolve(`${nodeCrypto}`).then(s => __importStar(require(s)))).default;
65
69
  }
66
70
  catch (error) {
67
71
  // eslint-disable-next-line max-len
@@ -88,8 +92,11 @@ class WebCrypto {
88
92
  if ((typeof window !== 'undefined') && (typeof window.TextDecoder === 'function')) {
89
93
  return window.TextDecoder;
90
94
  }
95
+ // NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
96
+ // from statically resolving this optional dynamic import at bundle time.
97
+ const nodeUtil = 'util';
91
98
  try {
92
- const TextDecoder = (yield Promise.resolve().then(() => __importStar(require('util')))).TextDecoder;
99
+ const TextDecoder = (yield Promise.resolve(`${nodeUtil}`).then(s => __importStar(require(s)))).TextDecoder;
93
100
  this._util.TextDecoder = TextDecoder;
94
101
  return TextDecoder;
95
102
  }
@@ -111,8 +118,11 @@ class WebCrypto {
111
118
  if ((typeof window !== 'undefined') && (typeof window.TextEncoder === 'function')) {
112
119
  return window.TextEncoder;
113
120
  }
121
+ // NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
122
+ // from statically resolving this optional dynamic import at bundle time.
123
+ const nodeUtil = 'util';
114
124
  try {
115
- const TextEncoder = (yield Promise.resolve().then(() => __importStar(require('util')))).TextEncoder;
125
+ const TextEncoder = (yield Promise.resolve(`${nodeUtil}`).then(s => __importStar(require(s)))).TextEncoder;
116
126
  this._util.TextEncoder = TextEncoder;
117
127
  return TextEncoder;
118
128
  }
@@ -179,6 +189,9 @@ class WebCrypto {
179
189
  case 'sharedSecret': {
180
190
  return ['encrypt', 'decrypt'];
181
191
  }
192
+ case 'hmac': {
193
+ return ['sign', 'verify'];
194
+ }
182
195
  default: {
183
196
  return [];
184
197
  }
@@ -195,6 +208,12 @@ class WebCrypto {
195
208
  name: 'AES-GCM',
196
209
  };
197
210
  }
211
+ case 'hmac': {
212
+ return {
213
+ name: 'HMAC',
214
+ hash: { name: 'SHA-256' },
215
+ };
216
+ }
198
217
  default: {
199
218
  return {
200
219
  name: 'ECDH',
@@ -217,6 +236,12 @@ class WebCrypto {
217
236
  return keyPair;
218
237
  });
219
238
  }
239
+ importRawKey(keyType_1, rawBytes_1) {
240
+ return __awaiter(this, arguments, void 0, function* (keyType, rawBytes, { extractable = true } = {}) {
241
+ const crypto = yield this.getWebCrypto();
242
+ return crypto.subtle.importKey('raw', rawBytes, this.getKeyAlgorythm(keyType), extractable, this.getKeyOperations(keyType));
243
+ });
244
+ }
220
245
  generateHMAC(message, derivedKey) {
221
246
  return __awaiter(this, void 0, void 0, function* () {
222
247
  if (!message || !derivedKey) {
@@ -234,6 +259,31 @@ class WebCrypto {
234
259
  return this.timingSafeEqual(calculatedHMAC, verifiableHMAC);
235
260
  });
236
261
  }
262
+ createSignedToken(message, hmacKey, ttlSeconds) {
263
+ return __awaiter(this, void 0, void 0, function* () {
264
+ const expiry = Math.floor(Date.now() / 1000) + ttlSeconds;
265
+ const hmacHex = yield this.generateHMAC(`${message}:${expiry}`, hmacKey);
266
+ return `${expiry}.${hmacHex}`;
267
+ });
268
+ }
269
+ verifySignedToken(token, message, hmacKey) {
270
+ return __awaiter(this, void 0, void 0, function* () {
271
+ if (!token || typeof token !== 'string') {
272
+ return false;
273
+ }
274
+ const dotIndex = token.indexOf('.');
275
+ if (dotIndex === -1) {
276
+ return false;
277
+ }
278
+ const expiryStr = token.substring(0, dotIndex);
279
+ const signature = token.substring(dotIndex + 1);
280
+ const expiry = parseInt(expiryStr, 10);
281
+ if (isNaN(expiry) || expiry <= Math.floor(Date.now() / 1000)) {
282
+ return false;
283
+ }
284
+ return this.verifyHMAC(`${message}:${expiryStr}`, hmacKey, signature);
285
+ });
286
+ }
237
287
  // NOTE: intentionally separated out as async to be able to .catch
238
288
  getStorableKey(key) {
239
289
  return __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"WebCrypto.js","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebCrypto.js","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"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"}
package/dist/umd/index.js CHANGED
@@ -295,13 +295,17 @@
295
295
  }
296
296
 
297
297
  // 2. If still no subtle, fall back to polyfills (Node.js < 18, unusual environments)
298
+ // NOTE: Module names are assigned to variables to prevent bundlers (esbuild, webpack, etc.)
299
+ // from statically resolving these optional dynamic imports at bundle time.
298
300
  if (!this._crypto?.subtle) {
301
+ const cryptoPolyfill = 'isomorphic-webcrypto';
302
+ const nodeCrypto = 'crypto';
299
303
  try {
300
- this._crypto = (await import('isomorphic-webcrypto')).default;
304
+ this._crypto = (await import(cryptoPolyfill)).default;
301
305
  } catch (_ignore) {
302
306
  console.info('Failed to import isomorphic-webcrypto, retrying w/ node crypto');
303
307
  try {
304
- this._crypto = (await import('crypto')).default;
308
+ this._crypto = (await import(nodeCrypto)).default;
305
309
  } catch (error) {
306
310
  // eslint-disable-next-line max-len
307
311
  console.error(`Failed to import node crypto, ensure 'isomorphic-webcrypto' (or node 'crypto') is installed and/or pass in implementation via 'new WebCrypto({ crypto })'`);
@@ -330,8 +334,11 @@
330
334
  return window.TextDecoder
331
335
  }
332
336
 
337
+ // NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
338
+ // from statically resolving this optional dynamic import at bundle time.
339
+ const nodeUtil = 'util';
333
340
  try {
334
- const TextDecoder = (await import('util')).TextDecoder;
341
+ const TextDecoder = (await import(nodeUtil)).TextDecoder;
335
342
  this._util.TextDecoder = TextDecoder;
336
343
 
337
344
  return TextDecoder
@@ -354,8 +361,11 @@
354
361
  return window.TextEncoder
355
362
  }
356
363
 
364
+ // NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
365
+ // from statically resolving this optional dynamic import at bundle time.
366
+ const nodeUtil = 'util';
357
367
  try {
358
- const TextEncoder = (await import('util')).TextEncoder;
368
+ const TextEncoder = (await import(nodeUtil)).TextEncoder;
359
369
  this._util.TextEncoder = TextEncoder;
360
370
 
361
371
  return TextEncoder
@@ -442,6 +452,10 @@
442
452
  return ['encrypt', 'decrypt']
443
453
  }
444
454
 
455
+ case 'hmac': {
456
+ return ['sign', 'verify']
457
+ }
458
+
445
459
  default: {
446
460
  return []
447
461
  }
@@ -460,6 +474,13 @@
460
474
  }
461
475
  }
462
476
 
477
+ case 'hmac': {
478
+ return {
479
+ name: 'HMAC',
480
+ hash: { name: 'SHA-256' },
481
+ }
482
+ }
483
+
463
484
  default: {
464
485
  return {
465
486
  name: 'ECDH',
@@ -491,6 +512,18 @@
491
512
  return keyPair
492
513
  }
493
514
 
515
+ async importRawKey(keyType, rawBytes, { extractable = true } = {}) {
516
+ const crypto = await this.getWebCrypto();
517
+
518
+ return crypto.subtle.importKey(
519
+ 'raw',
520
+ rawBytes,
521
+ this.getKeyAlgorythm(keyType),
522
+ extractable,
523
+ this.getKeyOperations(keyType)
524
+ )
525
+ }
526
+
494
527
  async generateHMAC(message, derivedKey) {
495
528
  if (!message || !derivedKey) {
496
529
  return undefined
@@ -516,6 +549,34 @@
516
549
  return this.timingSafeEqual(calculatedHMAC, verifiableHMAC)
517
550
  }
518
551
 
552
+ async createSignedToken(message, hmacKey, ttlSeconds) {
553
+ const expiry = Math.floor(Date.now() / 1000) + ttlSeconds;
554
+ const hmacHex = await this.generateHMAC(`${message}:${expiry}`, hmacKey);
555
+
556
+ return `${expiry}.${hmacHex}`
557
+ }
558
+
559
+ async verifySignedToken(token, message, hmacKey) {
560
+ if (!token || typeof token !== 'string') {
561
+ return false
562
+ }
563
+
564
+ const dotIndex = token.indexOf('.');
565
+ if (dotIndex === -1) {
566
+ return false
567
+ }
568
+
569
+ const expiryStr = token.substring(0, dotIndex);
570
+ const signature = token.substring(dotIndex + 1);
571
+
572
+ const expiry = parseInt(expiryStr, 10);
573
+ if (isNaN(expiry) || expiry <= Math.floor(Date.now() / 1000)) {
574
+ return false
575
+ }
576
+
577
+ return this.verifyHMAC(`${message}:${expiryStr}`, hmacKey, signature)
578
+ }
579
+
519
580
  // NOTE: intentionally separated out as async to be able to .catch
520
581
  async getStorableKey(key) {
521
582
  const crypto = await this.getWebCrypto();
@@ -907,8 +968,11 @@
907
968
  }
908
969
 
909
970
  // TODO: move to req.text() after next 13.5: https://github.com/vercel/next.js/discussions/13405
971
+ // NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
972
+ // from statically resolving this optional dynamic import at bundle time.
973
+ const rawBodyModule = 'raw-body';
910
974
  try {
911
- const _getRawBody = (await import('raw-body')).default;
975
+ const _getRawBody = (await import(rawBodyModule)).default;
912
976
 
913
977
  if (!req.method || (lowercase(req.method) === 'get')) {
914
978
  return undefined