WinternitzOTSignature (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.pqc.crypto.gmss.util

## Class WinternitzOTSignature

- java.lang.Object
- - org.bouncycastle.pqc.crypto.gmss.util.WinternitzOTSignature

-     public class WinternitzOTSignature
      extends java.lang.Object

  This class implements key pair generation and signature generation of the Winternitz one-time signature scheme (OTSS), described in C.Dods, N.P. Smart, and M. Stam, "Hash Based Digital Signature Schemes", LNCS 3796, pages 96–115, 2005. The class is used by the GMSS classes.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `WinternitzOTSignature(byte[] seed0, Digest digest, int w)` The constructor generates an OTS key pair, using `seed0` and the PRNG

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getLog(int intValue)` This method returns the least integer that is greater or equal to the logarithm to the base 2 of an integer `intValue`.
    `byte[][]` | `getPrivateKey()`
    `byte[]` | `getPublicKey()`
    `byte[]` | `getSignature(byte[] message)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### WinternitzOTSignature

          public WinternitzOTSignature(byte[] seed0,
                               Digest digest,
                               int w)

      The constructor generates an OTS key pair, using `seed0` and the PRNG
      Parameters:
        `seed0` - the seed for the PRGN
        `digest` - an array of strings, containing the name of the used hash function, the name of the PRGN and the names of the corresponding providers
        `w` - the Winternitz parameter

  - ### Method Detail

    - #### getPrivateKey

          public byte[][] getPrivateKey()

      Returns:
        The private OTS key

    - #### getPublicKey

          public byte[] getPublicKey()

      Returns:
        The public OTS key

    - #### getSignature

          public byte[] getSignature(byte[] message)

      Returns:
        The one-time signature of the message, generated with the private key

    - #### getLog

          public int getLog(int intValue)

      This method returns the least integer that is greater or equal to the logarithm to the base 2 of an integer `intValue`.
      Parameters:
        `intValue` - an integer
      Returns:
        The least integer greater or equal to the logarithm to the base 2 of `intValue`