org.bouncycastle.jcajce.spec.EdDSAParameterSpec 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.jcajce.spec;
import java.security.spec.AlgorithmParameterSpec;
import org.bouncycastle.internal.asn1.edec.EdECObjectIdentifiers;
/**
* ParameterSpec for EdDSA signature algorithms.
*/
public class EdDSAParameterSpec
implements AlgorithmParameterSpec
{
public static final String Ed25519 = "Ed25519";
public static final String Ed448 = "Ed448";
private final String curveName;
/**
* Base constructor.
*
* @param curveName name of the curve to specify.
*/
public EdDSAParameterSpec(String curveName)
{
if (curveName.equalsIgnoreCase(Ed25519))
{
this.curveName = Ed25519;
}
else if (curveName.equalsIgnoreCase(Ed448))
{
this.curveName = Ed448;
}
else if (curveName.equals(EdECObjectIdentifiers.id_Ed25519.getId()))
{
this.curveName = Ed25519;
}
else if (curveName.equals(EdECObjectIdentifiers.id_Ed448.getId()))
{
this.curveName = Ed448;
}
else
{
throw new IllegalArgumentException("unrecognized curve name: " + curveName);
}
}
/**
* Return the curve name specified by this parameterSpec.
*
* @return the name of the curve this parameterSpec specifies.
*/
public String getCurveName()
{
return curveName;
}
}