gnablib
Version:
A lean, zero dependency library to provide a useful base for your project.
90 lines (89 loc) • 2.99 kB
TypeScript
/*! Copyright 2025 the gnablib contributors MPL-1.1 */
import { IBlockCrypt } from '../interfaces/IBlockCrypt.js';
import type { IHash } from '../interfaces/IHash.js';
import { Key, Tweak } from '../sym/Threefish.js';
interface threefishConstructor {
new (key: Key, tweak: Tweak): IBlockCrypt;
}
declare class SkeinCore {
readonly blockSize: number;
readonly size: number;
private _hasData;
private readonly _block;
private readonly _b64;
private _bPos;
private readonly _cfgBackup;
private readonly _hVal;
private readonly _tweak;
private readonly _tfConstructor;
private readonly _c;
constructor(blockSize: number, digestSize: number, ctor: threefishConstructor, key: Uint8Array, kdf: Uint8Array);
private ubi;
private hash;
private finalize;
write(data: Uint8Array): void;
clone(): SkeinCore;
sum(): Uint8Array;
sumIn(): Uint8Array;
reset(): void;
newEmpty(): IHash;
}
declare class Skein256Core extends SkeinCore implements IHash {
constructor(digestSize: number, key: Uint8Array);
}
declare class Skein512Core extends SkeinCore implements IHash {
constructor(digestSize: number, key: Uint8Array);
}
declare class Skein1024Core extends SkeinCore implements IHash {
constructor(digestSize: number, key: Uint8Array);
}
export declare class Skein256 extends Skein256Core {
constructor(sizeBytes?: number);
static New128(): Skein256;
static New160(): Skein256;
static New224(): Skein256;
static New256(): Skein256;
}
export declare class Skein512 extends Skein512Core {
constructor(sizeBytes?: number);
static New128(): Skein512;
static New160(): Skein512;
static New224(): Skein512;
static New256(): Skein512;
static New384(): Skein512;
static New512(): Skein512;
}
export declare class Skein1024 extends Skein1024Core {
constructor(sizeBytes?: number);
static New384(): Skein1024;
static New512(): Skein1024;
static New1024(): Skein1024;
}
export declare class SkeinMac256 extends Skein256Core {
constructor(key: Uint8Array);
}
export declare class SkeinMac512 extends Skein512Core {
constructor(key: Uint8Array);
}
export declare class SkeinMac1024 extends Skein1024Core {
constructor(key: Uint8Array);
}
export declare class SkeinXof256 extends Skein256Core {
constructor(outputSize: number);
}
export declare class SkeinXof512 extends Skein512Core {
constructor(outputSize: number);
}
export declare class SkeinXof1024 extends Skein1024Core {
constructor(outputSize: number);
}
export declare class SkeinKdf256 extends SkeinCore implements IHash {
constructor(len: number, ikm: Uint8Array, salt: Uint8Array);
}
export declare class SkeinKdf512 extends SkeinCore implements IHash {
constructor(len: number, ikm: Uint8Array, salt: Uint8Array);
}
export declare class SkeinKdf1024 extends SkeinCore implements IHash {
constructor(len: number, ikm: Uint8Array, salt: Uint8Array);
}
export {};