@empo/encryption
Version:
A TypeScript library for widely used crypto standards
61 lines (60 loc) • 1.96 kB
TypeScript
/// <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 {};