{"_id":"paillier-bignum","_rev":"12-153e66fa512d1d00f25d196bc90fbfe1","name":"paillier-bignum","dist-tags":{"latest":"1.2.2"},"versions":{"1.0.0":{"name":"paillier-bignum","version":"1.0.0","description":"An implementation of the Paillier cryptosystem relying on bignum","keywords":["paillier","homomorphic","crypto","cryptosystem"],"homepage":"https://github.com/juanelas/paillier-bignum#readme","bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","author":{"name":"Juan Hernández Serrano","email":"jserrano@entel.upc.edu","url":"https://github.com/juanelas"},"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"main":"./paillier.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"devDependencies":{"chai":"^4.1.2","mocha":"^5.2.0"},"dependencies":{"bignum":"^0.12.5"},"gitHead":"bae94bd64ca4db35078507d7269c38932a483dbd","_id":"paillier-bignum@1.0.0","_npmVersion":"6.0.1","_nodeVersion":"8.11.2","_npmUser":{"name":"juanelas","email":"jserrano@entel.upc.edu"},"dist":{"integrity":"sha512-cW1dggKuU/qu6NdnPSTq4LgDQqHvJOPzPqj5YIRM1vMftpfDgSKYnxfJb+otH0xdhRG4SUOlCYR8QjO3oExI/w==","shasum":"e4ca784682c63a8150461f5a06428583b98d6a59","tarball":"https://registry.npmjs.org/paillier-bignum/-/paillier-bignum-1.0.0.tgz","fileCount":6,"unpackedSize":13853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBnx/CRA9TVsSAnZWagAAdcwP/RcboS/m9pu0WzlL0L54\n4G54P3slJ1xnaMH560D27z+4uzklIH3RUnMIEDt1N41ZzdoO+eXdtMAMsHdP\nov2ZTZV3nWH1V3AyBBQHqZorXtTKZmDX3+2VuvUIGykJzCAcnwKpW3yqDiMX\nT2BrdNjVwU91MqcifUVhkaD0UtSzUI1QAm6NYamCOMXugSbi3C8neext/WBX\nwyABATS5LbMrwltNyT8fum41d52QtzHJ2zn51mErPF2pSWPMKRATlTbqHOu3\nH6O9X6Ap/xuq2wq9fVGrsuo4rxm+QabOveruX06t3kx4Q6UrZKv+3mi45IpW\nqxq4fui5KD0HlAKW9isFHQOEhUjCgQ+XKTi5iJYAYuegmpa5PB2eSu5eUr96\ng6+uuzyU3XAuPne1ib5PB7lJGaXAfWrzI+vfeso/nAjsw/KCA1ESl9TX0O/J\nHxj0AgtT3E49yJvzpEVHQ2/mJjqe4wYA+UMaChQ2YtS6ZfzBzQ/P+kl+rpp9\ntbgcXm0qBXfjlo3gp/iz14NF9bNTap55AWJf3t/dmEaTZTd5sUHnbLzwGKvB\n5usdODtRUHOM0emA3RzYF63ksKYCkBzBxqJX4pdC/z2eUbMcrPvvkrDJ7459\nqw+xxdXx4X05RkiyQkF1JICsxhoUkLrW8FK6iUt+0KSaxZoNYFS+pm4fRRw+\nKATV\r\n=1Y9O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUWGg3bquwC0jsaVwd8roUGYETBCBx/iU6u1vkEIC1ugIhAL4WVt/5QyYsdHmuURLx8DLo1qbZOi8WZX55tsFMVSOO"}]},"maintainers":[{"name":"juanelas","email":"jserrano@entel.upc.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paillier-bignum_1.0.0_1527151743105_0.2670985667168222"},"_hasShrinkwrap":false},"1.0.1":{"name":"paillier-bignum","version":"1.0.1","description":"An implementation of the Paillier cryptosystem relying on bignum","keywords":["paillier","homomorphic","crypto","cryptosystem"],"homepage":"https://github.com/juanelas/paillier-bignum#readme","bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","author":{"name":"Juan Hernández Serrano","email":"jserrano@entel.upc.edu","url":"https://github.com/juanelas"},"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"main":"./paillier.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"devDependencies":{"chai":"^4.1.2","mocha":"^5.2.0"},"dependencies":{"bignum":"^0.12.5"},"gitHead":"97351b681ae3a9c196ebd95f5cc158e9d416fbbc","_id":"paillier-bignum@1.0.1","_npmVersion":"6.0.1","_nodeVersion":"8.11.2","_npmUser":{"name":"juanelas","email":"jserrano@entel.upc.edu"},"dist":{"integrity":"sha512-BlsFiBrTPgVWDCsuW7q++DMoFjcshjHu5CC5mUfVz6QE1It0tajjR/zKNT26xoQRrq9pLNZiXvQCULGVEZGvwQ==","shasum":"f41e9e3208b91e2d8f9622383cdbb3d43436f69d","tarball":"https://registry.npmjs.org/paillier-bignum/-/paillier-bignum-1.0.1.tgz","fileCount":6,"unpackedSize":13853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBn3NCRA9TVsSAnZWagAA2cEP/iHABgQ95vdVBMf2LAJz\nUPFIZrr8gW8JEWpQR48KeSlIw4S2jpX5Zxamyl2rQoqXt9Tov/d3nYvDYi3T\nkH5cKpstGDwRf2KA0QDxP4FZCU2rJUvONv7oLezm2i4u2OMp49s9gMr+9w0l\nIZAULlCRooLH9Sky1fdE1l01V0vPr0uhq9thpdI61pRcO0NtRVZ/cdqW03sE\nEqntIuDWONZyAJvBWAv7QX9EAwijxCV1k+OgHK9n3IL1BDX25L1IkJf6OPo1\nF7wdicH+9oPiQOkQDJUcpyAFaqEoScsPnHcLyxDrId20FKKgwcUwGHbp8EOo\nO7R62AJ2d9w2FBQmQTMORA0C+BV6keaHLrdh/zSxgJvvx3T4LgzR5YNC9Kon\nuLq3ZWjs2ytQuu/EGEt8+6TyEWwdJVY86H8JGn+9NqlUeRXAHnXplIc6m8IV\n42aWpkuGkOJqMCeUR3Lv9/AcbMu6CRST5T9lFdDiIPUYd4kc2b/3PWU42HIT\nyjDKDRUf0zP+J2jZAZD4mUccaFDiy5WYqR2BtwO0ao3olg7T+XlS/C9u7At2\njSo+aw5PzPWw9obxmLdEhBoz0E5DUCwwOST9e8UKoR4C/80Xj5V8qjNiIrzx\nR0Q2caAKtva3KWXeRH/DpSDZGRUBkxLdmGFbgOdQsrUPO/1w0LHOyIom0fut\nDhkY\r\n=3qiQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDejm0uag+pZbcmx20d2cSNjDDZNUgbUL+fzB1MQ3vWUAIhALZFYxNodpBDzzSgwCxyOW+G/GhFlbCNEacFCKIhQ7DH"}]},"maintainers":[{"name":"juanelas","email":"jserrano@entel.upc.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paillier-bignum_1.0.1_1527152077417_0.9544769630159617"},"_hasShrinkwrap":false},"1.0.2":{"name":"paillier-bignum","version":"1.0.2","description":"An implementation of the Paillier cryptosystem relying on bignum","keywords":["paillier","homomorphic","crypto","cryptosystem"],"homepage":"https://github.com/juanelas/paillier-bignum#readme","bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","author":{"name":"Juan Hernández Serrano","email":"jserrano@entel.upc.edu","url":"https://github.com/juanelas"},"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"main":"./paillier.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"devDependencies":{"chai":"^4.1.2","mocha":"^5.2.0"},"dependencies":{"bignum":"^0.12.5"},"gitHead":"24caf9c6d2f676bf21744e165c55cce24d66b7ea","_id":"paillier-bignum@1.0.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.2","_npmUser":{"name":"juanelas","email":"jserrano@entel.upc.edu"},"dist":{"integrity":"sha512-lNY0j9U06+NeYBao94AyCq2F8s6YC1zsaEGYWCpZbccsvMO/kKcUuUM6ZCl47ApxQZOS9cZzz93w75iWG0DiCw==","shasum":"97fdde926df2b745df2907431485e6181fa8d826","tarball":"https://registry.npmjs.org/paillier-bignum/-/paillier-bignum-1.0.2.tgz","fileCount":6,"unpackedSize":13852,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbCubnCRA9TVsSAnZWagAASFoQAIHEAyjLsY8O0/L/zARw\nt7AFmWY/sbyZ+rUbiBHVvA4kDk1Y84hoYuwC0zNFwAvh5FmNQxXqumyc59Gl\n/XXTeyhO49+Smx5sCQG4TMbonUdjD9UIzF+Oi9dH/OmqOXniuKkMemh2Go68\nkaAC/CtEjsMXA6VFhbgdQhVGofXBbQV8L6C5OyNokhLkw1+CCxZ6HToxDQfm\nvVjWhFk7wy2nZIpIqOlG1d5YoGYh88t2YAQga4iwUF7k9EoAcwsPpnpVe8dN\nA4xdkesihkejy34yi/LVAOkc+7TdKjCAPWwJUvFkgYXCZWP3+bsuL6F71Nrf\nr2YbaRBZwS7FdkeZuOo+LwafUErTPonN284W51iS/WhE4Kvhv7ybMTNZoPDL\nu+3v5vGd5/fvyuNFOkwiniNuSzTfSoY+pcPwpogFUcoVqtBxJIBKbk+FguX+\nVqVgspvC3omB/k+QP62kQBQ//+mrqBI1pjkAKyHLAX3FBexXq4NvHk/f/p7M\nreChXkbHk/EGYLpv7UiD9nB1XMWo8AE7E32LO+dU1WO4GbyTjx+rd++9+nTE\nHyq524ZVaHDRy/phksxW4gWi8eiywsWbx0iiAKNCdkOcX8dR0zwhTaDQHoVn\nGppjgKZXsrVQN8qPD89ybrkuJ0Vp1v+T3X73U8Z2sMSBP/ftxgyXriZ3QUcQ\nMJBH\r\n=lprD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHbChxa/FOJIuSsWB+TUuGpJ0aSHGXotwlxSXKUJpOO9AiEAkWguca92p6HsRWMfLnENZz31Xtd5RnYdvzNrrSlgLYc="}]},"maintainers":[{"name":"juanelas","email":"jserrano@entel.upc.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paillier-bignum_1.0.2_1527441126568_0.7701942847531904"},"_hasShrinkwrap":false},"1.0.3":{"name":"paillier-bignum","version":"1.0.3","description":"An implementation of the Paillier cryptosystem relying on bignum","keywords":["paillier","homomorphic","crypto","cryptosystem"],"homepage":"https://github.com/juanelas/paillier-bignum#readme","bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","author":{"name":"Juan Hernández Serrano","email":"jserrano@entel.upc.edu","url":"https://github.com/juanelas"},"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"main":"./paillier.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"devDependencies":{"chai":"^4.1.2","mocha":"^5.2.0"},"dependencies":{"bignum":"^0.12.5"},"gitHead":"3ddb632c785b3be41870283858f557981d27cf45","_id":"paillier-bignum@1.0.3","_npmVersion":"6.0.1","_nodeVersion":"8.11.2","_npmUser":{"name":"juanelas","email":"jserrano@entel.upc.edu"},"dist":{"integrity":"sha512-Na0qurBKWBQwAzG3eVxJTybvxgC5hmBQ12TkaRie6f+d/VFisbEdSHhWqnjvIvRZP4hEXeoO/TWsF04OcQqB2A==","shasum":"cf3f1968aeef7ad2d763c169fcdc2601c82a5d25","tarball":"https://registry.npmjs.org/paillier-bignum/-/paillier-bignum-1.0.3.tgz","fileCount":6,"unpackedSize":13841,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbCyaACRA9TVsSAnZWagAAmywP/1YDZJSJKlk+4VmUvJqW\naCRzVcri9Og8lobaja26XA9ajBDBAb/UwNTOPbKq1IuR/WEF/m1SrithIStw\nVkWcOnixeXPjvYtCZSEuwYpXSHI8/gv9onDVtdnP4d9kZhKrTO00NyJoXV5J\nf5lX+SO5xI7AutbCRarSCRG4JuoWejBrOMmOSr6bBfL0q5MHKccJi7lFHpBa\nBZIfmdRf8tmH6oBqLVLud9qyC7D+OLrawCkUdoYgLGg5cjHtAb71torF+pX+\nMWJjyEhq6QrI5004RXcGMW9T1DLHiLaIYcm+Z6trikYdOFopJL+MxG4ZXKDo\nrQeSahrQqaRfstewoaNAuJWlon+1Lz4DoxgqsMY+Q0glFMuWZSqglVOh7nmK\nFTvPY6yNy3XPVhFXiVG0s0+bzx5L3e+9zc+2r1guwNE2/KQC0E9+NfOhAVHp\n2/Bms1HvSLvqLnR1QR/qmYQoYluzOlh58sRpRLYzXh/o0jx4pVI0PhcgKWT+\numJ/j2cucY+vA5WCirM2wvtaXBPw5TaULST1sDXhnGLsbFk1QacTDSypIDEU\nr59NmlUyY92cR+jrA+zBVdZbmA3TqN/iMEe5rGB2LOGVEKcfyiOetmziaH3J\npYyu+yYourxCMxVIoLZGv/p0yvgMZH7Noy2aV/AqMBK0AkXi5H0Si6h+3Lub\nDF7h\r\n=fCuL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH+JouQfMnT8J/tzepW0de/dGemfmzHXVvEnViHgyjRfAiEAtX2A75oMiNOa+1jLYImopQ++oiYcWNYgEcs2jFcFf28="}]},"maintainers":[{"name":"juanelas","email":"jserrano@entel.upc.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paillier-bignum_1.0.3_1527457408149_0.7883114001794451"},"_hasShrinkwrap":false},"1.1.0":{"name":"paillier-bignum","version":"1.1.0","description":"An implementation of the Paillier cryptosystem relying on bignum","keywords":["paillier","homomorphic","crypto","cryptosystem"],"homepage":"https://github.com/juanelas/paillier-bignum#readme","bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","author":{"name":"Juan Hernández Serrano","email":"jserrano@entel.upc.edu","url":"https://github.com/juanelas"},"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"main":"./paillier.js","directories":{"test":"test"},"scripts":{"test":"mocha","docs:build":"jsdoc src/paillier.js -r README.md -P package.json -d docs"},"devDependencies":{"chai":"^4.1.2","jsdoc":"^3.5.5","mocha":"^5.2.0"},"dependencies":{"bignum":"^0.12.5"},"gitHead":"1de632f535ecb233b358daa3f703a31d281d8895","_id":"paillier-bignum@1.1.0","_npmVersion":"6.1.0","_nodeVersion":"8.11.2","_npmUser":{"name":"juanelas","email":"jserrano@entel.upc.edu"},"dist":{"integrity":"sha512-MIApj7PRhCqWWBPpz54Kb7GKxWCeLn4FP14ddDqM9G9+UZUoCRJe6R3p61ngH+U94z7dK5Oe8V82tXU3rG1x1w==","shasum":"d69494c8fcea22931d8b4cd2240ecd1190fdef23","tarball":"https://registry.npmjs.org/paillier-bignum/-/paillier-bignum-1.1.0.tgz","fileCount":37,"unpackedSize":1071539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFwEHCRA9TVsSAnZWagAAR2gP/3nwNvyAOzWwOjNLxtjQ\nm4vw2v98mkIowH4O2S/lFHm0rNcXUCxWfruTauvQuaZUTtke2hoPLxKC9CME\nF2UkDPI4OB5Ds8qSh3Ylzg7HuhyA7ZaZaQXQwfQKoANz/gngak0pWIkNMCQp\nNL2UniqAET+XcYrPH2e/nFh8ej3g+l/zic2lcIq4AxOHFB7LEqFNPPaKJv2A\nXzPHciIi4HmKIzkWlPnv1Qvctl1ahYztm2VusgTGEwQnJoJRITyJAdWeK2sZ\noAkaGTjgAcc5A0XcPosgryjDXzQEQ8Q4r0ztrKiM/AR13qENmMegFRD4JJok\nq6NWtbXENnaKyBpjNy20+T4ptIU/Ir9RQWMSFXmNduzujS4Q/Xd5EKUlNsoM\nlYopjGTUIEc0xgGtT2gXpolznmv55iPI4PEDjYeJdparUFQzMttx83DvYRcs\nsIYpI+auV1V4nwPUymCgGydED0VNceF59Aa0VVN5lTcDtmcX+eR2HynM/A3o\nLbJVEAnSvfj7mb2P68HynVuOWHJOft6+4F2SFU/ToKtRWKTCsm59PB445t5h\nYnlsFPnUhltFKqA8YpDQlvQnqdclVF5PBUyyp+lP8CLMvir66/tp7P6A7n7H\nXI7d44sKR19yEU45mA9KQYHaCrDurNioKRztLP7VZMIjnOy8OeEQKf4ETP66\nON8U\r\n=ZavE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9lcIEsuDAOkIWUIVUUESh1UWRNDSDfH7WcV1wRS1RBgIgCYHURPEHKZFHciA4BcdAs+pvwCS2F84BZbugWY6uSss="}]},"maintainers":[{"name":"juanelas","email":"jserrano@entel.upc.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paillier-bignum_1.1.0_1528234246660_0.5896246490686272"},"_hasShrinkwrap":false},"1.1.1":{"name":"paillier-bignum","version":"1.1.1","description":"An implementation of the Paillier cryptosystem relying on bignum","keywords":["paillier","homomorphic","crypto","cryptosystem"],"homepage":"https://github.com/juanelas/paillier-bignum#readme","bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","author":{"name":"Juan Hernández Serrano","email":"jserrano@entel.upc.edu","url":"https://github.com/juanelas"},"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"main":"./paillier.js","directories":{"test":"test"},"scripts":{"test":"mocha","docs:build":"jsdoc2md --template=README.hbs --files src/paillier.js > README.md"},"devDependencies":{"chai":"^4.1.2","jsdoc-to-markdown":"^4.0.1","mocha":"^5.2.0"},"dependencies":{"bignum":"^0.12.5"},"gitHead":"4c115301446e9fa2f8d11ca2cc3dac0d1c936ffe","_id":"paillier-bignum@1.1.1","_npmVersion":"6.1.0","_nodeVersion":"8.11.2","_npmUser":{"name":"juanelas","email":"jserrano@entel.upc.edu"},"dist":{"integrity":"sha512-iIU9EDJJsHnwyx2XoEIl+UzNQGeqoYm9VOqdLGl4zITWcNbCLcLkR8GbRxPPw2wJU5SCw3XsE+zKa3jnCogckA==","shasum":"ca0b69e60362a63ec4b4aa35fead1c923af6498e","tarball":"https://registry.npmjs.org/paillier-bignum/-/paillier-bignum-1.1.1.tgz","fileCount":8,"unpackedSize":29922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFwp6CRA9TVsSAnZWagAALJQQAKFBC7rlJvbJZobnbYO3\nPxgChO700ptn3tP+7PBKZIQ27wKQvoontJBUsQ8QGJdM6ZfEsn/i5FwvN6zG\nfK9g/IGh8aTV9KqTe6IlmnyI9Y0pYOfymtnr4m+VLPoAD3P8kWpAbcfoTeno\nuuscU50ZUpSlCjT/zOKLdkBZFQv1RsCAFkPaHbGjfxHiAZ0i1QOPDKb9h74m\nq1EQooLKI4Epfvr163SgSCmXBwRUweDrKmH6wpz3gkk08Tu0HQID80VZCqpb\nYyGBcb7lNtrQdeoBfxhmAjhnOKu4Q/JN0BH+J3UZe99LFjVik8U7+y6Dyh14\nsfYQL2n8i2CXr5TtJDkRsWZmpBQhtvQiTV4hGGVE3Oe9v83pIr9DkHfPlpOx\ntHnbERHL/8huB3Tzj+CIej39sMY9ByxCcMCPMKCXTrve5BdqFJJ2PsxcDVh2\nl35ZMvv8LLNH2sCohRIpSuYixIeP9qmpI7ifMbcOG75uhC9KZHslcAiWRv25\ndg+Mw+FZC0yXRUm5Q/K3kxPbP5v+ed9/rG4b4Q96H02nFT6Y10QCsBOCVUWF\n0JgoOPID+PpJCg/N786aOI26CWJiFMfyjTuM23FBov2L15u6mX1fVRmlZNre\nu0h1HMvZIFfny6i55xFIxTDI5/bz/YOPx28s9RAlapdBZXukN9iz3uOEadPg\nSylA\r\n=Hphm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBeHjqOTkOqVNO7qH3IOCRj46c1mjSY3maiHPnM3Vj+iAiEArsfgz0MB7c/T/Y8mnOeCvGTBB6bWyNXajBfjxRyHIqU="}]},"maintainers":[{"name":"juanelas","email":"jserrano@entel.upc.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paillier-bignum_1.1.1_1528236666081_0.5063907698516945"},"_hasShrinkwrap":false},"1.1.2":{"name":"paillier-bignum","version":"1.1.2","description":"An implementation of the Paillier cryptosystem relying on bignum","keywords":["paillier","homomorphic","crypto","cryptosystem"],"homepage":"https://github.com/juanelas/paillier-bignum#readme","bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","author":{"name":"Juan Hernández Serrano","email":"jserrano@entel.upc.edu","url":"https://github.com/juanelas"},"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"main":"./paillier.js","directories":{"test":"test"},"scripts":{"test":"mocha","docs:build":"jsdoc2md --template=README.hbs --files src/paillier.js > README.md"},"devDependencies":{"chai":"^4.1.2","jsdoc-to-markdown":"^4.0.1","mocha":"^5.2.0"},"dependencies":{"bignum":"^0.12.5"},"gitHead":"c57c10955fabf4065bfd1731b0ca74120f7f9409","_id":"paillier-bignum@1.1.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"juanelas","email":"jserrano@entel.upc.edu"},"dist":{"integrity":"sha512-cb/YYsPMCyyKbFlco4lEHjbAD06NnTTtAFPj5sc2RhMUQ6hDWI6gsDweiAZ5Eyw4Xp4Z7RpWkTyqQKHYyaDC+w==","shasum":"81f3c2bec300c99392d9bf9d35490a9020d5c3f7","tarball":"https://registry.npmjs.org/paillier-bignum/-/paillier-bignum-1.1.2.tgz","fileCount":9,"unpackedSize":30313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbKNw2CRA9TVsSAnZWagAApdsP/jdgNKgRk+dzAeWfk3Ud\nEWqA7PbXfyEkDOl0fZF2Z9Y8ISk9QHt7QA4IEgn6W6ah6zpNXbLN8pEmp3An\nqN1rs8MXtwweF9qqo+R/Ad/FPEOp9fo2j4HCSWshvXV3otwSUK7S1nQ8PJsy\nwOOhdFfFQT7/D9yOyATmxWxpQxhAnzBl+sB2iup0Al7bGyCp898XiVaQADRO\nQ7zWwOxHDS6kLvSEV4cdCnVXkPinQYJkNRtmj9gXx2j4WNjgkX9qEZS7fM0o\nSsrHqIIwVA5SoNpFw7JIssV3KCgU+gN00NphYDoqE+x5uc34uJ1BQVDhcYmJ\nS6/Oi3WV/G2uvP7zMDWyUNL/l12OvZo8EzemOhmh1evMM5s0OYXL0glmMwzQ\nrkShbgIypK+u/3UMnwXm8TUwl5zlJkVVZmdVASckkoo0o4XFzQzShKtWYWfn\nnb9wMTA7HN+ijYlyCzyGB12IEhx9r1IiKNp0AID2fcTfgFKgKXmvyjU1+AM1\n16wM8cl2FCikJVFmNeNPiTTrf7PGp3mh2ukwaJ+8v6Np0Qi3Btwc8SJdQNlf\nKpIfaqtiEHrZ3/PGCNxX4UkD+B0w7ZwwdGCTveRqRXGxgskD2P6ZlIASHWHy\nlxEpnO9PSXFsalur89JOjppgsG90yuTCMx85wdkgBUTWXMhyE2YuGfPe+LpU\nhi6e\r\n=ot0u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEsT2Vu3pqwJiZLn2NkQztO1yhTnkFbW5UX1hzupKItHAiAiQrmKraLYi4ZyqXKD6Ut0zrebPzQZiZInGt4IKAtv0Q=="}]},"maintainers":[{"name":"juanelas","email":"jserrano@entel.upc.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paillier-bignum_1.1.2_1529404469465_0.842838610301279"},"_hasShrinkwrap":false},"1.2.0":{"name":"paillier-bignum","version":"1.2.0","description":"An implementation of the Paillier cryptosystem relying on bignum","keywords":["paillier","homomorphic","crypto","cryptosystem"],"homepage":"https://github.com/juanelas/paillier-bignum#readme","bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","author":{"name":"Juan Hernández Serrano","email":"jserrano@entel.upc.edu","url":"https://github.com/juanelas"},"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"main":"./paillier.js","directories":{"test":"test"},"scripts":{"test":"mocha","docs:build":"jsdoc2md --template=README.hbs --files src/paillier.js > README.md"},"devDependencies":{"chai":"^4.2.0","jsdoc-to-markdown":"^4.0.1","mocha":"^6.0.2"},"dependencies":{"bignum":"^0.13.0"},"gitHead":"0986681ad08b4c4602c6287b645a9d5c1994a255","_id":"paillier-bignum@1.2.0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-GUEWS816ATT2XcV2n/4jaFBd0yk6wBHd4B4E35FjJXBJXr5SKatiBvmsXgQwLoUa5JKtgIREhQnanBOeazaHMQ==","shasum":"b00a7d662c07dcff63e015872cd9b26f76cf6aac","tarball":"https://registry.npmjs.org/paillier-bignum/-/paillier-bignum-1.2.0.tgz","fileCount":9,"unpackedSize":30365,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJck70pCRA9TVsSAnZWagAACsYP/2id3fHaxwqvDaWznzDf\n0+QY42vNEvA7PB5cRRAjD7FUMUp88VeYsddrThAzqyhahA7p4pkoB4eotolP\nrawm+MSeMLAcSjzwZ2hZQvyqYZrh7XE0Q879Kd0DQJhghFyrehKob9zJztTw\nhezvgYM1SLQjLAP0GpF2hIG+1AUW/adSeHhvt6uwZ+H25+OtUCpLeNTAgdok\ngooBIMisG/frU9IlXlz99cgtpAt9WAu3WtdS78K4az39tcJdhfeAIYDEh6Kl\nAgZiXC+tOLIAdWUvf8VH231YrJm9ZcBVx5Zj7SQREyhxl167IOJ8dvCeBYfX\nO2c3gGZDSXNZ/YxgZnVirCl1vtJUI/33+n5zkd5YkgTlKcmEdGO5hYV/xZ7p\nRcF/0M6+fZYahI/wpVj8iuAhzMjTvn71wljSaaytcC66zoxWikhc5KIQ6XDt\n9suCYaOZcS7vdEhMdZ8JSgRx02bcWno7KmEjSALUW2OdHSNy9oD6QtCWHhRO\n8KXZCuYI33zXI25hNgUUo8OUzVdPWj5xQob6H04qoDOWEHvhUJu3pR/62YUt\nvea4B1N1xHnnlQZyztE8sC9HhcuKDmdKme0btb0JQehcTWt/T/OfoS4Wp7E0\nJBuyYvf5rB8KFEbggJ39LcEw2eBvDY9kMKYBbvArQcGi4RVJGUKEHrZPxLSh\nuqzV\r\n=WWRR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfftFZy/wPEZeYDpDV/Yx5/2+fvwh4J5yygiNs9AeIMQIgKt0uq1CcYaqjfJLMSkNMQIGfcIBzo4ZU/xo7Bu260IE="}]},"maintainers":[{"name":"juanelas","email":"jserrano@entel.upc.edu"}],"_npmUser":{"name":"juanelas","email":"jserrano@entel.upc.edu"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paillier-bignum_1.2.0_1553186088644_0.4801634051673662"},"_hasShrinkwrap":false},"1.2.1":{"name":"paillier-bignum","version":"1.2.1","description":"An implementation of the Paillier cryptosystem relying on bignum","keywords":["paillier","homomorphic","crypto","cryptosystem"],"homepage":"https://github.com/juanelas/paillier-bignum#readme","bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","author":{"name":"Juan Hernández Serrano","email":"jserrano@entel.upc.edu","url":"https://github.com/juanelas"},"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"main":"./src/paillier.js","directories":{"src":"src","test":"test"},"scripts":{"test":"mocha --timeout 600000","build:docs":"jsdoc2md --template=README.hbs --files src/paillier.js > README.md"},"devDependencies":{"chai":"^4.2.0","jsdoc-to-markdown":"^5.0.0","mocha":"^6.1.4"},"dependencies":{"bignum":"^0.13.0"},"gitHead":"4de76b1e23a79204f4213b5ef7706a4341cba924","_id":"paillier-bignum@1.2.1","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-zlGesvEhVuugAkU99OstWU9HAQZaWz8JzknvVYAi5nEzRWubzYJSBwKHPO2P0vM1X8hqsxYP7glLamdanJBLGg==","shasum":"cb01d407bc97094a0dc49600e384a97b1fa059b9","tarball":"https://registry.npmjs.org/paillier-bignum/-/paillier-bignum-1.2.1.tgz","fileCount":8,"unpackedSize":29366,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7oHTCRA9TVsSAnZWagAATKUP/jzY02A3bXTvcb5EBw/i\nXWHi7uzubmD3bljpbT/MuAIWPg0WxUMYZGLIVHL9AvjDFoAgBom6qF/Nqjnk\nFeiy4DC0kGHZ8g9lqfnfJqPl8/A0djFVvlgjQci8gjc3XQQGYQ3dXX3GuzDO\nZ3TMG0GB5lQJFGh6ienx+SUwdMV26bPFAbXnDI+ut0Qb5gJ4ZwodZAIprgWV\n12EuwdroQM3uGG6fCrZkPBDVRrGYmWIJYAOmO4/DTxTOAaKKnd4bSXYohdX7\nvLnAQdcoeAxp4nWebDMUpYm9o2pq46vrXbfepPWhYyRCJU3qeh145ZVxjTR0\nBkv8nf4ZG+q6AyYCgX2GeVhO3K4fCCFtacoJlFjVRRh8kd2VgArKVzRv1Voj\nArVbP+GajZ01/Ewni5jpsijGNNIArAfWFfOHklcQ4c6E+YGmfluqo7jylrtF\nSUR6vfUQszV/etgv3WvPzSm/iH5V6K3h8pmT1vWF8Y6va7yB6vQ4CK6Hrfip\nex9yFsKCfp37bwRdo5lcOCULktGJXhwGZOaocqpqLQnL+spcwcFdJI3sFl/G\nFzpy68d8NaOeCRhtJtXOb8vbCXRDobuivWVfvBDajirGJX3Fk5pXD8H3VrFb\naQTMFjNcWbf05RaLMxz3oTPAAjzV/+X6fb9hjb8qL08MgpSJ+TQBLJsnbGK5\nxLxW\r\n=V/jG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQZ2RqefvhNZQ+bPVfjJ2wuha7k8+A09FX+eJnDgo65AIgLCJv/O2L3E70TH9r/HoK5bfjrQb2ibaqLfd+rfqb3JI="}]},"maintainers":[{"name":"juanelas","email":"jserrano@entel.upc.edu"}],"_npmUser":{"name":"juanelas","email":"jserrano@entel.upc.edu"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paillier-bignum_1.2.1_1559134674453_0.48544924903115194"},"_hasShrinkwrap":false},"1.2.2":{"name":"paillier-bignum","version":"1.2.2","description":"An implementation of the Paillier cryptosystem relying on bignum","keywords":["paillier","homomorphic","crypto","cryptosystem"],"homepage":"https://github.com/juanelas/paillier-bignum#readme","bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","author":{"name":"Juan Hernández Serrano","email":"j.hernandez@upc.edu","url":"https://github.com/juanelas"},"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"main":"./paillier.js","directories":{"test":"test"},"scripts":{"test":"standard && mocha --timeout 600000","build:docs":"jsdoc2md --template=README.hbs --files src/paillier.js > README.md"},"standard":{"env":["mocha"]},"devDependencies":{"chai":"^4.2.0","jsdoc-to-markdown":"^5.0.3","mocha":"^7.1.1","standard":"^14.3.3"},"dependencies":{"bignum":"^0.13.0"},"gitHead":"4712d37197427e721819f5e36a0d46394da99dd3","_id":"paillier-bignum@1.2.2","_nodeVersion":"12.14.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-qmpjaZrPRtjedFqkc3pL3viWwymZU4NTqHlO0Y0lwe+yNtVS95kWom9K094sebZSwIHY0dG5PeP0I+ulGoNP7A==","shasum":"048ec44a69ed97479ddbeb118b72fcbb391d2ab6","tarball":"https://registry.npmjs.org/paillier-bignum/-/paillier-bignum-1.2.2.tgz","fileCount":7,"unpackedSize":28184,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh22MTCRA9TVsSAnZWagAAwFkQAJufbe8g18MGarXl4Lp4\n4miCjwXwePuCus9FXtZr4pUAvOVHKcKKpCv1rtiMNYs3urc5L++rLLbibHa6\n6Tbb+tpcrXEEkAMxxyJ0O1JZn9emptY1GG7v6LaIlXe3RFVaSWCDeKKlCUdq\nnnBT5P4QdhcF7mvHa92ijUmfPfHB6TzbNSClC78tHxHY/BhS/Zw/yIAu5v0r\ndj/E8YpRyvJGu6q9fBURxNgPs8Q+MYNG/udLDG9kyN1Xm4Q06c9/0TR9zGSJ\nN6XQ91CKVs5pLu7kuA6TICVdZJ+X0je+1uNkXGb8QN217aifK+VkArZBWPWX\n/RlL4XihfkYdkGfeMJyln7pFp0e2u0YW5i2N5r3qeoSXboxDzJE+4fMRbr3b\nWBIaEUkkMN8s9ctNWDStKJ/tv1T+APkDmgmEdVpBiT5nv5HovFpK1LO97eUR\nw2W6NtMcvBb32pVQkKfRpZ67sRmPF6Rkgxnt076bSTOrt0Fl4jheJ0ix7bqm\nCX7Z0AF8mBYodXJzHWfL/BXdEjSW28HIcwRZfXwIJelnXJr8zv4izmB2VZTM\nB9VA96uLccMJf8RyRVeG1bmZvMf7nNW3LCCCzXtQASWaLjnMuDyK5GVxNfzh\n8IW2NjJ4gbFaccvMkfnQYwYrul1LB2jYKaSYbdFyh2VNDWCMR+2Zssk8ur0C\nm16o\r\n=MtmZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfRtRiTJDC6QdLTWuoFL40nJBZlmHbQZh/4pNAkFrX+gIgT4tA8c4eG2swyvqTbdvWwbYTXqUoJwftfbPEz4B0ngU="}]},"maintainers":[{"name":"juanelas","email":"jserrano@entel.upc.edu"}],"_npmUser":{"name":"juanelas","email":"jserrano@entel.upc.edu"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paillier-bignum_1.2.2_1586707295519_0.5927324440480994"},"_hasShrinkwrap":false}},"time":{"created":"2018-05-24T08:49:03.104Z","1.0.0":"2018-05-24T08:49:03.175Z","modified":"2022-05-12T12:31:40.980Z","1.0.1":"2018-05-24T08:54:37.518Z","1.0.2":"2018-05-27T17:12:06.631Z","1.0.3":"2018-05-27T21:43:28.335Z","1.1.0":"2018-06-05T21:30:46.853Z","1.1.1":"2018-06-05T22:11:06.151Z","1.1.2":"2018-06-19T10:34:29.558Z","1.2.0":"2019-03-21T16:34:48.781Z","1.2.1":"2019-05-29T12:57:54.579Z","1.2.2":"2020-04-12T16:01:35.657Z"},"maintainers":[{"email":"j.hernandez@upc.edu","name":"juanelasisme"}],"description":"An implementation of the Paillier cryptosystem relying on bignum","homepage":"https://github.com/juanelas/paillier-bignum#readme","keywords":["paillier","homomorphic","crypto","cryptosystem"],"repository":{"type":"git","url":"git+https://github.com/juanelas/paillier-bignum.git"},"author":{"name":"Juan Hernández Serrano","email":"j.hernandez@upc.edu","url":"https://github.com/juanelas"},"bugs":{"url":"https://github.com/juanelas/paillier-bignum/issues"},"license":"MIT","readme":"# A node.js implementation of the Paillier cryptosystem\n\nThis is a node.js implementation relying on the [node-bignum](https://github.com/justmoon/node-bignum) library by Stephan Thomas. Bignum is an arbitrary precision integral arithmetic for Node.js using OpenSSL. For a pure javascript implementation that can be used on browsers, please visit [paillier-bigint](https://github.com/juanelas/paillier-bigint).\n\nThe Paillier cryptosystem, named after and invented by Pascal Paillier in 1999, is a probabilistic asymmetric algorithm for public key cryptography. A notable feature of the Paillier cryptosystem is its homomorphic properties.\n\n## Homomorphic properties\n\n### Homomorphic addition of plaintexts\n\nThe product of two ciphertexts will decrypt to the sum of their corresponding plaintexts,\n\n**D( E(m1) · E(m2) ) mod n^2 = m1 + m2 mod n**\n\nThe product of a ciphertext with a plaintext raising g will decrypt to the sum of the corresponding plaintexts,\n\n**D( E(m1) · g^(m2) ) mod n^2 = m1 + m2 mod n**\n\n### (pseudo-)homomorphic multiplication of plaintexts\n\nAn encrypted plaintext raised to the power of another plaintext will decrypt to the product of the two plaintexts,\n\n**D( E(m1)^(m2) mod n^2 ) = m1 · m2 mod n**,\n\n**D( E(m2)^(m1) mod n^2 ) = m1 · m2 mod n**.\n\nMore generally, an encrypted plaintext raised to a constant k will decrypt to the product of the plaintext and the\nconstant,\n\n**D( E(m1)^k mod n^2 ) = k · m1 mod n**.\n\nHowever, given the Paillier encryptions of two messages there is no known way to compute an encryption of the product of\nthese messages without knowing the private key.\n\n## Key generation\n\n1. Define the bit length of the modulus `n`, or `keyLength` in bits.\n2. Choose two large prime numbers `p` and `q` randomly and independently of each other such that `gcd( p·q, (p-1)(q-1) )=1` and `n=p·q` has a key length of keyLength. For instance:\n   1. Generate a random prime `p` with a bit length of `keyLength/2 + 1`.\n   2. Generate a random prime `q` with a bit length of `keyLength/2`.\n   3. Repeat until the bitlength of `n=p·q` is `keyLength`.\n3. Compute `λ = lcm(p-1, q-1)` with `lcm(a, b) = a·b / gcd(a, b)`.\n4. Select a generator `g` in `Z*` of `n^2`. `g` can be computed as follows (there are other ways):\n   * Generate randoms `α` and `β` in `Z*` of `n`. \n   * Compute `g=( α·n + 1 ) β^n mod n^2`.\n5. Compute `μ=( L( g^λ mod n^2 ) )^(-1) mod n` where `L(x)=(x-1)/n`.\n   \nThe **public** (encryption) **key** is **(n, g)**.\n\nThe **private** (decryption) **key** is **(λ, μ)**. \n  \n## Encryption\nLet `m` in `Z*` of `n` be the clear-text message,\n\n1. Select random integer `r` in `(1, n^2)`.\n\n2. Compute ciphertext as: **`c = g^m · r^n mod n^2`**\n\n## Decryption\nLet `c` be the ciphertext to decrypt, where `c` in `(0, n^2)`.\n\n1. Compute the plaintext message as: **`m = L( c^λ mod n^2 ) · μ mod n`**\n\n## Usage\n\nEvery input number should be a string in base 10, an integer, or a BigNum. All the output numbers are instances of BigNum.\n\n```javascript\n// import paillier\nconst paillier = require('paillier.js');\n\n// synchronous creation of a random private, public key pair for the Paillier cyrptosystem\nconst {publicKey, privateKey} = paillier.generateRandomKeys(3072);\n\n// asynchronous creation of a random private, public key pair for the Paillier cyrptosystem (ONLY from async function)\nconst {publicKey, privateKey} = await paillier.generateRandomKeysAsync(3072);\n\n// optionally, you can create your public/private keys from known parameters\nconst publicKey = new paillier.PublicKey(n, g);\nconst privateKey = new paillier.PrivateKey(lambda, mu, p, q, publicKey);\n\n// encrypt m\nlet c = publicKey.encrypt(m);\n\n// decrypt c\nlet d = privateKey.decrypt(c);\n\n// homomorphic addition of two chipertexts (encrypted numbers)\nlet c1 = publicKey.encrypt(m1);\nlet c2 = publicKey.encrypt(m2);\nlet encryptedSum = publicKey.addition(c1, c2);\nlet sum = privateKey.decrypt(encryptedSum); // m1 + m2\n\n// multiplication by k\nlet c1 = publicKey.encrypt(m1);\nlet encryptedMul = publicKey.multiply(c1, k);\nlet mul = privateKey.decrypt(encryptedMul); // k · m1\n```\n\nSee usage examples in [example.js](example.js).\n\n## Classes\n\n<dl>\n<dt><a href=\"#PaillierPublicKey\">PaillierPublicKey</a></dt>\n<dd><p>Class for a Paillier public key</p>\n</dd>\n<dt><a href=\"#PaillierPrivateKey\">PaillierPrivateKey</a></dt>\n<dd><p>Class for Paillier private keys.</p>\n</dd>\n</dl>\n\n## Functions\n\n<dl>\n<dt><a href=\"#generateRandomKeys\">generateRandomKeys(bitLength, simplevariant)</a> ⇒ <code><a href=\"#KeyPair\">KeyPair</a></code></dt>\n<dd><p>Generates a pair private, public key for the Paillier cryptosystem in synchronous mode</p>\n</dd>\n<dt><a href=\"#generateRandomKeysAsync\">generateRandomKeysAsync(bitLength, simplevariant)</a> ⇒ <code><a href=\"#KeyPair\">Promise.&lt;KeyPair&gt;</a></code></dt>\n<dd><p>Generates a pair private, public key for the Paillier cryptosystem in asynchronous mode</p>\n</dd>\n</dl>\n\n## Typedefs\n\n<dl>\n<dt><a href=\"#KeyPair\">KeyPair</a> : <code>Object</code></dt>\n<dd></dd>\n</dl>\n\n<a name=\"PaillierPublicKey\"></a>\n\n## PaillierPublicKey\nClass for a Paillier public key\n\n**Kind**: global class  \n\n* [PaillierPublicKey](#PaillierPublicKey)\n    * [new PaillierPublicKey(n, g)](#new_PaillierPublicKey_new)\n    * [.bitLength](#PaillierPublicKey+bitLength) ⇒ <code>number</code>\n    * [.encrypt(m)](#PaillierPublicKey+encrypt) ⇒ <code>bignum</code>\n    * [.addition(...ciphertexts)](#PaillierPublicKey+addition) ⇒ <code>bignum</code>\n    * [.multiply(c, k)](#PaillierPublicKey+multiply) ⇒ <code>bignum</code>\n\n<a name=\"new_PaillierPublicKey_new\"></a>\n\n### new PaillierPublicKey(n, g)\nCreates an instance of class PaillierPublicKey\n\n\n| Param | Type | Description |\n| --- | --- | --- |\n| n | <code>bignum</code> \\| <code>string</code> \\| <code>number</code> | the public modulo |\n| g | <code>bignum</code> \\| <code>string</code> \\| <code>number</code> | the public generator |\n\n<a name=\"PaillierPublicKey+bitLength\"></a>\n\n### paillierPublicKey.bitLength ⇒ <code>number</code>\nGet the bit length of the public modulo\n\n**Kind**: instance property of [<code>PaillierPublicKey</code>](#PaillierPublicKey)  \n**Returns**: <code>number</code> - - bit length of the public modulo  \n<a name=\"PaillierPublicKey+encrypt\"></a>\n\n### paillierPublicKey.encrypt(m) ⇒ <code>bignum</code>\nPaillier public-key encryption\n\n**Kind**: instance method of [<code>PaillierPublicKey</code>](#PaillierPublicKey)  \n**Returns**: <code>bignum</code> - - the encryption of m with this public key  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| m | <code>bignum</code> \\| <code>string</code> \\| <code>number</code> | a cleartext number |\n\n<a name=\"PaillierPublicKey+addition\"></a>\n\n### paillierPublicKey.addition(...ciphertexts) ⇒ <code>bignum</code>\nHomomorphic addition\n\n**Kind**: instance method of [<code>PaillierPublicKey</code>](#PaillierPublicKey)  \n**Returns**: <code>bignum</code> - - the encryption of (m_1 + ... + m_2) with this public key  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| ...ciphertexts | <code>bignums</code> | 2 or more (big) numbers (m_1,..., m_n) encrypted with this public key |\n\n<a name=\"PaillierPublicKey+multiply\"></a>\n\n### paillierPublicKey.multiply(c, k) ⇒ <code>bignum</code>\nPseudo-homomorphic paillier multiplication\n\n**Kind**: instance method of [<code>PaillierPublicKey</code>](#PaillierPublicKey)  \n**Returns**: <code>bignum</code> - - the ecnryption of k·m with this public key  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| c | <code>bignum</code> | a number m encrypted with this public key |\n| k | <code>bignum</code> \\| <code>string</code> \\| <code>number</code> | either a cleartext message (number) or a scalar |\n\n<a name=\"PaillierPrivateKey\"></a>\n\n## PaillierPrivateKey\nClass for Paillier private keys.\n\n**Kind**: global class  \n\n* [PaillierPrivateKey](#PaillierPrivateKey)\n    * [new PaillierPrivateKey(lambda, mu, publicKey, [p], [q])](#new_PaillierPrivateKey_new)\n    * [.bitLength](#PaillierPrivateKey+bitLength) ⇒ <code>number</code>\n    * [.n](#PaillierPrivateKey+n) ⇒ <code>bignum</code>\n    * [.decrypt(c)](#PaillierPrivateKey+decrypt) ⇒ <code>bignum</code>\n\n<a name=\"new_PaillierPrivateKey_new\"></a>\n\n### new PaillierPrivateKey(lambda, mu, publicKey, [p], [q])\nCreates an instance of class PaillierPrivateKey\n\n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| lambda | <code>bignum</code> \\| <code>string</code> \\| <code>number</code> |  |  |\n| mu | <code>bignum</code> \\| <code>string</code> \\| <code>number</code> |  |  |\n| publicKey | [<code>PaillierPublicKey</code>](#PaillierPublicKey) |  |  |\n| [p] | <code>bignum</code> \\| <code>string</code> \\| <code>number</code> | <code></code> | a big prime |\n| [q] | <code>bignum</code> \\| <code>string</code> \\| <code>number</code> | <code></code> | a big prime |\n\n<a name=\"PaillierPrivateKey+bitLength\"></a>\n\n### paillierPrivateKey.bitLength ⇒ <code>number</code>\nGet the bit length of the public modulo\n\n**Kind**: instance property of [<code>PaillierPrivateKey</code>](#PaillierPrivateKey)  \n**Returns**: <code>number</code> - - bit length of the public modulo  \n<a name=\"PaillierPrivateKey+n\"></a>\n\n### paillierPrivateKey.n ⇒ <code>bignum</code>\nGet the public modulo n=p·q\n\n**Kind**: instance property of [<code>PaillierPrivateKey</code>](#PaillierPrivateKey)  \n**Returns**: <code>bignum</code> - - the public modulo n=p·q  \n<a name=\"PaillierPrivateKey+decrypt\"></a>\n\n### paillierPrivateKey.decrypt(c) ⇒ <code>bignum</code>\nPaillier private-key decryption\n\n**Kind**: instance method of [<code>PaillierPrivateKey</code>](#PaillierPrivateKey)  \n**Returns**: <code>bignum</code> - - the decryption of c with this private key  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| c | <code>bignum</code> \\| <code>string</code> | a (big) number encrypted with the public key |\n\n<a name=\"generateRandomKeys\"></a>\n\n## generateRandomKeys(bitLength, simplevariant) ⇒ [<code>KeyPair</code>](#KeyPair)\nGenerates a pair private, public key for the Paillier cryptosystem in synchronous mode\n\n**Kind**: global function  \n**Returns**: [<code>KeyPair</code>](#KeyPair) - - a pair of public, private keys  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| bitLength | <code>number</code> | <code>4096</code> | the bit lenght of the public modulo |\n| simplevariant | <code>boolean</code> | <code>false</code> | use the simple variant to compute the generator |\n\n<a name=\"generateRandomKeysAsync\"></a>\n\n## generateRandomKeysAsync(bitLength, simplevariant) ⇒ [<code>Promise.&lt;KeyPair&gt;</code>](#KeyPair)\nGenerates a pair private, public key for the Paillier cryptosystem in asynchronous mode\n\n**Kind**: global function  \n**Returns**: [<code>Promise.&lt;KeyPair&gt;</code>](#KeyPair) - - a promise that returns a [KeyPair](#KeyPair) if resolve  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| bitLength | <code>number</code> | <code>4096</code> | the bit lenght of the public modulo |\n| simplevariant | <code>boolean</code> | <code>false</code> | use the simple variant to compute the generator |\n\n<a name=\"KeyPair\"></a>\n\n## KeyPair : <code>Object</code>\n**Kind**: global typedef  \n**Properties**\n\n| Name | Type | Description |\n| --- | --- | --- |\n| publicKey | [<code>PaillierPublicKey</code>](#PaillierPublicKey) | a Paillier's public key |\n| privateKey | [<code>PaillierPrivateKey</code>](#PaillierPrivateKey) | the associated Paillier's private key |\n\n\n* * *","readmeFilename":"README.md"}