Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/org/bouncycastle/pqc/crypto/ntru/NTRUEncryptionPrivateKeyParameters.java')
-rw-r--r--core/src/main/java/org/bouncycastle/pqc/crypto/ntru/NTRUEncryptionPrivateKeyParameters.java199
1 files changed, 0 insertions, 199 deletions
diff --git a/core/src/main/java/org/bouncycastle/pqc/crypto/ntru/NTRUEncryptionPrivateKeyParameters.java b/core/src/main/java/org/bouncycastle/pqc/crypto/ntru/NTRUEncryptionPrivateKeyParameters.java
deleted file mode 100644
index bcf9418e..00000000
--- a/core/src/main/java/org/bouncycastle/pqc/crypto/ntru/NTRUEncryptionPrivateKeyParameters.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package org.bouncycastle.pqc.crypto.ntru;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.bouncycastle.pqc.math.ntru.polynomial.DenseTernaryPolynomial;
-import org.bouncycastle.pqc.math.ntru.polynomial.IntegerPolynomial;
-import org.bouncycastle.pqc.math.ntru.polynomial.Polynomial;
-import org.bouncycastle.pqc.math.ntru.polynomial.ProductFormPolynomial;
-import org.bouncycastle.pqc.math.ntru.polynomial.SparseTernaryPolynomial;
-
-/**
- * A NtruEncrypt private key is essentially a polynomial named <code>f</code>
- * which takes different forms depending on whether product-form polynomials are used,
- * and on <code>fastP</code><br>
- * The inverse of <code>f</code> modulo <code>p</code> is precomputed on initialization.
- */
-public class NTRUEncryptionPrivateKeyParameters
- extends NTRUEncryptionKeyParameters
-{
- public Polynomial t;
- public IntegerPolynomial fp;
- public IntegerPolynomial h;
-
- /**
- * Constructs a new private key from a polynomial
- *
- * @param h the public polynomial for the key.
- * @param t the polynomial which determines the key: if <code>fastFp=true</code>, <code>f=1+3t</code>; otherwise, <code>f=t</code>
- * @param fp the inverse of <code>f</code>
- * @param params the NtruEncrypt parameters to use
- */
- public NTRUEncryptionPrivateKeyParameters(IntegerPolynomial h, Polynomial t, IntegerPolynomial fp, NTRUEncryptionParameters params)
- {
- super(true, params);
-
- this.h = h;
- this.t = t;
- this.fp = fp;
- }
-
- /**
- * Converts a byte array to a polynomial <code>f</code> and constructs a new private key
- *
- * @param b an encoded polynomial
- * @param params the NtruEncrypt parameters to use
- * @see #getEncoded()
- */
- public NTRUEncryptionPrivateKeyParameters(byte[] b, NTRUEncryptionParameters params)
- throws IOException
- {
- this(new ByteArrayInputStream(b), params);
- }
-
- /**
- * Reads a polynomial <code>f</code> from an input stream and constructs a new private key
- *
- * @param is an input stream
- * @param params the NtruEncrypt parameters to use
- * @see #writeTo(OutputStream)
- */
- public NTRUEncryptionPrivateKeyParameters(InputStream is, NTRUEncryptionParameters params)
- throws IOException
- {
- super(true, params);
-
- if (params.polyType == NTRUParameters.TERNARY_POLYNOMIAL_TYPE_PRODUCT)
- {
- int N = params.N;
- int df1 = params.df1;
- int df2 = params.df2;
- int df3Ones = params.df3;
- int df3NegOnes = params.fastFp ? params.df3 : params.df3 - 1;
- h = IntegerPolynomial.fromBinary(is, params.N, params.q);
- t = ProductFormPolynomial.fromBinary(is, N, df1, df2, df3Ones, df3NegOnes);
- }
- else
- {
- h = IntegerPolynomial.fromBinary(is, params.N, params.q);
- IntegerPolynomial fInt = IntegerPolynomial.fromBinary3Tight(is, params.N);
- t = params.sparse ? new SparseTernaryPolynomial(fInt) : new DenseTernaryPolynomial(fInt);
- }
-
- init();
- }
-
- /**
- * Initializes <code>fp</code> from t.
- */
- private void init()
- {
- if (params.fastFp)
- {
- fp = new IntegerPolynomial(params.N);
- fp.coeffs[0] = 1;
- }
- else
- {
- fp = t.toIntegerPolynomial().invertF3();
- }
- }
-
- /**
- * Converts the key to a byte array
- *
- * @return the encoded key
- * @see #NTRUEncryptionPrivateKeyParameters(byte[], NTRUEncryptionParameters)
- */
- public byte[] getEncoded()
- {
- byte[] hBytes = h.toBinary(params.q);
- byte[] tBytes;
-
- if (t instanceof ProductFormPolynomial)
- {
- tBytes = ((ProductFormPolynomial)t).toBinary();
- }
- else
- {
- tBytes = t.toIntegerPolynomial().toBinary3Tight();
- }
-
- byte[] res = new byte[hBytes.length + tBytes.length];
-
- System.arraycopy(hBytes, 0, res, 0, hBytes.length);
- System.arraycopy(tBytes, 0, res, hBytes.length, tBytes.length);
-
- return res;
- }
-
- /**
- * Writes the key to an output stream
- *
- * @param os an output stream
- * @throws IOException
- * @see #NTRUEncryptionPrivateKeyParameters(InputStream, NTRUEncryptionParameters)
- */
- public void writeTo(OutputStream os)
- throws IOException
- {
- os.write(getEncoded());
- }
-
- public int hashCode()
- {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((params == null) ? 0 : params.hashCode());
- result = prime * result + ((t == null) ? 0 : t.hashCode());
- result = prime * result + ((h == null) ? 0 : h.hashCode());
- return result;
- }
-
- public boolean equals(Object obj)
- {
- if (this == obj)
- {
- return true;
- }
- if (obj == null)
- {
- return false;
- }
- if (!(obj instanceof NTRUEncryptionPrivateKeyParameters))
- {
- return false;
- }
- NTRUEncryptionPrivateKeyParameters other = (NTRUEncryptionPrivateKeyParameters)obj;
- if (params == null)
- {
- if (other.params != null)
- {
- return false;
- }
- }
- else if (!params.equals(other.params))
- {
- return false;
- }
- if (t == null)
- {
- if (other.t != null)
- {
- return false;
- }
- }
- else if (!t.equals(other.t))
- {
- return false;
- }
- if (!h.equals(other.h))
- {
- return false;
- }
- return true;
- }
-} \ No newline at end of file