@helixnetwork/winternitz

Winternitz signing functions

Usage no npm install needed!

<script type="module">
  import helixnetworkWinternitz from 'https://cdn.skypack.dev/@helixnetwork/winternitz';
</script>

README

@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

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

Param Type Description
seed TxBytes Seed txBytes
index number Private 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)

Param Type Description
subseed TxBytes Subseed txBytes
securityLevel number Private key length

Returns: TxBytes - Private key bytes

winternitz~digests(key)

Param Type Description
key TxBytes Private key txBytes

winternitz~address(digests)

Param Type Description
digests TxBytes Digests txBytes

Returns: TxBytes - Address hbits

winternitz~digest(normalizedBundleFragment, signatureFragment)

Param Type Description
normalizedBundleFragment TxBytes Normalized bundle fragment
signatureFragment TxBytes Signature fragment txBytes

Returns: TxBytes - Digest txBytes

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

Param Type Description
normalizeBundleFragment TxBytes normalized bundle fragment
keyFragment TxBytes key fragment txBytes
normalizedBundleFragmentOffset number normalized bundle fragment offset (default 0)
keyFragmentOffset number key fragment offset (default 0)

Returns: TxBytes - Signature Fragment hbits

winternitz~signatureFragments(normalizeBundleFragment, keyFragment)

Param Type Description
normalizeBundleFragment TxBytes normalized bundle fragment
keyFragment TxBytes key fragment txBytes

Returns: TxBytes - Signature Fragment hbits

winternitz~validateSignatures(expectedAddress, signatureFragments, bundleHash)

Param Type Description
expectedAddress TxBytes Expected address txs
signatureFragments TxBytes Array of signatureFragments txs
bundleHash TxHex Bundle hash txs

winternitz~normalizedBundleHash(bundlehash)

Param Type Description
bundlehash TxBytes Bundle hash txs

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

Returns: TxBytes - Normalized bundle hash