mirror of
https://github.com/JonasunderscoreJones/api.jonasjones.dev.git
synced 2025-10-23 12:09:19 +02:00
26 lines
No EOL
1,015 B
JavaScript
26 lines
No EOL
1,015 B
JavaScript
import native from './native.js';
|
|
import { NodeHash } from '../node/hash-instance.js';
|
|
import { NodeHashReader } from '../node/hash-reader.js';
|
|
// A buffer we reuse for sending bigints. set_position is synchronous, so
|
|
// this just saves creating garbage.
|
|
const bigIntBuffer = Buffer.alloc(8);
|
|
const readerFactory = (r) => new NodeHashReader({
|
|
fill: target => r.fill(target),
|
|
set_position: position => {
|
|
bigIntBuffer.writeBigUInt64BE(position);
|
|
r.set_position(bigIntBuffer);
|
|
},
|
|
});
|
|
/**
|
|
* A Node.js crypto-like createHash method.
|
|
*/
|
|
export const createHash = () => new NodeHash(new native.Hasher(), readerFactory);
|
|
/**
|
|
* Construct a new Hasher for the keyed hash function.
|
|
*/
|
|
export const createKeyed = (key) => new NodeHash(new native.Hasher(key), readerFactory);
|
|
/**
|
|
* Construct a new Hasher for the key derivation function.
|
|
*/
|
|
export const createDeriveKey = (context) => new NodeHash(new native.Hasher(undefined, context), readerFactory);
|
|
//# sourceMappingURL=hash-instance.js.map
|