1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- "use strict";
- /**
- * A **Password-Based Key-Derivation Function** is designed to create
- * a sequence of bytes suitible as a **key** from a human-rememberable
- * password.
- *
- * @_subsection: api/crypto:Passwords [about-pbkdf]
- */
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.pbkdf2 = void 0;
- const crypto_js_1 = require("./crypto.js");
- const index_js_1 = require("../utils/index.js");
- let locked = false;
- const _pbkdf2 = function (password, salt, iterations, keylen, algo) {
- return (0, crypto_js_1.pbkdf2Sync)(password, salt, iterations, keylen, algo);
- };
- let __pbkdf2 = _pbkdf2;
- /**
- * Return the [[link-pbkdf2]] for %%keylen%% bytes for %%password%% using
- * the %%salt%% and using %%iterations%% of %%algo%%.
- *
- * This PBKDF is outdated and should not be used in new projects, but is
- * required to decrypt older files.
- *
- * @example:
- * // The password must be converted to bytes, and it is generally
- * // best practices to ensure the string has been normalized. Many
- * // formats explicitly indicate the normalization form to use.
- * password = "hello"
- * passwordBytes = toUtf8Bytes(password, "NFKC")
- *
- * salt = id("some-salt")
- *
- * // Compute the PBKDF2
- * pbkdf2(passwordBytes, salt, 1024, 16, "sha256")
- * //_result:
- */
- function pbkdf2(_password, _salt, iterations, keylen, algo) {
- const password = (0, index_js_1.getBytes)(_password, "password");
- const salt = (0, index_js_1.getBytes)(_salt, "salt");
- return (0, index_js_1.hexlify)(__pbkdf2(password, salt, iterations, keylen, algo));
- }
- exports.pbkdf2 = pbkdf2;
- pbkdf2._ = _pbkdf2;
- pbkdf2.lock = function () { locked = true; };
- pbkdf2.register = function (func) {
- if (locked) {
- throw new Error("pbkdf2 is locked");
- }
- __pbkdf2 = func;
- };
- Object.freeze(pbkdf2);
- //# sourceMappingURL=pbkdf2.js.map
|