UNPKG

@li0ard/kupyna

Version:

Kupyna (DSTU 7564:2014) hash function in pure TypeScript

48 lines (47 loc) 1.51 kB
import { type Kupyna } from "../const.js"; import { type TArg, type TRet } from "../utils.js"; /** Abstract class for 256/512 bit */ export declare abstract class KupynaBase<T> implements Kupyna<KupynaBase<T>> { readonly blockLen: number; abstract readonly outputLen: number; /** Rounds count */ abstract readonly rounds: number; /** Offsets for transformations */ abstract readonly offsets: number[]; /** State size */ readonly stSize: number; /** Threshold for padding */ readonly threshold: number; protected s: BigUint64Array; protected x: Uint8Array; protected nx: number; protected len: bigint; constructor(blockLen: number); abstract clone(): KupynaBase<T>; /** Update hash buffer */ update(data: TArg<Uint8Array>): this; digest(): TRet<Uint8Array>; private final; private byte; private G; private G1; private G2; private P; private Q; private outputTransform; private transform; private block; } /** Abstract class for derived versions (48/304/384 bit) */ export declare abstract class KupynaDerived<T> implements Kupyna<KupynaDerived<T>> { hash: () => KupynaBase<T>; protected readonly slice: number; readonly outputLen: number; readonly blockLen: number; buffer: Uint8Array; constructor(hash: () => KupynaBase<T>, slice: number); abstract clone(): KupynaDerived<T>; update(data: TArg<Uint8Array>): this; digest(): TRet<Uint8Array>; private final; }