{"ast":null,"code":"var BN = require('bn.js');\n\nvar randomBytes = require('randombytes');\n\nfunction blind(priv) {\n var r = getr(priv);\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n return {\n blinder: blinder,\n unblinder: r.invm(priv.modulus)\n };\n}\n\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r;\n\n do {\n r = new BN(randomBytes(len));\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\n return r;\n}\n\nfunction crt(msg, priv) {\n var blinds = blind(priv);\n var len = priv.modulus.byteLength();\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n var c1 = blinded.toRed(BN.mont(priv.prime1));\n var c2 = blinded.toRed(BN.mont(priv.prime2));\n var qinv = priv.coefficient;\n var p = priv.prime1;\n var q = priv.prime2;\n var m1 = c1.redPow(priv.exponent1).fromRed();\n var m2 = c2.redPow(priv.exponent2).fromRed();\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\n\ncrt.getr = getr;\nmodule.exports = crt;","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/browserify-rsa/index.js"],"names":["BN","require","randomBytes","blind","priv","r","getr","blinder","toRed","mont","modulus","redPow","publicExponent","fromRed","unblinder","invm","len","byteLength","cmp","umod","prime1","prime2","crt","msg","blinds","blinded","mul","c1","c2","qinv","coefficient","p","q","m1","exponent1","m2","exponent2","h","isub","imul","iadd","toArrayLike","Buffer","module","exports"],"mappings":"AAAA,IAAIA,EAAE,GAAGC,OAAO,CAAC,OAAD,CAAhB;;AACA,IAAIC,WAAW,GAAGD,OAAO,CAAC,aAAD,CAAzB;;AAEA,SAASE,KAAT,CAAgBC,IAAhB,EAAsB;AACpB,MAAIC,CAAC,GAAGC,IAAI,CAACF,IAAD,CAAZ;AACA,MAAIG,OAAO,GAAGF,CAAC,CAACG,KAAF,CAAQR,EAAE,CAACS,IAAH,CAAQL,IAAI,CAACM,OAAb,CAAR,EAA+BC,MAA/B,CAAsC,IAAIX,EAAJ,CAAOI,IAAI,CAACQ,cAAZ,CAAtC,EAAmEC,OAAnE,EAAd;AACA,SAAO;AAAEN,IAAAA,OAAO,EAAEA,OAAX;AAAoBO,IAAAA,SAAS,EAAET,CAAC,CAACU,IAAF,CAAOX,IAAI,CAACM,OAAZ;AAA/B,GAAP;AACD;;AAED,SAASJ,IAAT,CAAeF,IAAf,EAAqB;AACnB,MAAIY,GAAG,GAAGZ,IAAI,CAACM,OAAL,CAAaO,UAAb,EAAV;AACA,MAAIZ,CAAJ;;AACA,KAAG;AACDA,IAAAA,CAAC,GAAG,IAAIL,EAAJ,CAAOE,WAAW,CAACc,GAAD,CAAlB,CAAJ;AACD,GAFD,QAESX,CAAC,CAACa,GAAF,CAAMd,IAAI,CAACM,OAAX,KAAuB,CAAvB,IAA4B,CAACL,CAAC,CAACc,IAAF,CAAOf,IAAI,CAACgB,MAAZ,CAA7B,IAAoD,CAACf,CAAC,CAACc,IAAF,CAAOf,IAAI,CAACiB,MAAZ,CAF9D;;AAGA,SAAOhB,CAAP;AACD;;AAED,SAASiB,GAAT,CAAcC,GAAd,EAAmBnB,IAAnB,EAAyB;AACvB,MAAIoB,MAAM,GAAGrB,KAAK,CAACC,IAAD,CAAlB;AACA,MAAIY,GAAG,GAAGZ,IAAI,CAACM,OAAL,CAAaO,UAAb,EAAV;AACA,MAAIQ,OAAO,GAAG,IAAIzB,EAAJ,CAAOuB,GAAP,EAAYG,GAAZ,CAAgBF,MAAM,CAACjB,OAAvB,EAAgCY,IAAhC,CAAqCf,IAAI,CAACM,OAA1C,CAAd;AACA,MAAIiB,EAAE,GAAGF,OAAO,CAACjB,KAAR,CAAcR,EAAE,CAACS,IAAH,CAAQL,IAAI,CAACgB,MAAb,CAAd,CAAT;AACA,MAAIQ,EAAE,GAAGH,OAAO,CAACjB,KAAR,CAAcR,EAAE,CAACS,IAAH,CAAQL,IAAI,CAACiB,MAAb,CAAd,CAAT;AACA,MAAIQ,IAAI,GAAGzB,IAAI,CAAC0B,WAAhB;AACA,MAAIC,CAAC,GAAG3B,IAAI,CAACgB,MAAb;AACA,MAAIY,CAAC,GAAG5B,IAAI,CAACiB,MAAb;AACA,MAAIY,EAAE,GAAGN,EAAE,CAAChB,MAAH,CAAUP,IAAI,CAAC8B,SAAf,EAA0BrB,OAA1B,EAAT;AACA,MAAIsB,EAAE,GAAGP,EAAE,CAACjB,MAAH,CAAUP,IAAI,CAACgC,SAAf,EAA0BvB,OAA1B,EAAT;AACA,MAAIwB,CAAC,GAAGJ,EAAE,CAACK,IAAH,CAAQH,EAAR,EAAYI,IAAZ,CAAiBV,IAAjB,EAAuBV,IAAvB,CAA4BY,CAA5B,EAA+BQ,IAA/B,CAAoCP,CAApC,CAAR;AACA,SAAOG,EAAE,CAACK,IAAH,CAAQH,CAAR,EAAWE,IAAX,CAAgBf,MAAM,CAACV,SAAvB,EAAkCK,IAAlC,CAAuCf,IAAI,CAACM,OAA5C,EAAqD+B,WAArD,CAAiEC,MAAjE,EAAyE,IAAzE,EAA+E1B,GAA/E,CAAP;AACD;;AACDM,GAAG,CAAChB,IAAJ,GAAWA,IAAX;AAEAqC,MAAM,CAACC,OAAP,GAAiBtB,GAAjB","sourcesContent":["var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n"]},"metadata":{},"sourceType":"script"}