org.bouncycastle.pqc.legacy.crypto.mceliece.McElieceCCA2Parameters Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-ext-debug-jdk18on Show documentation
Show all versions of bcprov-ext-debug-jdk18on Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for Java 1.8 and later with debug enabled.
The newest version!
package org.bouncycastle.pqc.legacy.crypto.mceliece;
public class McElieceCCA2Parameters
extends McElieceParameters
{
private final String digest;
/**
* Constructor. Set the default parameters: extension degree.
*/
public McElieceCCA2Parameters()
{
this(DEFAULT_M, DEFAULT_T, "SHA-256");
}
public McElieceCCA2Parameters(String digest)
{
this(DEFAULT_M, DEFAULT_T, digest);
}
/**
* Constructor.
*
* @param keysize the length of a Goppa code
* @throws IllegalArgumentException if keysize < 1.
*/
public McElieceCCA2Parameters(int keysize)
{
this(keysize, "SHA-256");
}
/**
* Constructor.
*
* @param keysize the length of a Goppa code
* @param digest CCA2 mode digest
* @throws IllegalArgumentException if keysize < 1.
*/
public McElieceCCA2Parameters(int keysize, String digest)
{
super(keysize);
this.digest = digest;
}
/**
* Constructor.
*
* @param m degree of the finite field GF(2^m)
* @param t error correction capability of the code
* @throws IllegalArgumentException if m < 1 or m > 32 or
* t < 0 or t > n.
*/
public McElieceCCA2Parameters(int m, int t)
{
this(m, t, "SHA-256");
}
/**
* Constructor.
*
* @param m degree of the finite field GF(2^m)
* @param t error correction capability of the code
* @throws IllegalArgumentException if m < 1 or m > 32 or
* t < 0 or t > n.
*/
public McElieceCCA2Parameters(int m, int t, String digest)
{
super(m, t);
this.digest = digest;
}
/**
* Constructor.
*
* @param m degree of the finite field GF(2^m)
* @param t error correction capability of the code
* @param poly the field polynomial
* @throws IllegalArgumentException if m < 1 or m > 32 or
* t < 0 or t > n or
* poly is not an irreducible field polynomial.
*/
public McElieceCCA2Parameters(int m, int t, int poly)
{
this(m, t, poly, "SHA-256");
}
/**
* Constructor.
*
* @param m degree of the finite field GF(2^m)
* @param t error correction capability of the code
* @param poly the field polynomial
* @param digest CCA2 mode digest
* @throws IllegalArgumentException if m < 1 or m > 32 or
* t < 0 or t > n or
* poly is not an irreducible field polynomial.
*/
public McElieceCCA2Parameters(int m, int t, int poly, String digest)
{
super(m, t, poly);
this.digest = digest;
}
/**
* Return the CCA2 mode digest if set.
*
* @return the CCA2 digest to use, null if not present.
*/
public String getDigest()
{
return digest;
}
}