PHP 7.4.33
Preview: hkdf.js Size: 3.67 KB
/var/www/receipt-app-backend-bitkit.dk/httpdocs/node_modules/@noble/hashes/hkdf.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hkdf = void 0;
exports.extract = extract;
exports.expand = expand;
/**
 * HKDF (RFC 5869): extract + expand in one step.
 * See https://soatok.blog/2021/11/17/understanding-hkdf/.
 * @module
 */
const hmac_ts_1 = require("./hmac.js");
const utils_ts_1 = require("./utils.js");
/**
 * HKDF-extract from spec. Less important part. `HKDF-Extract(IKM, salt) -> PRK`
 * Arguments position differs from spec (IKM is first one, since it is not optional)
 * @param hash - hash function that would be used (e.g. sha256)
 * @param ikm - input keying material, the initial key
 * @param salt - optional salt value (a non-secret random value)
 */
function extract(hash, ikm, salt) {
    (0, utils_ts_1.ahash)(hash);
    // NOTE: some libraries treat zero-length array as 'not provided';
    // we don't, since we have undefined as 'not provided'
    // https://github.com/RustCrypto/KDFs/issues/15
    if (salt === undefined)
        salt = new Uint8Array(hash.outputLen);
    return (0, hmac_ts_1.hmac)(hash, (0, utils_ts_1.toBytes)(salt), (0, utils_ts_1.toBytes)(ikm));
}
const HKDF_COUNTER = /* @__PURE__ */ Uint8Array.from([0]);
const EMPTY_BUFFER = /* @__PURE__ */ Uint8Array.of();
/**
 * HKDF-expand from the spec. The most important part. `HKDF-Expand(PRK, info, L) -> OKM`
 * @param hash - hash function that would be used (e.g. sha256)
 * @param prk - a pseudorandom key of at least HashLen octets (usually, the output from the extract step)
 * @param info - optional context and application specific information (can be a zero-length string)
 * @param length - length of output keying material in bytes
 */
function expand(hash, prk, info, length = 32) {
    (0, utils_ts_1.ahash)(hash);
    (0, utils_ts_1.anumber)(length);
    const olen = hash.outputLen;
    if (length > 255 * olen)
        throw new Error('Length should be <= 255*HashLen');
    const blocks = Math.ceil(length / olen);
    if (info === undefined)
        info = EMPTY_BUFFER;
    // first L(ength) octets of T
    const okm = new Uint8Array(blocks * olen);
    // Re-use HMAC instance between blocks
    const HMAC = hmac_ts_1.hmac.create(hash, prk);
    const HMACTmp = HMAC._cloneInto();
    const T = new Uint8Array(HMAC.outputLen);
    for (let counter = 0; counter < blocks; counter++) {
        HKDF_COUNTER[0] = counter + 1;
        // T(0) = empty string (zero length)
        // T(N) = HMAC-Hash(PRK, T(N-1) | info | N)
        HMACTmp.update(counter === 0 ? EMPTY_BUFFER : T)
            .update(info)
            .update(HKDF_COUNTER)
            .digestInto(T);
        okm.set(T, olen * counter);
        HMAC._cloneInto(HMACTmp);
    }
    HMAC.destroy();
    HMACTmp.destroy();
    (0, utils_ts_1.clean)(T, HKDF_COUNTER);
    return okm.slice(0, length);
}
/**
 * HKDF (RFC 5869): derive keys from an initial input.
 * Combines hkdf_extract + hkdf_expand in one step
 * @param hash - hash function that would be used (e.g. sha256)
 * @param ikm - input keying material, the initial key
 * @param salt - optional salt value (a non-secret random value)
 * @param info - optional context and application specific information (can be a zero-length string)
 * @param length - length of output keying material in bytes
 * @example
 * import { hkdf } from '@noble/hashes/hkdf';
 * import { sha256 } from '@noble/hashes/sha2';
 * import { randomBytes } from '@noble/hashes/utils';
 * const inputKey = randomBytes(32);
 * const salt = randomBytes(32);
 * const info = 'application-key';
 * const hk1 = hkdf(sha256, inputKey, salt, info, 32);
 */
const hkdf = (hash, ikm, salt, info, length) => expand(hash, extract(hash, ikm, salt), info, length);
exports.hkdf = hkdf;
//# sourceMappingURL=hkdf.js.map

Directory Contents

Dirs: 2 × Files: 111
Name Size Perms Modified Actions
esm DIR
- drwxr-xr-x 2026-05-06 08:23:47
Edit Download
src DIR
- drwxr-xr-x 2026-05-06 08:23:47
Edit Download
1.46 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.11 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
16.61 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
20.57 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
3.29 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
3.52 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
19.54 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
27.26 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
3.62 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
3.92 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
17.84 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
24.99 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
454 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
295 B lrw-r--r-- 2026-05-06 08:23:46
Edit Download
549 B lrw-r--r-- 2026-05-06 08:23:45
Edit Download
220 B lrw-r--r-- 2026-05-06 08:23:46
Edit Download
963 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
599 B lrw-r--r-- 2026-05-06 08:23:46
Edit Download
1.06 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
428 B lrw-r--r-- 2026-05-06 08:23:46
Edit Download
1.77 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.26 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
9.84 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
10.34 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
70 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
138 B lrw-r--r-- 2026-05-06 08:23:46
Edit Download
243 B lrw-r--r-- 2026-05-06 08:23:45
Edit Download
219 B lrw-r--r-- 2026-05-06 08:23:46
Edit Download
74 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
145 B lrw-r--r-- 2026-05-06 08:23:46
Edit Download
579 B lrw-r--r-- 2026-05-06 08:23:45
Edit Download
364 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.61 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
863 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
6.70 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
5.76 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.93 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
566 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
3.67 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
2.06 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.01 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
931 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
3.11 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
2.95 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
35 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
101 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.10 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
180 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
2.50 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.84 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
10.13 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
13.17 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.08 KB lrw-r--r-- 2026-05-06 08:23:44
Edit Download
6.58 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
981 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
562 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
4.02 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
3.87 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
21.10 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
556 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
303 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
627 B lrw-r--r-- 2026-05-06 08:23:45
Edit Download
228 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.33 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
651 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
10.77 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
11.90 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
379 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
289 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
460 B lrw-r--r-- 2026-05-06 08:23:45
Edit Download
216 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
4.76 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
4.72 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
17.45 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
19.10 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
5.23 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
4.42 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
16.42 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
16.76 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.98 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.70 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
8.90 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
10.06 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
928 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
454 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
975 B lrw-r--r-- 2026-05-06 08:23:45
Edit Download
317 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.39 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
756 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.38 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
499 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
7.31 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
4.50 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
11.26 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
9.71 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
707 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
518 B lrw-r--r-- 2026-05-06 08:23:46
Edit Download
700 B lrw-r--r-- 2026-05-06 08:23:44
Edit Download
310 B lrw-r--r-- 2026-05-06 08:23:46
Edit Download
474 B lrw-r--r-- 2026-05-06 08:23:47
Edit Download
553 B lrw-r--r-- 2026-05-06 08:23:46
Edit Download
1.79 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
3.53 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
2.12 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
1.62 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
6.32 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
5.54 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
3.06 KB lrw-r--r-- 2026-05-06 08:23:47
Edit Download
4.21 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
3.73 KB lrw-r--r-- 2026-05-06 08:23:45
Edit Download
4.96 KB lrw-r--r-- 2026-05-06 08:23:46
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).