UNPKG

@nfen/webcrypto-ts

Version:
67 lines 1.43 kB
/** * Cryptographically strong random values. * @module */ import * as WebCrypto from "./webcrypto.js"; /** * Generate random values * @example * ```ts * const values = await Random.getValues(16); * ``` */ export async function getValues(length) { return await (await WebCrypto._crypto).getRandomValues(new Uint8Array(length)); } /** * Initialization Vectors */ export var IV; (function (IV) { /** * Generate an initialization vector. Defaults to 16 bytes. * @example * ```ts * const iv = await Random.IV.generate(); * ``` */ async function generate(length = 16) { return await getValues(length); } IV.generate = generate; })(IV || (IV = {})); /** * Salts */ export var Salt; (function (Salt) { /** * Generate a salt. Defaults to 16 bytes. * @example * ```ts * const salt = await Random.Salt.generate(); * ``` */ async function generate(length = 16) { return await getValues(length); } Salt.generate = generate; })(Salt || (Salt = {})); /** * UUID */ export var UUID; (function (UUID) { /** * Generate a UUID. * @example * ```ts * const uuid = await Random.UUID.generate(); * ``` */ async function generate() { return await (await WebCrypto._crypto).randomUUID(); } UUID.generate = generate; })(UUID || (UUID = {})); //# sourceMappingURL=random.js.map