Package org.bouncycastle.pqc.jcajce.spec

## Class RainbowParameterSpec

- java.lang.Object
- - org.bouncycastle.pqc.jcajce.spec.RainbowParameterSpec

- All Implemented Interfaces:
    `java.security.spec.AlgorithmParameterSpec`

      public class RainbowParameterSpec
      extends java.lang.Object
      implements java.security.spec.AlgorithmParameterSpec

  This class provides methods for setting and getting the Rainbow-parameters like number of Vinegar-variables in the layers, number of layers and so on.

  More detailed information about the needed parameters for the Rainbow Signature Scheme is to be found in the paper of Jintai Ding, Dieter Schmidt: Rainbow, a New Multivariable Polynomial Signature Scheme. ACNS 2005: 164-175 (https://dx.doi.org/10.1007/11496137_12)

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RainbowParameterSpec()` | Default Constructor The elements of the array containing the number of Vinegar variables in each layer are set to the default values here.
    `RainbowParameterSpec​(int[] vi)` | Constructor with parameters

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getDocumentLength()` | Getter for the number of all the polynomials in Rainbow
    `int` | `getNumOfLayers()` | Getter for the number of layers
    `int[]` | `getVi()` | Getter for the array containing the number of Vinegar-variables per layer

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

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

- - ### Constructor Detail

    - #### RainbowParameterSpec

          public RainbowParameterSpec()

      Default Constructor The elements of the array containing the number of Vinegar variables in each layer are set to the default values here.

    - #### RainbowParameterSpec

          public RainbowParameterSpec​(int[] vi)

      Constructor with parameters
      Parameters:
        `vi` - The elements of the array containing the number of Vinegar variables per layer are set to the values of the input array.
      Throws:
        `java.lang.IllegalArgumentException` - if the variables are invalid.

  - ### Method Detail

    - #### getNumOfLayers

          public int getNumOfLayers()

      Getter for the number of layers
      Returns:
        the number of layers

    - #### getDocumentLength

          public int getDocumentLength()

      Getter for the number of all the polynomials in Rainbow
      Returns:
        the number of the polynomials

    - #### getVi

          public int[] getVi()

      Getter for the array containing the number of Vinegar-variables per layer
      Returns:
        the numbers of vinegars per layer