@nfen/webcrypto-ts
Version:
Enforced Webcrypto wrapper
67 lines • 1.43 kB
JavaScript
/**
* 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