package org.bouncycastle.pqc.crypto.qtesla;
import org.bouncycastle.crypto.params.AsymmetricKeyParameter;
import org.bouncycastle.util.Arrays;
qTESLA public key
/**
* qTESLA public key
*/
public final class QTESLAPublicKeyParameters
extends AsymmetricKeyParameter
{
qTESLA Security Category
/**
* qTESLA Security Category
*/
private int securityCategory;
Text of the qTESLA Public Key
/**
* Text of the qTESLA Public Key
*/
private byte[] publicKey;
Base constructor.
Params: - securityCategory – the security category for the passed in public key data.
- publicKey – the public key data.
/**
* Base constructor.
*
* @param securityCategory the security category for the passed in public key data.
* @param publicKey the public key data.
*/
public QTESLAPublicKeyParameters(int securityCategory, byte[] publicKey)
{
super(false);
if (publicKey.length != QTESLASecurityCategory.getPublicSize(securityCategory))
{
throw new IllegalArgumentException("invalid key size for security category");
}
this.securityCategory = securityCategory;
this.publicKey = Arrays.clone(publicKey);
}
Return the security category for this key.
Returns: the key's security category.
/**
* Return the security category for this key.
*
* @return the key's security category.
*/
public int getSecurityCategory()
{
return this.securityCategory;
}
Return the key's public value.
Returns: key public data.
/**
* Return the key's public value.
*
* @return key public data.
*/
public byte[] getPublicData()
{
return Arrays.clone(publicKey);
}
}