@stablelib/sha3
Version:
SHA-3 cryptographic hash function
58 lines (57 loc) • 1.83 kB
TypeScript
/**
* Package sha3 implements SHA3 hash function and SHAKE extended output functions.
*/
import type { SerializableHash } from "@stablelib/hash";
export declare class Keccak {
capacity: number;
protected _sh: Int32Array;
protected _sl: Int32Array;
protected _state: Uint8Array;
protected _pos: number;
protected _finished: boolean;
blockSize: number;
constructor(capacity?: number);
reset(): this;
clean: () => this;
update(data: Uint8Array): this;
protected _padAndPermute(paddingByte: number): void;
protected _squeeze(dst: Uint8Array): void;
}
export declare class SHA3 extends Keccak implements SerializableHash {
digestLength: number;
constructor(digestLength?: number);
finish(dst: Uint8Array): this;
digest(): Uint8Array;
saveState(): SavedState;
restoreState(savedState: SavedState): this;
cleanSavedState(savedState: SavedState): void;
}
export type SavedState = Uint8Array;
export declare class SHA3224 extends SHA3 {
constructor();
}
export declare class SHA3256 extends SHA3 {
constructor();
}
export declare class SHA3384 extends SHA3 {
constructor();
}
export declare class SHA3512 extends SHA3 {
constructor();
}
export declare function hash(digestLength: number, data: Uint8Array): Uint8Array;
export declare const hash224: (data: Uint8Array) => Uint8Array;
export declare const hash256: (data: Uint8Array) => Uint8Array;
export declare const hash384: (data: Uint8Array) => Uint8Array;
export declare const hash512: (data: Uint8Array) => Uint8Array;
export declare class SHAKE extends Keccak {
bitSize: number;
constructor(bitSize: number);
stream(dst: Uint8Array): void;
}
export declare class SHAKE128 extends SHAKE {
constructor();
}
export declare class SHAKE256 extends SHAKE {
constructor();
}