UNPKG

1.03 kBJavaScriptView Raw
1'use strict';
2
3var _bin = require('./bin');
4
5console.info('Crypto worker registered');
6
7const runTask = data => {
8 switch (data.task) {
9 case 'factorize':
10 return (0, _bin.pqPrimeFactorization)(data.bytes);
11 case 'mod-pow':
12 return (0, _bin.bytesModPow)(data.x, data.y, data.m);
13 case 'sha1-hash':
14 return (0, _bin.sha1HashSync)(data.bytes);
15 case 'aes-encrypt':
16 return (0, _bin.aesEncryptSync)(data.bytes, data.keyBytes, data.ivBytes);
17 case 'aes-decrypt':
18 return (0, _bin.aesDecryptSync)(data.encryptedBytes, data.keyBytes, data.ivBytes);
19 default:
20 throw new Error(`Unknown task: ${data.task}`);
21 }
22};
23
24onmessage = function (e) {
25 if (e.data === '') {
26 console.info('empty crypto task');
27 } else if (typeof e.data === 'string') {
28 console.info('crypto task string message', e.data);
29 } else {
30 const taskID = e.data.taskID;
31 const result = runTask(e.data);
32 postMessage({ taskID, result });
33 }
34};
35
36postMessage('ready');
37//# sourceMappingURL=worker.js.map
\No newline at end of file