UNPKG

983 BJavaScriptView Raw
1/* global self */
2import { Decrypter } from 'aes-decrypter';
3import { createTransferableMessage } from './bin-utils';
4
5/**
6 * Our web worker interface so that things can talk to aes-decrypter
7 * that will be running in a web worker. the scope is passed to this by
8 * webworkify.
9 */
10self.onmessage = function(event) {
11 const data = event.data;
12 const encrypted = new Uint8Array(
13 data.encrypted.bytes,
14 data.encrypted.byteOffset,
15 data.encrypted.byteLength
16 );
17 const key = new Uint32Array(
18 data.key.bytes,
19 data.key.byteOffset,
20 data.key.byteLength / 4
21 );
22 const iv = new Uint32Array(
23 data.iv.bytes,
24 data.iv.byteOffset,
25 data.iv.byteLength / 4
26 );
27
28 /* eslint-disable no-new, handle-callback-err */
29 new Decrypter(
30 encrypted,
31 key,
32 iv,
33 function(err, bytes) {
34 self.postMessage(createTransferableMessage({
35 source: data.source,
36 decrypted: bytes
37 }), [bytes.buffer]);
38 }
39 );
40 /* eslint-enable */
41};