Class Util
java.lang.Object
org.bouncycastle.pqc.legacy.math.ntru.util.Util
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic TernaryPolynomial
generateRandomTernary
(int N, int numOnes, int numNegOnes, boolean sparse, 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, 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 modulusstatic boolean
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 modulusstatic long
pow
(long a, int b, long modulus) Calculates a^b mod modulusstatic byte[]
readFullLength
(InputStream is, int length) Reads a given number of bytes from anInputStream
.
-
Constructor Details
-
Util
public Util()
-
-
Method Details
-
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, 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 aSparseTernaryPolynomial
orDenseTernaryPolynomial
- Returns:
- a ternary polynomial
-
generateRandomTernary
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
Reads a given number of bytes from anInputStream
. If there are not enough bytes in the stream, anIOException
is thrown.- Parameters:
is
-length
-- Returns:
- an array of length
length
- Throws:
IOException
-