org.bouncycastle.jcajce.spec.EdDSAParameterSpec Maven / Gradle / Ivy
package org.bouncycastle.jcajce.spec;
import java.security.spec.AlgorithmParameterSpec;
import org.bouncycastle.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;
}
}