1.0.0-alpha.7 • Published 5 years ago

@helixnetwork/winternitz v1.0.0-alpha.7

Weekly downloads
8
License
MIT
Repository
github
Last release
5 years ago

@helixnetwork/winternitz

Winternitz OTS (One time signature)

Installation

Install using npm:

npm install @helixnetwork/winternitz

or using yarn:

yarn add @helixnetwork/winternitz

API Reference

  • winternitz

    * [~subseed(seed, index)](#module_winternitz..subseed)

    Compute subseed based on the seed with an additional index;

    * [~key(subSeed, securityLevel)](#module_winternitz..key)

    Split seed in fragments and hashed them then generate from each fragment a schnore private key;

    * [~digests(key)](#module_winternitz..digests)
    
    * [~address(digests)](#module_winternitz..address)
    
    * [~digest(normalizedBundleFragment, signatureFragment)](#module_winternitz..digest)
    
    * [~signatureFragment(normalizeBundleFragment, keyFragment, normalizedBundleFragmentOffset, keyFragmentOffset)](#module_winternitz..signatureFragment)
    
    * [~signatureFragments(seeed, index, securityLevel, bundle)](#module_winternitz..signatureFragment)
    
    * [~validateSignatures(expectedAddress, signatureFragments, bundleHash)](#module_winternitz..validateSignatures)
    
    * [~normalizedBundleHash(bundlehash)](#module_winternitz..normalizedBundleHash)

winternitz~subseed

Compute subseed based on the seed with an additional index(seed, index)

ParamTypeDescription
seedTxBytesSeed txBytes
indexnumberPrivate key index

Returns: TxBytes - subseed txBytes

winternitz~key

Split seed in fragments and hashed them then generate from each fragment a winternitz private key;(subSeed, securityLevel)

ParamTypeDescription
subseedTxBytesSubseed txBytes
securityLevelnumberPrivate key length

Returns: TxBytes - Private key bytes

winternitz~digests(key)

ParamTypeDescription
keyTxBytesPrivate key txBytes

winternitz~address(digests)

ParamTypeDescription
digestsTxBytesDigests txBytes

Returns: TxBytes - Address hbits

winternitz~digest(normalizedBundleFragment, signatureFragment)

ParamTypeDescription
normalizedBundleFragmentTxBytesNormalized bundle fragment
signatureFragmentTxBytesSignature fragment txBytes

Returns: TxBytes - Digest txBytes

winternitz~signatureFragment(normalizeBundleFragment, keyFragment, normalizedBundleFragmentOffset, keyFragmentOffset)

ParamTypeDescription
normalizeBundleFragmentTxBytesnormalized bundle fragment
keyFragmentTxByteskey fragment txBytes
normalizedBundleFragmentOffsetnumbernormalized bundle fragment offset (default 0)
keyFragmentOffsetnumberkey fragment offset (default 0)

Returns: TxBytes - Signature Fragment hbits

winternitz~signatureFragments(normalizeBundleFragment, keyFragment)

ParamTypeDescription
normalizeBundleFragmentTxBytesnormalized bundle fragment
keyFragmentTxByteskey fragment txBytes

Returns: TxBytes - Signature Fragment hbits

winternitz~validateSignatures(expectedAddress, signatureFragments, bundleHash)

ParamTypeDescription
expectedAddressTxBytesExpected address txs
signatureFragmentsTxBytesArray of signatureFragments txs
bundleHashTxHexBundle hash txs

winternitz~normalizedBundleHash(bundlehash)

ParamTypeDescription
bundlehashTxBytesBundle hash txs

Normalizes the bundle hash, with resulting digits summing to zero.

Returns: TxBytes - Normalized bundle hash