gnablib
Version:
A lean, zero dependency library to provide a useful base for your project.
167 lines (166 loc) • 6.3 kB
TypeScript
/*! Copyright 2023-2025 the gnablib contributors MPL-1.1 */
import type { IHash } from '../interfaces/IHash.js';
declare class KeccakCore implements IHash {
#private;
private readonly _size;
get size(): number;
readonly blockSize: number;
protected readonly state: Uint8Array<ArrayBuffer>;
protected readonly block: Uint8Array;
readonly suffix: number;
protected bPos: number;
constructor(suffix: number, digestSizeBytes: number, capacityBytes?: number, roundStart?: number);
private hash;
write(data: Uint8Array): void;
sum(): Uint8Array;
sumIn(): Uint8Array;
protected xorSuffix(): void;
reset(): void;
newEmpty(): IHash;
clone(): KeccakCore;
protected _cloneHelp(ret: KeccakCore): void;
}
export declare class Keccak extends KeccakCore {
constructor(digestSize: number, capacityBytes?: number);
}
export declare class Keccak224 extends KeccakCore {
constructor(capacityBytes?: number);
}
export declare class Keccak256 extends KeccakCore {
constructor(capacityBytes?: number);
}
export declare class Keccak384 extends KeccakCore {
constructor(capacityBytes?: number);
}
export declare class Keccak512 extends KeccakCore {
constructor(capacityBytes?: number);
}
export declare class Sha3_224 extends KeccakCore {
constructor();
}
export declare class Sha3_256 extends KeccakCore {
constructor();
}
export declare class Sha3_384 extends KeccakCore {
constructor();
}
export declare class Sha3_512 extends KeccakCore {
constructor();
}
export declare class Shake128 extends KeccakCore {
constructor(digestSize: number);
}
export declare class Shake256 extends KeccakCore {
constructor(digestSize: number);
}
declare class CShake implements IHash {
protected cap: number;
protected pad: number;
protected functionName: string;
private _keccak;
protected readonly customization: Uint8Array;
constructor(cap: number, pad: number, digestSize: number, functionName?: string, customization?: Uint8Array | string);
write(data: Uint8Array): void;
sum(): Uint8Array;
sumIn(): Uint8Array;
reset(): void;
newEmpty(): IHash;
clone(): CShake;
protected _cloneHelp(ret: CShake): void;
get size(): number;
get blockSize(): number;
}
export declare class CShake128 extends CShake {
constructor(digestSize: number, functionName?: string, customization?: Uint8Array | string);
}
export declare class CShake256 extends CShake {
constructor(digestSize: number, functionName?: string, customization?: string);
}
declare class KmacCore extends CShake {
private appendSize;
constructor(appendSize: boolean, cap: number, pad: number, digestSize: number, key?: Uint8Array | string, customization?: Uint8Array | string);
sumIn(): Uint8Array;
clone(): KmacCore;
}
export declare class Kmac128 extends KmacCore {
constructor(digestSize?: number, key?: Uint8Array | string, customization?: Uint8Array | string);
}
export declare class Kmac256 extends KmacCore {
constructor(digestSize?: number, key?: Uint8Array | string, customization?: Uint8Array | string);
}
export declare class KmacXof128 extends KmacCore {
constructor(digestSize: number, key?: Uint8Array | string, customization?: Uint8Array | string);
}
export declare class KmacXof256 extends KmacCore {
constructor(digestSize: number, key?: Uint8Array | string, customization?: Uint8Array | string);
}
declare class TupleHashCore extends CShake {
private appendSize;
constructor(appendSize: boolean, cap: number, pad: number, digestSize: number, customization?: Uint8Array | string);
write(data: Uint8Array): void;
sumIn(): Uint8Array;
clone(): TupleHashCore;
}
export declare class TupleHash128 extends TupleHashCore {
constructor(digestSize?: number, customization?: Uint8Array | string);
}
export declare class TupleHash256 extends TupleHashCore {
constructor(digestSize?: number, customization?: Uint8Array | string);
}
export declare class TupleHashXof128 extends TupleHashCore {
constructor(digestSize: number, customization?: Uint8Array | string);
}
export declare class TupleHashXof256 extends TupleHashCore {
constructor(digestSize: number, customization?: Uint8Array | string);
}
declare class ParallelHashCore extends CShake {
#private;
private appendSize;
private _subHash;
private _obPos;
private _obCount;
constructor(appendSize: boolean, cap: number, pad: number, blockSize: number, digestSize: number, customization?: Uint8Array | string);
write(data: Uint8Array): void;
sumIn(): Uint8Array;
reset(): void;
clone(): ParallelHashCore;
protected _cloneHelp(ret: ParallelHashCore): void;
}
export declare class ParallelHash128 extends ParallelHashCore {
constructor(blockSize: number, digestSize?: number, customization?: Uint8Array | string);
}
export declare class ParallelHash256 extends ParallelHashCore {
constructor(blockSize: number, digestSize?: number, customization?: Uint8Array | string);
}
export declare class ParallelHashXof128 extends ParallelHashCore {
constructor(blockSize: number, digestSize: number, customization?: Uint8Array | string);
}
export declare class ParallelHashXof256 extends ParallelHashCore {
constructor(blockSize: number, digestSize: number, customization?: Uint8Array | string);
}
export declare class TurboShake128 extends KeccakCore {
constructor(digestSize: number, domainSep?: number);
}
export declare class TurboShake256 extends KeccakCore {
constructor(digestSize: number, domainSep?: number);
}
export declare class KangarooTwelve extends KeccakCore {
readonly maxChunkSize = 8192;
protected readonly customization: Uint8Array;
private _chunks;
private _ingestBlockBytes;
constructor(digestSize: number, customization?: Uint8Array | string);
write(data: Uint8Array): void;
protected xorSuffix(): void;
clone(): KangarooTwelve;
protected _cloneHelp(ret: KangarooTwelve): void;
}
export declare class HopMac extends KangarooTwelve {
#private;
private _outerSize;
constructor(digestSize: number, key: Uint8Array | string, customization?: Uint8Array | string);
get size(): number;
sumIn(): Uint8Array;
clone(): HopMac;
}
export {};