org.bouncycastle.crypto.params.SM2KeyExchangePublicParameters 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.crypto.params;
import org.bouncycastle.crypto.CipherParameters;
/**
* Public parameters for an SM2 key exchange. In this case the ephemeralPublicKey provides the random point used in the algorithm.
*/
public class SM2KeyExchangePublicParameters
implements CipherParameters
{
private final ECPublicKeyParameters staticPublicKey;
private final ECPublicKeyParameters ephemeralPublicKey;
public SM2KeyExchangePublicParameters(
ECPublicKeyParameters staticPublicKey,
ECPublicKeyParameters ephemeralPublicKey)
{
if (staticPublicKey == null)
{
throw new NullPointerException("staticPublicKey cannot be null");
}
if (ephemeralPublicKey == null)
{
throw new NullPointerException("ephemeralPublicKey cannot be null");
}
if (!staticPublicKey.getParameters().equals(ephemeralPublicKey.getParameters()))
{
throw new IllegalArgumentException("Static and ephemeral public keys have different domain parameters");
}
this.staticPublicKey = staticPublicKey;
this.ephemeralPublicKey = ephemeralPublicKey;
}
public ECPublicKeyParameters getStaticPublicKey()
{
return staticPublicKey;
}
public ECPublicKeyParameters getEphemeralPublicKey()
{
return ephemeralPublicKey;
}
}