org.bouncycastle.pqc.crypto.xwing.XWingPrivateKeyParameters Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-jdk14 Show documentation
Show all versions of bcprov-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.
package org.bouncycastle.pqc.crypto.xwing;
import org.bouncycastle.crypto.params.AsymmetricKeyParameter;
import org.bouncycastle.crypto.params.X25519PrivateKeyParameters;
import org.bouncycastle.pqc.crypto.crystals.kyber.KyberParameters;
import org.bouncycastle.pqc.crypto.crystals.kyber.KyberPrivateKeyParameters;
import org.bouncycastle.util.Arrays;
public class XWingPrivateKeyParameters
extends XWingKeyParameters
{
private final KyberPrivateKeyParameters kybPriv;
private final X25519PrivateKeyParameters xdhPriv;
XWingPrivateKeyParameters(AsymmetricKeyParameter kybPriv, AsymmetricKeyParameter xdhPriv)
{
super(true);
this.kybPriv = (KyberPrivateKeyParameters)kybPriv;
this.xdhPriv = (X25519PrivateKeyParameters)xdhPriv;
}
public XWingPrivateKeyParameters(byte[] encoding)
{
super(false);
this.kybPriv = new KyberPrivateKeyParameters(KyberParameters.kyber768, Arrays.copyOfRange(encoding, 0, encoding.length - X25519PrivateKeyParameters.KEY_SIZE));
this.xdhPriv = new X25519PrivateKeyParameters(encoding, encoding.length - X25519PrivateKeyParameters.KEY_SIZE);
}
KyberPrivateKeyParameters getKyberPrivateKey()
{
return kybPriv;
}
X25519PrivateKeyParameters getXDHPrivateKey()
{
return xdhPriv;
}
public byte[] getEncoded()
{
return Arrays.concatenate(kybPriv.getEncoded(), xdhPriv.getEncoded());
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy