-
-
Notifications
You must be signed in to change notification settings - Fork 299
/
generate_secret.ts
36 lines (33 loc) · 1.06 KB
/
generate_secret.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { generateSecret as generate } from '../runtime/generate.js'
import type { KeyLike } from '../types.d'
export interface GenerateSecretOptions {
/**
* (Only effective in Web Crypto API runtimes) The value to use as
* [SubtleCrypto.generateKey()](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey)
* `extractable` argument. Default is false.
*/
extractable?: boolean
}
/**
* Generates a symmetric secret key for a given JWA algorithm identifier.
*
* Note: Under Web Crypto API runtime the secret key is generated with `extractable` set to `false`
* by default.
*
* @example Usage
*
* ```js
* const secret = await jose.generateSecret('HS256')
* console.log(secret)
* ```
*
* @param alg JWA Algorithm Identifier to be used with the generated secret.
* @param options Additional options passed down to the secret generation.
*/
export async function generateSecret<T extends KeyLike = KeyLike>(
alg: string,
options?: GenerateSecretOptions,
): Promise<T | Uint8Array> {
// @ts-ignore
return generate(alg, options)
}