gnablib
Version:
A lean, zero dependency library to provide a useful base for your project.
61 lines (60 loc) • 1.58 kB
TypeScript
/*! Copyright 2023-2025 the gnablib contributors MPL-1.1 */
import type { IHash } from '../interfaces/IHash.js';
import { U64MutArray } from '../../primitive/number/U64.js';
type iv32 = (state: Uint32Array) => void;
type iv64 = (state: U64MutArray) => void;
declare class Sha2_32bit implements IHash {
#private;
readonly size: number;
readonly blockSize = 64;
private _ingestBytes;
private _bPos;
constructor(digestSize: number, iv: iv32);
private hash;
write(data: Uint8Array): void;
sum(): Uint8Array;
sumIn(): Uint8Array;
reset(): void;
newEmpty(): IHash;
clone(): IHash;
}
declare class Sha2_64bit implements IHash {
#private;
readonly size: number;
readonly blockSize = 128;
private _ingestBytes;
private _bPos;
constructor(digestSize: number, iv: iv64);
private hash;
write(data: Uint8Array): void;
sum(): Uint8Array;
sumIn(): Uint8Array;
reset(): void;
newEmpty(): IHash;
clone(): IHash;
}
export declare class Sha224 extends Sha2_32bit {
constructor();
private static iv;
}
export declare class Sha256 extends Sha2_32bit {
constructor();
private static iv;
}
export declare class Sha384 extends Sha2_64bit {
constructor();
private static iv;
}
export declare class Sha512 extends Sha2_64bit {
constructor();
private static iv;
}
export declare class Sha512_224 extends Sha2_64bit {
constructor();
private static iv;
}
export declare class Sha512_256 extends Sha2_64bit {
constructor();
private static iv;
}
export {};