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.
54 lines
1.8 KiB
54 lines
1.8 KiB
import { BLAKE2 } from './blake2.ts'; |
|
import { type CHashXO, type HashXOF, type Input } from './utils.ts'; |
|
/** |
|
* Ensure to use EITHER `key` OR `context`, not both. |
|
* |
|
* * `key`: 32-byte MAC key. |
|
* * `context`: string for KDF. Should be hardcoded, globally unique, and application - specific. |
|
* A good default format for the context string is "[application] [commit timestamp] [purpose]". |
|
*/ |
|
export type Blake3Opts = { |
|
dkLen?: number; |
|
key?: Input; |
|
context?: Input; |
|
}; |
|
/** Blake3 hash. Can be used as MAC and KDF. */ |
|
export declare class BLAKE3 extends BLAKE2<BLAKE3> implements HashXOF<BLAKE3> { |
|
private chunkPos; |
|
private chunksDone; |
|
private flags; |
|
private IV; |
|
private state; |
|
private stack; |
|
private posOut; |
|
private bufferOut32; |
|
private bufferOut; |
|
private chunkOut; |
|
private enableXOF; |
|
constructor(opts?: Blake3Opts, flags?: number); |
|
protected get(): []; |
|
protected set(): void; |
|
private b2Compress; |
|
protected compress(buf: Uint32Array, bufPos?: number, isLast?: boolean): void; |
|
_cloneInto(to?: BLAKE3): BLAKE3; |
|
destroy(): void; |
|
private b2CompressOut; |
|
protected finish(): void; |
|
private writeInto; |
|
xofInto(out: Uint8Array): Uint8Array; |
|
xof(bytes: number): Uint8Array; |
|
digestInto(out: Uint8Array): Uint8Array; |
|
digest(): Uint8Array; |
|
} |
|
/** |
|
* BLAKE3 hash function. Can be used as MAC and KDF. |
|
* @param msg - message that would be hashed |
|
* @param opts - `dkLen` for output length, `key` for MAC mode, `context` for KDF mode |
|
* @example |
|
* const data = new Uint8Array(32); |
|
* const hash = blake3(data); |
|
* const mac = blake3(data, { key: new Uint8Array(32) }); |
|
* const kdf = blake3(data, { context: 'application name' }); |
|
*/ |
|
export declare const blake3: CHashXO; |
|
//# sourceMappingURL=blake3.d.ts.map
|