/*! * Webogram v0.7 - messaging web application for MTProto * https://github.com/zhukov/webogram * Copyright (C) 2014 Igor Zhukov * https://github.com/zhukov/webogram/blob/master/LICENSE */ importScripts( 'polyfill.js', 'bin_utils.js', '../../vendor/jsbn/jsbn_combined.js', '../../vendor/leemon_bigint/bigint.js', '../../vendor/closure/long.js', '../../vendor/cryptoJS/crypto.js', '../../vendor/rusha/rusha.js' ) onmessage = function (e) { var taskID = e.data.taskID, result switch (e.data.task) { case 'factorize': result = pqPrimeFactorization(e.data.bytes) break case 'mod-pow': result = bytesModPow(e.data.x, e.data.y, e.data.m) break case 'sha1-hash': result = sha1HashSync(e.data.bytes) break case 'aes-encrypt': result = aesEncryptSync(e.data.bytes, e.data.keyBytes, e.data.ivBytes) break case 'aes-decrypt': result = aesDecryptSync(e.data.encryptedBytes, e.data.keyBytes, e.data.ivBytes) break default: throw new Error('Unknown task: ' + e.data.task) } postMessage({taskID: taskID, result: result}) } postMessage('ready')