UNPKG

telegram-mtproto

Version:
52 lines (48 loc) 1.32 kB
var { pqPrimeFactorization, bytesModPow, sha1HashSync, aesEncryptSync, aesDecryptSync } = require('./bin'); console.info('Crypto worker registered'); var post = (() => { function postPlain(data) { postMessage(data); } var result = function postStar(data) { postMessage(data, '*'); }; try { result('ready'); } catch (err) { result = postPlain; result('ready'); } finally { //eslint-disable-next-line return result; } })(); var runTask = data => { switch (data.task) { case 'factorize': return pqPrimeFactorization(data.bytes); case 'mod-pow': return bytesModPow(data.x, data.y, data.m); case 'sha1-hash': return sha1HashSync(data.bytes); case 'aes-encrypt': return aesEncryptSync(data.bytes, data.keyBytes, data.ivBytes); case 'aes-decrypt': return aesDecryptSync(data.encryptedBytes, data.keyBytes, data.ivBytes); default: throw new Error(`Unknown task: ${data.task}`); } }; onmessage = function (e) { if (e.data === '') { console.info('empty crypto task'); } else if (typeof e.data === 'string') { console.info('crypto task string message', e.data); } else { var taskID = e.data.taskID; var result = runTask(e.data); post({ taskID, result }); } }; //# sourceMappingURL=worker.js.map