Package org.bouncycastle.pqc.crypto.ntru

## Class NTRUSigningParameters

- java.lang.Object
- - org.bouncycastle.pqc.crypto.ntru.NTRUSigningParameters

- All Implemented Interfaces:
    `java.lang.Cloneable`

      public class NTRUSigningParameters
      extends java.lang.Object
      implements java.lang.Cloneable

  A set of parameters for NtruSign. Several predefined parameter sets are available and new ones can be created as well.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `int` | `B` |
    `double` | `betaSq` |
    `int` | `d` |
    `int` | `d1` |
    `int` | `d2` |
    `int` | `d3` |
    `Digest` | `hashAlg` |
    `int` | `N` |
    `double` | `normBoundSq` |
    `int` | `q` |
    `int` | `signFailTolerance` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `NTRUSigningParameters​(int N, int q, int d, int B, double beta, double normBound, Digest hashAlg)` | Constructs a parameter set that uses ternary private keys (i.e.
    `NTRUSigningParameters​(int N, int q, int d1, int d2, int d3, int B, double beta, double normBound, double keyNormBound, Digest hashAlg)` | Constructs a parameter set that uses product-form private keys (i.e.
    `NTRUSigningParameters​(java.io.InputStream is)` | Reads a parameter set from an input stream.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `NTRUSigningParameters` | `clone()` |
    `boolean` | `equals​(java.lang.Object obj)` |
    `int` | `hashCode()` |
    `java.lang.String` | `toString()` |
    `void` | `writeTo​(java.io.OutputStream os)` | Writes the parameter set to an output stream

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

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### N

          public int N

    - #### q

          public int q

    - #### d

          public int d

    - #### d1

          public int d1

    - #### d2

          public int d2

    - #### d3

          public int d3

    - #### B

          public int B

    - #### betaSq

          public double betaSq

    - #### normBoundSq

          public double normBoundSq

    - #### signFailTolerance

          public int signFailTolerance

    - #### hashAlg

          public Digest hashAlg

  - ### Constructor Detail

    - #### NTRUSigningParameters

          public NTRUSigningParameters​(int N,
                                       int q,
                                       int d,
                                       int B,
                                       double beta,
                                       double normBound,
                                       Digest hashAlg)

      Constructs a parameter set that uses ternary private keys (i.e. `polyType=SIMPLE`).
      Parameters:
        `N` - number of polynomial coefficients
        `q` - modulus
        `d` - number of -1's in the private polynomials `f` and `g`
        `B` - number of perturbations
        `beta` - balancing factor for the transpose lattice
        `normBound` - maximum norm for valid signatures
        `hashAlg` - a valid identifier for a `java.security.MessageDigest` instance such as `SHA-256`. The `MessageDigest` must support the `getDigestLength()` method.

    - #### NTRUSigningParameters

          public NTRUSigningParameters​(int N,
                                       int q,
                                       int d1,
                                       int d2,
                                       int d3,
                                       int B,
                                       double beta,
                                       double normBound,
                                       double keyNormBound,
                                       Digest hashAlg)

      Constructs a parameter set that uses product-form private keys (i.e. `polyType=PRODUCT`).
      Parameters:
        `N` - number of polynomial coefficients
        `q` - modulus
        `d1` - number of -1's in the private polynomials `f` and `g`
        `d2` - number of -1's in the private polynomials `f` and `g`
        `d3` - number of -1's in the private polynomials `f` and `g`
        `B` - number of perturbations
        `beta` - balancing factor for the transpose lattice
        `normBound` - maximum norm for valid signatures
        `keyNormBound` - maximum norm for the ploynomials `F` and `G`
        `hashAlg` - a valid identifier for a `java.security.MessageDigest` instance such as `SHA-256`. The `MessageDigest` must support the `getDigestLength()` method.

    - #### NTRUSigningParameters

          public NTRUSigningParameters​(java.io.InputStream is)
                                throws java.io.IOException

      Reads a parameter set from an input stream.
      Parameters:
        `is` - an input stream
      Throws:
        `java.io.IOException`

  - ### Method Detail

    - #### writeTo

          public void writeTo​(java.io.OutputStream os)
                       throws java.io.IOException

      Writes the parameter set to an output stream
      Parameters:
        `os` - an output stream
      Throws:
        `java.io.IOException`

    - #### clone

          public NTRUSigningParameters clone()

      Overrides:
        `clone` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public boolean equals​(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`