UNPKG

@li0ard/kalyna

Version:

Kalyna (DSTU 7624:2014) cipher implementation in pure TypeScript

22 lines (21 loc) 795 B
import { cbc_encrypt, cbc_decrypt } from "@li0ard/gost3413"; /** * Encrypts data using Cipher Block Chaining (CBC) mode * @param cipherClass Initialized cipher class * @param data Data to be encrypted * @param iv Initialization vector */ export const encryptCBC = (cipherClass, data, iv) => { const encrypter = (buf) => (cipherClass.encrypt(buf)); return cbc_encrypt(encrypter, cipherClass.blockSize, data, iv); }; /** * Decrypts data using Cipher Block Chaining (CBC) mode * @param cipherClass Initialized cipher class * @param data Data to be decrypted * @param iv Initialization vector */ export const decryptCBC = (cipherClass, data, iv) => { const decrypter = (buf) => (cipherClass.decrypt(buf)); return cbc_decrypt(decrypter, cipherClass.blockSize, data, iv); };