org.bouncycastle.pqc.crypto.sphincsplus.SPHINCSPlusPublicKeyParameters Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-ext-debug-jdk14 Show documentation
Show all versions of bcprov-ext-debug-jdk14 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.4. Note: this package includes the NTRU encryption algorithms.
package org.bouncycastle.pqc.crypto.sphincsplus;
import org.bouncycastle.util.Arrays;
public class SPHINCSPlusPublicKeyParameters
extends SPHINCSPlusKeyParameters
{
private final PK pk;
public SPHINCSPlusPublicKeyParameters(SPHINCSPlusParameters parameters, byte[] pkEncoded)
{
super(false, parameters);
int n = parameters.getEngine().N;
if (pkEncoded.length != 2 * n)
{
throw new IllegalArgumentException("public key encoding does not match parameters");
}
this.pk = new PK(Arrays.copyOfRange(pkEncoded, 0, n), Arrays.copyOfRange(pkEncoded, n, 2 * n));
}
SPHINCSPlusPublicKeyParameters(SPHINCSPlusParameters parameters, PK pk)
{
super(false, parameters);
this.pk = pk;
}
public byte[] getSeed()
{
return Arrays.clone(pk.seed);
}
public byte[] getRoot()
{
return Arrays.clone(pk.root);
}
public byte[] getEncoded()
{
return Arrays.concatenate(pk.seed, pk.root);
}
}