| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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
|