/// export interface SealOptionsSub { /** * the size of the salt (random buffer used to ensure that two identical objects will generate a different encrypted result. */ saltBits: number; /** * the algorithm used ('aes-256-cbc' for encryption and 'sha256' for integrity are the only two supported at this time). */ algorithm: keyof Algorithms; /** * the number of iterations used to derive a key from the password. Set to 1 by default. The number of ideal iterations * to use is dependent on your application's performance requirements. More iterations means it takes longer to generate the key. */ iterations: number; /** * minimum password size */ minPasswordlength: number; } /** * iron provides a few options for customizing the key derivation algorithm used to generate encryption and * integrity verification keys as well as the algorithms and salt sizes used. * For context [See docs](https://github.com/hueniverse/iron#options) */ export interface SealOptions { /** * defines the options used by the encryption process. */ encryption: SealOptionsSub; /** * defines the options used by the HMAC integrity verification process. */ integrity: SealOptionsSub; /** * sealed object lifetime in milliseconds where 0 means forever. Defaults to 0. */ ttl: number; /** * number of seconds of permitted clock skew for incoming expirations. Defaults to 60 seconds. */ timestampSkewSec: number; /** * local clock time offset, expressed in number of milliseconds (positive or negative). Defaults to 0. */ localtimeOffsetMsec: number; } export interface Algorithms { "aes-128-ctr": { keyBits: number; ivBits: number; }; "aes-256-cbc": { keyBits: number; ivBits: number; }; "sha256": { keyBits: number; }; } export interface GenerateKeyOptions extends Pick { saltBits?: number | undefined; salt?: string | undefined; iv?: string | undefined; } export interface Key { key: Buffer; salt: string; iv: string; } export interface HMacResult { digest: string; salt: string; } export const defaults: SealOptions; export const algorithms: Algorithms; export const macFormatVersion: string; export const macPrefix: string; export function generateKey(password: string, options: GenerateKeyOptions): Promise; export function encrypt( password: string, options: GenerateKeyOptions, data: string, ): Promise<{ data: Buffer; key: Key }>; export function decrypt(password: string, options: GenerateKeyOptions, data: string): Promise; export function hmacWithPassword(password: string, options: GenerateKeyOptions, data: string): Promise; export function seal(obj: object, password: string, options: SealOptions): Promise; export function unseal(data: string, password: string, options: SealOptions): Promise;