shamirs-secret-sharing-ts
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.2 • Public • Published

    shamirs-secret-sharing-ts

    A simple implementation of Shamir's Secret Sharing configured to use a finite field in GF(2^8) with 128 bit padding.

    TypeScript variant of https://github.com/jwerle/shamirs-secret-sharing based on version 1.0.1

    Preface

    Much of what you see in this module has been ported from or directly influenced by secrets.js, c-sss, and libgfshare

    Installation

    $ npm install shamirs-secret-sharing-ts

    Example Usage

    import { split, combine } from 'shamirs-secret-sharing-ts'
     
    const secret = Buffer.from('secret key')
    const shares = split(secret, { shares: 10, threshold: 4 })
    const recovered = combine(shares.slice(3, 7))
    console.log(recovered.toString()) // 'secret key'

    API

    shares = split(secret, opts)

    Generate a set of unique and distinct shares for a secret with a configured threshold.

    • secret (required) - A Buffer instance or string that represents a secret for which shares are created for
    • opts (required) - An object of options for configuring how shares are created for a secret
      • opts.shares (required) - The number of n shares that should be created for this secret
      • opts.threshold (required) - The number of t of n distinct share that are required to reconstruct this secret
      • opts.random (optional) - An optional Pseudorandom number generator (PRNG) function that should generate a random value buffer based on some input. e.g opts.random = (size) => randomBytes(size)

    secret = combine(shares)

    Reconstruct a secret from a distinct set of shares. This function will not throw an error for incorrect shares or if p(0) is not the correct secret for the given shares.

    • shares (required) - An array of shares, that is an array of equally sized and distinct Buffer instances, or strings

    See Also

    License

    MIT

    Install

    npm i shamirs-secret-sharing-ts

    DownloadsWeekly Downloads

    169

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    26.5 kB

    Total Files

    27

    Last publish

    Collaborators

    • schuetz