generated from erangel1/generic-template
initial commit. phase 1 complete
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
const getGlobal = () => {
|
||||
if (typeof globalThis !== 'undefined')
|
||||
return globalThis;
|
||||
if (typeof self !== 'undefined')
|
||||
return self;
|
||||
if (typeof window !== 'undefined')
|
||||
return window;
|
||||
throw new Error('unable to locate global object');
|
||||
};
|
||||
export default async (digest, ikm, salt, info, keylen) => {
|
||||
const { crypto: { subtle }, } = getGlobal();
|
||||
return new Uint8Array(await subtle.deriveBits({
|
||||
name: 'HKDF',
|
||||
hash: `SHA-${digest.substr(3)}`,
|
||||
salt,
|
||||
info,
|
||||
}, await subtle.importKey('raw', ikm, 'HKDF', false, ['deriveBits']), keylen << 3));
|
||||
};
|
||||
Reference in New Issue
Block a user