@li0ard/kalyna
Version:
Kalyna (DSTU 7624:2014) cipher implementation in pure TypeScript
41 lines (40 loc) • 1.07 kB
TypeScript
import type { TArg, TRet } from "@li0ard/gost3413";
/** Kalyna abstract class */
export declare abstract class KalynaBase {
readonly N: number;
/** Round keys for encryption */
erk: TArg<BigUint64Array>;
/** Rounds keys for decryption */
drk: TArg<BigUint64Array>;
/** Block size */
readonly blockSize: number;
/** Key size */
readonly keySize: number;
private readonly numRounds;
private readonly glOffset;
private wordOffsets;
/** Kalyna abstract class */
constructor(key: TArg<Uint8Array>, N: number, isDouble?: boolean);
private expandKey;
private makeOddKey;
private addkey;
private subkey;
private add_constant;
private byte;
private G0;
private G;
private GL;
private IMC;
private IG;
private IGL;
/**
* Encrypt data
* @param in_ Data to be encrypted
*/
encrypt(in_: TArg<Uint8Array>): TRet<Uint8Array>;
/**
* Decrypt data
* @param in_ Data to be decrypted
*/
decrypt(in_: TArg<Uint8Array>): TRet<Uint8Array>;
}