UNPKG

@li0ard/kupyna

Version:

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

52 lines (51 loc) 1.43 kB
import { Kupyna256, Kupyna384, Kupyna512 } from "./index"; import { KupynaKMAC } from "./modes/kmac"; import { kpad32, kpad48, kpad64 } from "./const"; /** Kupyna KMAC (256 bit version) */ export class KupynaKMAC256 extends KupynaKMAC { key; constructor(key) { super(Kupyna256.create, kpad32, key); this.key = key; } _cloneInto(to) { to ||= new KupynaKMAC256(this.key); to.h = this.h.clone(); to.len = this.len; to.ik = new Uint8Array(this.ik); return to; } clone() { return this._cloneInto(); } } /** Kupyna KMAC (512 bit version) */ export class KupynaKMAC512 extends KupynaKMAC { key; constructor(key) { super(Kupyna512.create, kpad64, key); this.key = key; } _cloneInto(to) { to ||= new KupynaKMAC512(this.key); to.h = this.h.clone(); to.len = this.len; to.ik = new Uint8Array(this.ik); return to; } clone() { return this._cloneInto(); } } /** Kupyna KMAC (384 bit version) */ export class KupynaKMAC384 extends KupynaKMAC { key; constructor(key) { super(Kupyna384.create, kpad48, key); this.key = key; } _cloneInto(to) { to ||= new KupynaKMAC384(this.key); to.h = this.h.clone(); to.len = this.len; to.ik = new Uint8Array(this.ik); return to; } clone() { return this._cloneInto(); } }