org.bouncycastle.pqc.crypto.qtesla.QTESLAPrivateKeyParameters Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-jdk15to18 Show documentation
Show all versions of bcprov-jdk15to18 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 JDK 1.5 to JDK 1.8.
package org.bouncycastle.pqc.crypto.qtesla;
import org.bouncycastle.crypto.params.AsymmetricKeyParameter;
import org.bouncycastle.util.Arrays;
/**
* qTESLA private key
*/
public final class QTESLAPrivateKeyParameters
extends AsymmetricKeyParameter
{
/**
* qTESLA Security Category (From 4 To 8)
*/
private int securityCategory;
/**
* Text of the qTESLA Private Key
*/
private byte[] privateKey;
/**
* Base constructor.
*
* @param securityCategory the security category for the passed in public key data.
* @param privateKey the private key data.
*/
public QTESLAPrivateKeyParameters(int securityCategory, byte[] privateKey)
{
super(true);
if (privateKey.length != QTESLASecurityCategory.getPrivateSize(securityCategory))
{
throw new IllegalArgumentException("invalid key size for security category");
}
this.securityCategory = securityCategory;
this.privateKey = Arrays.clone(privateKey);
}
/**
* Return the security category for this key.
*
* @return the key's security category.
*/
public int getSecurityCategory()
{
return this.securityCategory;
}
/**
* Return the key's secret value.
*
* @return key private data.
*/
public byte[] getSecret()
{
return Arrays.clone(privateKey);
}
}