15 lines
525 B
JavaScript
15 lines
525 B
JavaScript
import * as crypto from 'crypto';
|
|
import fallback from './fallback.js';
|
|
let hkdf;
|
|
if (typeof crypto.hkdf === 'function' && !process.versions.electron) {
|
|
hkdf = async (...args) => new Promise((resolve, reject) => {
|
|
crypto.hkdf(...args, (err, arrayBuffer) => {
|
|
if (err)
|
|
reject(err);
|
|
else
|
|
resolve(new Uint8Array(arrayBuffer));
|
|
});
|
|
});
|
|
}
|
|
export default async (digest, ikm, salt, info, keylen) => (hkdf || fallback)(digest, ikm, salt, info, keylen);
|