@iotize/tap
Version:
IoTize Device client for Javascript
24 lines • 1.71 kB
JavaScript
import { algo, PBKDF2 } from 'crypto-js';
import { CryptoHelper } from './crypto-helper';
/**
* PBKDF2 function (pssword-based key derivation function)
* @param input
* @param salt
* @iterations
* @param keySize number of 32 bit words
*/
export function pbkdf2(input, salt, iterations, keySize) {
const wordInput = CryptoHelper.sanitizeInput(input);
const wordSalt = CryptoHelper.sanitizeInput(salt);
const options = {
iterations,
keySize,
hasher: algo.SHA256,
};
if (options.keySize === undefined) {
delete options.keySize;
}
const hash = PBKDF2(wordInput, wordSalt, options);
return CryptoHelper.wordArrayToByteArray(hash);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGJrZGYyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vY3J5cHRvL3NyYy9saWIvcGJrZGYyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFhLE1BQU0sV0FBVyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUNwQixLQUEwQixFQUMxQixJQUF5QixFQUN6QixVQUFrQixFQUNsQixPQUFnQjtJQUVoQixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUc7UUFDZCxVQUFVO1FBQ1YsT0FBTztRQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtLQUNwQixDQUFDO0lBQ0YsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtRQUNqQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0FDeEI7SUFDRCxNQUFNLElBQUksR0FBYyxNQUFNLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxPQUFPLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRCxDQUFDIn0=