UNPKG

gnablib

Version:

A lean, zero dependency library to provide a useful base for your project.

167 lines (166 loc) 6.3 kB
/*! 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 {};