You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.6 KiB
116 lines
3.6 KiB
import { Hash, type CHashO, type Input } from './utils.ts'; |
|
/** Blake hash options. dkLen is output length. key is used in MAC mode. salt is used in KDF mode. */ |
|
export type Blake2Opts = { |
|
dkLen?: number; |
|
key?: Input; |
|
salt?: Input; |
|
personalization?: Input; |
|
}; |
|
/** Class, from which others are subclassed. */ |
|
export declare abstract class BLAKE2<T extends BLAKE2<T>> extends Hash<T> { |
|
protected abstract compress(msg: Uint32Array, offset: number, isLast: boolean): void; |
|
protected abstract get(): number[]; |
|
protected abstract set(...args: number[]): void; |
|
abstract destroy(): void; |
|
protected buffer: Uint8Array; |
|
protected buffer32: Uint32Array; |
|
protected finished: boolean; |
|
protected destroyed: boolean; |
|
protected length: number; |
|
protected pos: number; |
|
readonly blockLen: number; |
|
readonly outputLen: number; |
|
constructor(blockLen: number, outputLen: number); |
|
update(data: Input): this; |
|
digestInto(out: Uint8Array): void; |
|
digest(): Uint8Array; |
|
_cloneInto(to?: T): T; |
|
clone(): T; |
|
} |
|
export declare class BLAKE2b extends BLAKE2<BLAKE2b> { |
|
private v0l; |
|
private v0h; |
|
private v1l; |
|
private v1h; |
|
private v2l; |
|
private v2h; |
|
private v3l; |
|
private v3h; |
|
private v4l; |
|
private v4h; |
|
private v5l; |
|
private v5h; |
|
private v6l; |
|
private v6h; |
|
private v7l; |
|
private v7h; |
|
constructor(opts?: Blake2Opts); |
|
protected get(): [ |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number, |
|
number |
|
]; |
|
protected set(v0l: number, v0h: number, v1l: number, v1h: number, v2l: number, v2h: number, v3l: number, v3h: number, v4l: number, v4h: number, v5l: number, v5h: number, v6l: number, v6h: number, v7l: number, v7h: number): void; |
|
protected compress(msg: Uint32Array, offset: number, isLast: boolean): void; |
|
destroy(): void; |
|
} |
|
/** |
|
* Blake2b hash function. 64-bit. 1.5x slower than blake2s in JS. |
|
* @param msg - message that would be hashed |
|
* @param opts - dkLen output length, key for MAC mode, salt, personalization |
|
*/ |
|
export declare const blake2b: CHashO; |
|
export type Num16 = { |
|
v0: number; |
|
v1: number; |
|
v2: number; |
|
v3: number; |
|
v4: number; |
|
v5: number; |
|
v6: number; |
|
v7: number; |
|
v8: number; |
|
v9: number; |
|
v10: number; |
|
v11: number; |
|
v12: number; |
|
v13: number; |
|
v14: number; |
|
v15: number; |
|
}; |
|
export declare function compress(s: Uint8Array, offset: number, msg: Uint32Array, rounds: number, v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number, v8: number, v9: number, v10: number, v11: number, v12: number, v13: number, v14: number, v15: number): Num16; |
|
export declare class BLAKE2s extends BLAKE2<BLAKE2s> { |
|
private v0; |
|
private v1; |
|
private v2; |
|
private v3; |
|
private v4; |
|
private v5; |
|
private v6; |
|
private v7; |
|
constructor(opts?: Blake2Opts); |
|
protected get(): [number, number, number, number, number, number, number, number]; |
|
protected set(v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number): void; |
|
protected compress(msg: Uint32Array, offset: number, isLast: boolean): void; |
|
destroy(): void; |
|
} |
|
/** |
|
* Blake2s hash function. Focuses on 8-bit to 32-bit platforms. 1.5x faster than blake2b in JS. |
|
* @param msg - message that would be hashed |
|
* @param opts - dkLen output length, key for MAC mode, salt, personalization |
|
*/ |
|
export declare const blake2s: CHashO; |
|
//# sourceMappingURL=blake2.d.ts.map
|