{"_id":"@consento/shamirs-secret-sharing","_rev":"4-df050c45696080c0273d85481e05ee49","name":"@consento/shamirs-secret-sharing","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.2":{"name":"@consento/shamirs-secret-sharing","version":"1.0.2","description":"A simple implementation of Shamir's Secret Sharing configured to use a finite field in GF(2^8) with 128 bit padding","main":"index.js","directories":{"test":"test"},"scripts":{"test":"ava test/index.js"},"keywords":["shamir","secret","sharing","sss"],"author":{"name":"Joseph Werle","email":"joseph.werle@gmail.com"},"license":"MIT","dependencies":{"@consento/sync-randombytes":"^1.0.3","buffer":"^5.4.3"},"devDependencies":{"ava":"^2.4.0","nyc":"^15.0.0"},"repository":{"type":"git","url":"git+https://github.com/jwerle/shamirs-secret-sharing.git"},"bugs":{"url":"https://github.com/jwerle/shamirs-secret-sharing/issues"},"homepage":"https://github.com/jwerle/shamirs-secret-sharing#readme","gitHead":"589d66f8ea66e591b892d2a43d92ae6b420f532a","_id":"@consento/shamirs-secret-sharing@1.0.2","_nodeVersion":"12.11.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-RPnJgEYz8RW5cTJQ8hQ9XvtSUmFV/Pr3O2/M1fnQuLZPng87MwQ7twh5Dr4YGVIpIZjTToEZjAFfZ77EuooEkQ==","shasum":"9a782fd34565b556a53723de30a837457ff8c0b8","tarball":"https://registry.npmjs.org/@consento/shamirs-secret-sharing/-/shamirs-secret-sharing-1.0.2.tgz","fileCount":16,"unpackedSize":20980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJAJ7CRA9TVsSAnZWagAA+A8P/jzBzxS24ZrwTEahWw7w\n2SPA+5aGavnisGygOhhbqglWoK3/d5gLtzDXRPycn783e1me9wV6veQYpcrQ\nNUN0hfARXMdZ4lxdS3+M6LtTnNPk05topNIMB4WSEi86Kdcb7mdQfVoEAcQH\nDvnfgz9JUA2+ZnzBthBe8jFVM1QGNhmtpRgOtpGQJFJFP3Elw9NJmqXQLuTt\nxNTiVBIgKdk2oBcYHr2QxgoORuqNyNcnHkf7j5fczhtr1ciQ/JjTX2GfoOmC\nOzH/XrmUfA/wbeCCZ/mrJs2j7kEkdQN7KPpOikzdFblvyprFNKlukNzWxgbM\nwHLEDRoIVjwKIk7lvRzdAj0ynhptqRb0nAKtRgspP4Pc1VzXIxeuwz/p77NQ\n2Z1mduVSBPgN0oWwrbDL7uXOQ5lWn1d0cmpQCTR5egioDP2mdc/LZxRBcRu2\n3lBPVXu4enYSkbm8lZ8PTVTDuRzaOn/zpbG5GYNhOIFIHsP1/c1hjoUnhl8F\nKGaNoGBYeGSzVUNrJ+sh5t9XKPqL1vFmfQqBkDu2EBtLs9oQzhXV+poVfDML\n4B+xwFuw20v5YHHoEPqkN2nSq9dHIZv7zkHjCChDKnGy9he+Mmkk3jVTSSCI\nHbNLNcRyahUxn4xZ9zf54uaedoxRxeDyHNPQXzhMrsvHrQXuB2JF5dEjachk\nnwye\r\n=/dz1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8e7ppfLJVmDPdUhDJmTptM3Vms0G67jyr1S/EfNx72QIgFZP6AUWnNUiPRVgEQVTDy3gmFJiVEEL8BfTGVsp7W8g="}]},"maintainers":[{"name":"dkastl","email":"daniel@georepublic.de"},{"name":"leichtgewicht","email":"martin.heidegger@gmail.com"}],"_npmUser":{"name":"leichtgewicht","email":"martin.heidegger@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shamirs-secret-sharing_1.0.2_1579418235102_0.25271470833951426"},"_hasShrinkwrap":false},"1.0.3":{"name":"@consento/shamirs-secret-sharing","version":"1.0.3","description":"A simple implementation of Shamir's Secret Sharing configured to use a finite field in GF(2^8) with 128 bit padding","main":"index.js","directories":{"test":"test"},"scripts":{"test":"ava test/index.js"},"keywords":["shamir","secret","sharing","sss"],"author":{"name":"Joseph Werle","email":"joseph.werle@gmail.com"},"license":"MIT","dependencies":{"@consento/sync-randombytes":"^1.0.3","buffer":"^5.4.3"},"devDependencies":{"ava":"^2.4.0","nyc":"^15.0.0"},"repository":{"type":"git","url":"git+https://github.com/jwerle/shamirs-secret-sharing.git"},"bugs":{"url":"https://github.com/jwerle/shamirs-secret-sharing/issues"},"homepage":"https://github.com/jwerle/shamirs-secret-sharing#readme","gitHead":"7150f63d1a4689a7cf5ad8b42c418d394d89f262","_id":"@consento/shamirs-secret-sharing@1.0.3","_nodeVersion":"12.11.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-fL4nJcFiDxaHijg1Wc7hRdcRQqGx+IDC/BlBXQd8TpOT1Wo9RUnRwp4Rgpmm+vunflshmL9Jfp6dA1TIUcaP1Q==","shasum":"601f66a5861e7a901ccde1f2c37d107743e7d89b","tarball":"https://registry.npmjs.org/@consento/shamirs-secret-sharing/-/shamirs-secret-sharing-1.0.3.tgz","fileCount":17,"unpackedSize":21613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJAS4CRA9TVsSAnZWagAAJ4QQAIsT3SK5l2s39saTa8IH\njZ+mr01Xxcqr3VsuwJ+g09oA1JuFOXwSpEs5XjAix00szBEHVufNOmMyHR9g\nQy5bOcETpRjGqI7avVbSE715D7H2dIQXLQ4lRF7InZvWaDhCO8VCrjWq7o5y\n3zyqvfJmvg7Qq/ApyLD5NPpCDQqyGToXFUNw8/TSjIr1WzGrdC9tbAKe8L0W\n+zWDZ6REJnR3u1yQTSSYHVTlXFSy5LnlXgXmsz5gAiYxMhFOxKFfVxJyErR9\neJKSGDRa4o4spQwt9Z3//7Q3dCVf4Gi8pkl8VpIPyPTcYcEzCoKQ7u1G+uOz\njmN8JCUV8w5FvUX52dDWJenYR7R5oxb1K7m7MyQVqku1i6o78xMMKuR7iefR\nVla0V43i/wQXoeNk+2c1J1RF2XcJvzErfWRrFGFJB32yRIC9t6KL40DBwxfG\nY6IdB/xgYJ30YwXuJet/Ghx6g0V6GVWXspGpFGSXM6Qhx8rUvc4aL3WWXFy0\nDZxWQN1/+odrd4EaN2OYf+4+5PmRz6empN13jxhdQtjBT5ZwspL8Ib3b/OGN\nRYkSj0TWgfulZuM5OT3/3rGtWGX2neay88GKN+iP9HQ8MCaF1wPF+Iozt2O3\nG845HzkiFo3la6EG4fUqKlQSIvUmKXQ2Uw4rEqrbLHz0zA8ODiVkA8vvbS+A\nZ33l\r\n=eb0L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDvUNAXGzDh/WbTNIDeJA7dZO67EnX23AryV9FaPiLuaAiAW41Agao6DvlKLmJy72KxJB3xaT3qxyP9sAcAEUji7ZA=="}]},"maintainers":[{"name":"dkastl","email":"daniel@georepublic.de"},{"name":"leichtgewicht","email":"martin.heidegger@gmail.com"}],"_npmUser":{"name":"leichtgewicht","email":"martin.heidegger@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shamirs-secret-sharing_1.0.3_1579418808413_0.6347061540582153"},"_hasShrinkwrap":false},"1.0.4":{"name":"@consento/shamirs-secret-sharing","version":"1.0.4","description":"A simple implementation of Shamir's Secret Sharing configured to use a finite field in GF(2^8) with 128 bit padding","main":"index.js","directories":{"test":"test"},"scripts":{"test":"ava test/index.js"},"keywords":["shamir","secret","sharing","sss"],"author":{"name":"Joseph Werle","email":"joseph.werle@gmail.com"},"license":"MIT","dependencies":{"@consento/sync-randombytes":"^1.0.3","buffer":"^5.4.3"},"devDependencies":{"ava":"^2.4.0","nyc":"^15.0.0"},"repository":{"type":"git","url":"git+https://github.com/jwerle/shamirs-secret-sharing.git"},"bugs":{"url":"https://github.com/jwerle/shamirs-secret-sharing/issues"},"homepage":"https://github.com/jwerle/shamirs-secret-sharing#readme","gitHead":"746bab418b5d23a3d5857071ef652875bd1d743e","_id":"@consento/shamirs-secret-sharing@1.0.4","_nodeVersion":"12.11.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-KELA/pqOq6T8qyVgaOg2qDpBxa4adhNL0oC/Pno6dZxIogm9pizY+qL66uc0ldFcGlgsGYvI5v4MpdqbDA6Vbg==","shasum":"bbd8132ce99f563fe48b8269562b23fd77cee8d3","tarball":"https://registry.npmjs.org/@consento/shamirs-secret-sharing/-/shamirs-secret-sharing-1.0.4.tgz","fileCount":17,"unpackedSize":22469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJS2dCRA9TVsSAnZWagAAA64P/1gFZ/+Hf5fcmSjkuy+K\n2o1b8UayzkdU+xhIfcfgmHaaqc9WaMYbTUzCcHGgRr/8ao2k5vuTS9F8Iiww\nqo2W9Uv3hiGrVxx5EPAg+JOhrAbE478PB0CzOkO5HzoGdWp6WamAefdN9dzb\n+4BjfQWtzuvJexX8HetCtBipfF9AkhJuKFFZu7AS1be3VDlZaZVjyLyYDTaf\n+ZUaoqhLVpvTGveBqdjJxMRsHqC37QEIJ2RsNNx8y3g4wbOACgSCWiasZW+I\nNtrQMkwTlJ0I3t9IFsr9wo7OqlziF08AjT9BPcakwVP4HtNQWkD7lD+I/bYC\nLPe3fRXHIxtkaTzeL7rj3ldbccng6FuFCSlxc154xxYtEoD46NYnl8DzD7jo\nycN8mSYPOZDi61H9eXaQs/p2KiXabrIOBQN5lTwCFk02slxAgFRmzXkDrFNb\nW8B0ipvdGaPikh9mWwpZBpdqf/jbw/CvSbeLev/kkmPXJZXBn21IxyzzZBna\nvVUDlObtOH9vw3/gRFBkS+yaQtMleavwYf0Z7LIWPTTqL7OvvlZEdjQHn1O5\n41pXaLUQA62KZE982pv1NuWSLIqf3mf7t6QK231hRmW9ntPyGUvMU6+oXLNm\nlMAiT7tcr6IUILEpn7EfEdwCS2EjQ0cK46cRCp0AlbtSE5dZ6M/dx2mn6qc1\nVbyu\r\n=ntu9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfgVU+U6DxNzHimF/befUHvnPWk0NwtRBsMTr/Z35DIQIhAJiqlCXLhzdft38ptOkumRh3LUeczKY1APEnel/7IoCa"}]},"maintainers":[{"name":"dkastl","email":"daniel@georepublic.de"},{"name":"leichtgewicht","email":"martin.heidegger@gmail.com"}],"_npmUser":{"name":"leichtgewicht","email":"martin.heidegger@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shamirs-secret-sharing_1.0.4_1579494812831_0.17710058120521444"},"_hasShrinkwrap":false}},"time":{"created":"2020-01-19T07:17:14.893Z","1.0.2":"2020-01-19T07:17:15.225Z","modified":"2022-04-05T00:58:57.225Z","1.0.3":"2020-01-19T07:26:48.560Z","1.0.4":"2020-01-20T04:33:33.075Z"},"maintainers":[{"email":"rangermauve@hotmail.com","name":"rangermauve"},{"email":"daniel@georepublic.de","name":"dkastl"},{"email":"martin.heidegger@gmail.com","name":"leichtgewicht"}],"description":"A simple implementation of Shamir's Secret Sharing configured to use a finite field in GF(2^8) with 128 bit padding","homepage":"https://github.com/jwerle/shamirs-secret-sharing#readme","keywords":["shamir","secret","sharing","sss"],"repository":{"type":"git","url":"git+https://github.com/jwerle/shamirs-secret-sharing.git"},"author":{"name":"Joseph Werle","email":"joseph.werle@gmail.com"},"bugs":{"url":"https://github.com/jwerle/shamirs-secret-sharing/issues"},"license":"MIT","readme":"shamirs-secret-sharing\n======================\n\nA simple implementation of Shamir's Secret Sharing configured to use a\nfinite field in GF(2^8) with 128 bit padding.\n\n## Preface\n\nMuch of what you see in this module has been ported from or\ndirectly influenced by\n[secrets.js](https://github.com/grempe/secrets.js),\n[c-sss](https://github.com/fletcher/c-sss), and\n[libgfshare](https://launchpad.net/libgfshare)\n\n## Installation\n\n```sh\n$ npm install shamirs-secret-sharing\n```\n\n## Example Usage\n\n```js\nconst sss = require('shamirs-secret-sharing')\nconst secret = Buffer.from('secret key')\nconst shares = sss.split(secret, { shares: 10, threshold: 4 })\nconst recovered = sss.combine(shares.slice(3, 7))\nconsole.log(recovered.toString()) // 'secret key'\n```\n\n## API\n\n### `shares = sss.split(secret, opts)`\n\nGenerate a set of unique and distinct shares for a secret with a\nconfigured threshold.\n\n* `secret` (**required**) - A `Buffer` instance or `string` that represents a\n  secret for which shares are created for\n* `opts` (**required**) - An object of options for configuring how\n  shares are created for a secret\n  * `opts.shares` (**required**) - The number of `n` shares that should\n    be created for this secret\n  * `opts.threshold` (**required**) - The number of `t` of `n` distinct share\n    that are required to reconstruct this secret\n  * `opts.random` (*optional*) - An optional _Pseudorandom number\n    generator_ (PRNG) function that should generate a random value\n    buffer based on some input. e.g `opts.random = (size) =>\n    randomBytes(size)`\n\n### `secret = sss.combine(shares)`\n\nReconstruct a secret from a distinct set of shares. This function _will\nnot_ throw an error for incorrect shares or if `p(0)` is not the correct\nsecret for the given shares.\n\n* `shares` (**required**) - An array of shares, that is an array of\n  equally sized and distinct `Buffer` instances, or _strings_\n\n## See Also\n\n* https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing\n* https://en.wikipedia.org/wiki/Secret_sharing\n* https://en.wikipedia.org/wiki/Lagrange_polynomial\n* https://en.wikipedia.org/wiki/Horner%27s_method\n* https://en.wikipedia.org/wiki/Pseudorandom_number_generator\n* https://codesandbox.io/s/shamirs-secret-sharing-pcsbk\n\n## License\n\nMIT\n","readmeFilename":"README.md"}