Package com.nimbusds.jose.jwk
Class Curve
- java.lang.Object
-
- com.nimbusds.jose.jwk.Curve
-
- All Implemented Interfaces:
java.io.Serializable
@Immutable public final class Curve extends java.lang.Object implements java.io.SerializableCryptographic curve. This class is immutable.Includes constants for the following standard cryptographic curves:
See
- "Digital Signature Standard (DSS)", FIPS PUB 186-3, June 2009, National Institute of Standards and Technology (NIST).
- CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE) (RFC 8037).
- Version:
- 2021-07-02
- Author:
- Vladimir Dzhuvinov, Aleksei Doroganov
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static CurveEd25519Ed25519 signature algorithm key pairs.static CurveEd448Ed448 signature algorithm key pairs.static CurveP_256P-256 curve (secp256r1, also called prime256v1, OID = 1.2.840.10045.3.1.7).static CurveP_256KDeprecated.UseSECP256K1.static CurveP_384P-384 curve (secp384r1, OID = 1.3.132.0.34).static CurveP_521P-521 curve (secp521r1).static CurveSECP256K1secp256k1 curve (secp256k1, OID = 1.3.132.0.10).static CurveX25519X25519 function key pairs.static CurveX448X448 function key pairs.
-
Constructor Summary
Constructors Constructor Description Curve(java.lang.String name)Creates a new cryptographic curve with the specified JOSE name.Curve(java.lang.String name, java.lang.String stdName, java.lang.String oid)Creates a new cryptographic curve with the specified JOSE name, standard name and object identifier (OID).
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object object)static CurveforECParameterSpec(java.security.spec.ECParameterSpec spec)Gets the cryptographic curve for the specified parameter specification.static java.util.Set<Curve>forJWSAlgorithm(JWSAlgorithm alg)Gets the cryptographic curve(s) for the specified JWS algorithm.static CurveforOID(java.lang.String oid)Gets the cryptographic curve for the specified object identifier (OID).static CurveforStdName(java.lang.String stdName)Gets the cryptographic curve for the specified standard name.java.lang.StringgetName()Returns the JOSE name of this cryptographic curve.java.lang.StringgetOID()Returns the standard object identifier (OID) of this cryptographic curve.java.lang.StringgetStdName()Returns the standard name of this cryptographic curve.inthashCode()static Curveparse(java.lang.String s)Parses a cryptographic curve from the specified string.java.security.spec.ECParameterSpectoECParameterSpec()Returns the parameter specification for this cryptographic curve.java.lang.StringtoString()
-
-
-
Field Detail
-
P_256
public static final Curve P_256
P-256 curve (secp256r1, also called prime256v1, OID = 1.2.840.10045.3.1.7).
-
SECP256K1
public static final Curve SECP256K1
secp256k1 curve (secp256k1, OID = 1.3.132.0.10).
-
P_384
public static final Curve P_384
P-384 curve (secp384r1, OID = 1.3.132.0.34).
-
P_521
public static final Curve P_521
P-521 curve (secp521r1).
-
Ed25519
public static final Curve Ed25519
Ed25519 signature algorithm key pairs.
-
Ed448
public static final Curve Ed448
Ed448 signature algorithm key pairs.
-
X25519
public static final Curve X25519
X25519 function key pairs.
-
X448
public static final Curve X448
X448 function key pairs.
-
-
Constructor Detail
-
Curve
public Curve(java.lang.String name)
Creates a new cryptographic curve with the specified JOSE name. A standard curve name and object identifier (OID) are not unspecified.- Parameters:
name- The JOSE name of the cryptographic curve. Must not benull.
-
Curve
public Curve(java.lang.String name, java.lang.String stdName, java.lang.String oid)Creates a new cryptographic curve with the specified JOSE name, standard name and object identifier (OID).- Parameters:
name- The JOSE name of the cryptographic curve. Must not benull.stdName- The standard name of the cryptographic curve,nullif not specified.oid- The object identifier (OID) of the cryptographic curve,nullif not specified.
-
-
Method Detail
-
getName
public java.lang.String getName()
Returns the JOSE name of this cryptographic curve.- Returns:
- The JOSE name.
-
getStdName
public java.lang.String getStdName()
Returns the standard name of this cryptographic curve.- Returns:
- The standard name,
nullif not specified.
-
getOID
public java.lang.String getOID()
Returns the standard object identifier (OID) of this cryptographic curve.- Returns:
- The OID,
nullif not specified.
-
toECParameterSpec
public java.security.spec.ECParameterSpec toECParameterSpec()
Returns the parameter specification for this cryptographic curve.- Returns:
- The EC parameter specification,
nullif it cannot be determined.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object- See Also:
getName()
-
equals
public boolean equals(java.lang.Object object)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
parse
public static Curve parse(java.lang.String s)
Parses a cryptographic curve from the specified string.- Parameters:
s- The string to parse. Must not benullor empty.- Returns:
- The cryptographic curve.
-
forStdName
public static Curve forStdName(java.lang.String stdName)
Gets the cryptographic curve for the specified standard name.- Parameters:
stdName- The standard curve name. May benull.- Returns:
- The curve,
nullif it cannot be determined.
-
forOID
public static Curve forOID(java.lang.String oid)
Gets the cryptographic curve for the specified object identifier (OID).- Parameters:
oid- The object OID. May benull.- Returns:
- The curve,
nullif it cannot be determined.
-
forJWSAlgorithm
public static java.util.Set<Curve> forJWSAlgorithm(JWSAlgorithm alg)
Gets the cryptographic curve(s) for the specified JWS algorithm.- Parameters:
alg- The JWS algorithm. May benull.- Returns:
- The curve(s),
nullif the JWS algorithm is not curve based, or the JWS algorithm is not supported.
-
forECParameterSpec
public static Curve forECParameterSpec(java.security.spec.ECParameterSpec spec)
Gets the cryptographic curve for the specified parameter specification.- Parameters:
spec- The EC parameter spec. May benull.- Returns:
- The curve,
nullif it cannot be determined.
-
-