UNPKG

@stablelib/sha3

Version:
58 lines (57 loc) 1.83 kB
/** * 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(); }