UNPKG

@empo/encryption

Version:

A TypeScript library for widely used crypto standards

61 lines (60 loc) 1.96 kB
/// <reference types="node" /> declare type RandomByteTypes = 'iv' | 'salt'; declare type RandomByteEncodingTypes = 'base64'; interface RandomByteOptions { type: RandomByteTypes; encoding?: RandomByteEncodingTypes; } /** * @param {object} options Options to generate random key */ export declare const generateRandomBytes: (options: RandomByteOptions) => Buffer | string; export declare class AES { readonly secret: string; constructor(secret: string); getKey: (salt: Buffer) => Buffer; /** * @description A basic API for block cipher encryption using AES256-GCM. * @param {string} plainText Plaintext */ encrypt: (plainText: string) => string; /** * @description A basic API for block cipher decryption using AES256-GCM. * @param {string} cipherText Encrypted text */ decrypt: (cipherText: string) => string; } export declare class SHA { private _pepper; constructor(pepper: string); /** * @description A secure hash function using HMAC-SHA256 * @param {string} plainText Plaintext */ encrypt: (plainText: string) => string; } export declare class SHAKE256 { /** * @description A secure hash function using SHAKE256 (SHA-3) * @param {string} plainText Plaintext */ encrypt: (plainText: string) => string; } export declare class Argon2 { readonly _pepper: string; readonly _salt: string; private readonly SHA; constructor(pepper: string, salt: string); /** * @description A key derivation function using Argon2 * @param {string} plainText Plaintext */ encrypt: (plainText: string) => Promise<string>; /** * @description A verification function with input text and Argon2 hashed value * @param {string} hash Hash generated by argonEncrypt() * @param {string} plainText Plaintext for verification */ match: (hash: string, plainText: string) => Promise<boolean>; } export {};