import { Input, Hash, HashXOF } from './utils.js';
import { Keccak, ShakeOpts } from './sha3.js';
export type cShakeOpts = ShakeOpts & {
personalization?: Input;
NISTfn?: Input;
};
export declare const cshake128: {
(msg: Input, opts?: cShakeOpts | undefined): Uint8Array;
outputLen: number;
blockLen: number;
create(opts: cShakeOpts): HashXOF;
};
export declare const cshake256: {
(msg: Input, opts?: cShakeOpts | undefined): Uint8Array;
outputLen: number;
blockLen: number;
create(opts: cShakeOpts): HashXOF;
};
declare class KMAC extends Keccak implements HashXOF {
constructor(blockLen: number, outputLen: number, enableXOF: boolean, key: Input, opts?: cShakeOpts);
protected finish(): void;
_cloneInto(to?: KMAC): KMAC;
clone(): KMAC;
}
export declare const kmac128: {
(key: Input, message: Input, opts?: cShakeOpts): Uint8Array;
create(key: Input, opts?: cShakeOpts): KMAC;
};
export declare const kmac256: {
(key: Input, message: Input, opts?: cShakeOpts): Uint8Array;
create(key: Input, opts?: cShakeOpts): KMAC;
};
export declare const kmac128xof: {
(key: Input, message: Input, opts?: cShakeOpts): Uint8Array;
create(key: Input, opts?: cShakeOpts): KMAC;
};
export declare const kmac256xof: {
(key: Input, message: Input, opts?: cShakeOpts): Uint8Array;
create(key: Input, opts?: cShakeOpts): KMAC;
};
declare class TupleHash extends Keccak implements HashXOF {
constructor(blockLen: number, outputLen: number, enableXOF: boolean, opts?: cShakeOpts);
protected finish(): void;
_cloneInto(to?: TupleHash): TupleHash;
clone(): TupleHash;
}
export declare const tuplehash128: {
(messages: Input[], opts?: cShakeOpts): Uint8Array;
create(opts?: cShakeOpts): TupleHash;
};
export declare const tuplehash256: {
(messages: Input[], opts?: cShakeOpts): Uint8Array;
create(opts?: cShakeOpts): TupleHash;
};
export declare const tuplehash128xof: {
(messages: Input[], opts?: cShakeOpts): Uint8Array;
create(opts?: cShakeOpts): TupleHash;
};
export declare const tuplehash256xof: {
(messages: Input[], opts?: cShakeOpts): Uint8Array;
create(opts?: cShakeOpts): TupleHash;
};
type ParallelOpts = cShakeOpts & {
blockLen?: number;
};
declare class ParallelHash extends Keccak implements HashXOF {
protected leafCons: () => Hash;
private leafHash?;
private chunkPos;
private chunksDone;
private chunkLen;
constructor(blockLen: number, outputLen: number, leafCons: () => Hash, enableXOF: boolean, opts?: ParallelOpts);
protected finish(): void;
_cloneInto(to?: ParallelHash): ParallelHash;
destroy(): void;
clone(): ParallelHash;
}
export declare const parallelhash128: {
(message: Input, opts?: ParallelOpts): Uint8Array;
create(opts?: ParallelOpts): ParallelHash;
};
export declare const parallelhash256: {
(message: Input, opts?: ParallelOpts): Uint8Array;
create(opts?: ParallelOpts): ParallelHash;
};
export declare const parallelhash128xof: {
(message: Input, opts?: ParallelOpts): Uint8Array;
create(opts?: ParallelOpts): ParallelHash;
};
export declare const parallelhash256xof: {
(message: Input, opts?: ParallelOpts): Uint8Array;
create(opts?: ParallelOpts): ParallelHash;
};
export type TurboshakeOpts = ShakeOpts & {
D?: number;
};
export declare const turboshake128: {
(msg: Input, opts?: TurboshakeOpts | undefined): Uint8Array;
outputLen: number;
blockLen: number;
create(opts: TurboshakeOpts): HashXOF>;
};
export declare const turboshake256: {
(msg: Input, opts?: TurboshakeOpts | undefined): Uint8Array;
outputLen: number;
blockLen: number;
create(opts: TurboshakeOpts): HashXOF>;
};
export type KangarooOpts = {
dkLen?: number;
personalization?: Input;
};
declare class KangarooTwelve extends Keccak implements HashXOF {
protected leafLen: number;
readonly chunkLen = 8192;
private leafHash?;
private personalization;
private chunkPos;
private chunksDone;
constructor(blockLen: number, leafLen: number, outputLen: number, rounds: number, opts: KangarooOpts);
update(data: Input): this;
protected finish(): void;
destroy(): void;
_cloneInto(to?: KangarooTwelve): KangarooTwelve;
clone(): KangarooTwelve;
}
export declare const k12: {
(msg: Input, opts?: KangarooOpts | undefined): Uint8Array;
outputLen: number;
blockLen: number;
create(opts: KangarooOpts): Hash;
};
export declare const m14: {
(msg: Input, opts?: KangarooOpts | undefined): Uint8Array;
outputLen: number;
blockLen: number;
create(opts: KangarooOpts): Hash;
};
declare class KeccakPRG extends Keccak {
protected rate: number;
constructor(capacity: number);
keccak(): void;
update(data: Input): this;
feed(data: Input): this;
protected finish(): void;
digestInto(_out: Uint8Array): Uint8Array;
fetch(bytes: number): Uint8Array;
forget(): void;
_cloneInto(to?: KeccakPRG): KeccakPRG;
clone(): KeccakPRG;
}
export declare const keccakprg: (capacity?: number) => KeccakPRG;
export {};
//# sourceMappingURL=sha3-addons.d.ts.map