/** * Blowfish Cryptor class * * TypeScript version by Logue. * Original version written by HybridEidolon's saredit * @see https://github.com/HybridEidolon/saredit */ export default class Blowfish { private static readonly P_BOX; private static readonly S_BOX; /** P Table */ protected readonly p: Uint32Array; /** S Table */ protected readonly s: Uint32Array[]; /** Crypt Key */ protected readonly key: Uint32Array; /** * constructor * @param key - key as array of bytes. must be multiple of 4 */ constructor(key: ArrayBufferLike); /** * @param buffer - buffer to encrypt. must be multiple of 8 */ encrypt(buffer: ArrayBufferLike): ArrayBufferLike; /** * @param buffer - buffer to decrypt. must be multiple of 8 */ decrypt(buffer: ArrayBufferLike): ArrayBufferLike; /** * * @param s - S Table * @param x - rounds * @returns */ private round; }