{"_id":"@magiclabs/shamirs-secret-sharing","_rev":"63-d85b87375e556402f905d808c4ad329b","name":"@magiclabs/shamirs-secret-sharing","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.1":{"name":"@magiclabs/shamirs-secret-sharing","version":"1.0.1","keywords":["shamir","secret","sharing","sss"],"author":{"name":"Joseph Werle","email":"joseph.werle@gmail.com"},"license":"MIT","_id":"@magiclabs/shamirs-secret-sharing@1.0.1","maintainers":[{"name":"magictristan","email":"tristan.smith@magic.link"},{"name":"musicbender","email":"musicbender@gmail.com"},{"name":"daverosenmagic","email":"dave.rosen@magic.link"},{"name":"jay.hwang","email":"jay.hwang@magic.link"},{"name":"benmagic","email":"ben.griffin@magic.link"},{"name":"magic-srinjoy","email":"srinjoy.chakraborty@magic.link"},{"name":"mattupham_magic","email":"matthew.upham@magic.link"},{"name":"josh_scanlan","email":"josh.scanlan@magic.link"},{"name":"sgdheeban","email":"dheeban@magic.link"},{"name":"thejustinh","email":"justin.herrera@magic.link"},{"name":"floresarian89","email":"arian.flores@magic.link"},{"name":"magician9001","email":"jac.maguire@magic.link"},{"name":"marvin.ocampo","email":"marvin@magic.link"},{"name":"mikeysight","email":"michael@magic.link"},{"name":"damianjachyra","email":"damian@magic.link"},{"name":"jasonatmagic","email":"jason@magic.link"},{"name":"magiclabs_fe","email":"frontend@magic.link"},{"name":"bcleary06","email":"brian@magic.link"},{"name":"fyjen","email":"arthur@fortmatic.com"},{"name":"dizigen","email":"david.he@magic.link"},{"name":"ethella","email":"ethellagit@gmail.com"},{"name":"hcote","email":"hunter@magic.link"}],"homepage":"https://github.com/magiclabs/shamirs-secret-sharing#readme","bugs":{"url":"https://github.com/magiclabs/shamirs-secret-sharing/issues"},"dist":{"shasum":"061215da281fd4fb7d924f2aafd27954a9f9bf44","tarball":"https://registry.npmjs.org/@magiclabs/shamirs-secret-sharing/-/shamirs-secret-sharing-1.0.1.tgz","fileCount":16,"integrity":"sha512-bChMSCX+yvSxtF/1/DmYNDDx19jxFNpjMrpWQ3vFDO3IIuHVuFsf4CCkHZF3v03oK6SNUVEnvhZ58domwS6BDg==","signatures":[{"sig":"MEQCIE9IUQcUk4paOKWj0GSN03qw7b0Q5e+B03eXgKDb9+H2AiARgRBrLsgMhAuGhe0a+i3N/diDC1VOvlut/rGqjdIr+Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20653},"main":"index.js","gitHead":"3e01c9c221406004685c98c64ea3bdb2c69df793","scripts":{"test":"ava test"},"_npmUser":{"name":"ethella","email":"ethellagit@gmail.com"},"repository":{"url":"git+https://github.com/jwerle/shamirs-secret-sharing.git","type":"git"},"_npmVersion":"9.5.1","description":"A simple implementation of Shamir's Secret Sharing configured to use a finite field in GF(2^8) with 128 bit padding","directories":{"test":"test"},"_nodeVersion":"18.16.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"ava":"^0.25.0","nyc":"^12.0.2"},"_npmOperationalInternal":{"tmp":"tmp/shamirs-secret-sharing_1.0.1_1702425695934_0.19074182081275648","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-12-13T00:01:35.934Z","modified":"2026-08-27T04:10:42.613Z","1.0.1":"2023-12-13T00:01:36.167Z"},"bugs":{"url":"https://github.com/magiclabs/shamirs-secret-sharing/issues"},"author":{"name":"Joseph Werle","email":"joseph.werle@gmail.com"},"license":"MIT","homepage":"https://github.com/magiclabs/shamirs-secret-sharing#readme","keywords":["shamir","secret","sharing","sss"],"repository":{"url":"git+https://github.com/jwerle/shamirs-secret-sharing.git","type":"git"},"description":"A simple implementation of Shamir's Secret Sharing configured to use a finite field in GF(2^8) with 128 bit padding","maintainers":[{"email":"ethellagit@gmail.com","name":"ethella"},{"email":"frontend@magic.link","name":"magiclabs_fe"},{"email":"jason@magic.link","name":"jasonatmagic"},{"email":"josh.scanlan@magic.link","name":"josh_scanlan"},{"email":"noah.yoshida@magic.link","name":"noahyoshida"},{"email":"ernieyang09@hotmail.com","name":"ernieyang09"},{"email":"okhunjon.kuvatov@magic-ext.com","name":"oxyn-magic"}],"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"}