UNPKG

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