Util (Bouncy Castle Library 1.52 API Specification)
Date: 2015-03-01

org.bouncycastle.pqc.math.ntru.util

## Class Util

- java.lang.Object
- - org.bouncycastle.pqc.math.ntru.util.Util

-     public class Util
      extends java.lang.Object

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Util()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static TernaryPolynomial` | `generateRandomTernary(int N, int numOnes, int numNegOnes, boolean sparse, java.security.SecureRandom random)` Generates a "sparse" or "dense" polynomial containing numOnes ints equal to 1, numNegOnes int equal to -1, and the rest equal to 0.
    `static int[]` | `generateRandomTernary(int N, int numOnes, int numNegOnes, java.security.SecureRandom random)` Generates an array containing numOnes ints equal to 1, numNegOnes int equal to -1, and the rest equal to 0.
    `static int` | `invert(int n, int modulus)` Calculates the inverse of n mod modulus
    `static boolean` | `is64BitJVM()` Takes an educated guess as to whether 64 bits are supported by the JVM.
    `static int` | `pow(int a, int b, int modulus)` Calculates a^b mod modulus
    `static long` | `pow(long a, int b, long modulus)` Calculates a^b mod modulus
    `static byte[]` | `readFullLength(java.io.InputStream is, int length)` Reads a given number of bytes from an `InputStream`.

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

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

- - ### Constructor Detail

    - #### Util

          public Util()

  - ### Method Detail

    - #### invert

          public static int invert(int n,
                   int modulus)

      Calculates the inverse of n mod modulus

    - #### pow

          public static int pow(int a,
                int b,
                int modulus)

      Calculates a^b mod modulus

    - #### pow

          public static long pow(long a,
                 int b,
                 long modulus)

      Calculates a^b mod modulus

    - #### generateRandomTernary

          public static TernaryPolynomial generateRandomTernary(int N,
                                                int numOnes,
                                                int numNegOnes,
                                                boolean sparse,
                                                java.security.SecureRandom random)

      Generates a "sparse" or "dense" polynomial containing numOnes ints equal to 1, numNegOnes int equal to -1, and the rest equal to 0.
      Parameters:
        `N` -
        `numOnes` -
        `numNegOnes` -
        `sparse` - whether to create a `SparseTernaryPolynomial` or `DenseTernaryPolynomial`
      Returns:
        a ternary polynomial

    - #### generateRandomTernary

          public static int[] generateRandomTernary(int N,
                                    int numOnes,
                                    int numNegOnes,
                                    java.security.SecureRandom random)

      Generates an array containing numOnes ints equal to 1, numNegOnes int equal to -1, and the rest equal to 0.
      Parameters:
        `N` -
        `numOnes` -
        `numNegOnes` -
      Returns:
        an array of integers

    - #### is64BitJVM

          public static boolean is64BitJVM()

      Takes an educated guess as to whether 64 bits are supported by the JVM.
      Returns:
        `true` if 64-bit support detected, `false` otherwise

    - #### readFullLength

          public static byte[] readFullLength(java.io.InputStream is,
                              int length)
                                       throws java.io.IOException

      Reads a given number of bytes from an `InputStream`. If there are not enough bytes in the stream, an `IOException` is thrown.
      Parameters:
        `is` -
        `length` -
      Returns:
        an array of length `length`
      Throws:
        `java.io.IOException`