index.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/__node_modules/browserify-rsa/index.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}(function (Buffer){
  12. var BN = require('bn.js')
  13. var randomBytes = require('randombytes')
  14. function blind (priv) {
  15. var r = getr(priv)
  16. var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()
  17. return { blinder: blinder, unblinder: r.invm(priv.modulus) }
  18. }
  19. function getr (priv) {
  20. var len = priv.modulus.byteLength()
  21. var r
  22. do {
  23. r = new BN(randomBytes(len))
  24. } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))
  25. return r
  26. }
  27. function crt (msg, priv) {
  28. var blinds = blind(priv)
  29. var len = priv.modulus.byteLength()
  30. var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)
  31. var c1 = blinded.toRed(BN.mont(priv.prime1))
  32. var c2 = blinded.toRed(BN.mont(priv.prime2))
  33. var qinv = priv.coefficient
  34. var p = priv.prime1
  35. var q = priv.prime2
  36. var m1 = c1.redPow(priv.exponent1).fromRed()
  37. var m2 = c2.redPow(priv.exponent2).fromRed()
  38. var h = m1.isub(m2).imul(qinv).umod(p).imul(q)
  39. return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)
  40. }
  41. crt.getr = getr
  42. module.exports = crt
  43. }).call(this,require("buffer").Buffer)
  44. }
  45. if (nodeEnv) {
  46. __define(__module.exports, __require, __module);
  47. }
  48. else {
  49. __quick_compile_project__.registerModuleFunc(__filename, function () {
  50. __define(__module.exports, __require, __module);
  51. });
  52. }
  53. })();