Package org.forgerock.json.jose.jws
Enum Class JwsAlgorithm
- All Implemented Interfaces:
Serializable
,Comparable<JwsAlgorithm>
,java.lang.constant.Constable
,Algorithm
An Enum of the possible signing algorithms that can be used to sign a JWT.
- Since:
- 2.0.0
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantDescriptionEdwards Curve DSA (EdDSA), as defined in RFC 8037.ECDSA using SHA-256 hash algorithm.ECDSA using SHA-384 hash algorithm.ECDSA using SHA-512 hash algorithm.HMAC using SHA-256 hash algorithm.HMAC using SHA-384 hash algorithm.HMAC using SHA-512 hash algorithm.Deprecated.This algorithm is inherently insecure and should not be used.RSA-PSS with SHA-256 hash algorithm.RSA-PSS with SHA-384 hash algorithm.RSA-PSS with SHA-512 hash algorithm.RSA using SHA-256 hash algorithm.RSA using SHA-384 hash algorithm.RSA using SHA-512 hash algorithm. -
Method Summary
Modifier and TypeMethodDescriptionGets the actual name of the algorithm that is understood by Java cryptographic operations.Gets the JwsAlgorithmType of the JwsAlgorithm.Return the standard name of the elliptic curve definition.Gets the name of the algorithm as defined in the JWA standard.static JwsAlgorithm
getJwsAlgorithm
(String algorithm) Deprecated.Replaced byparseCryptographicAlgorithm(String)
Returns the Java-friendly name of the message digest algorithm implementation.Gets any parameter spec associated with this algorithm.boolean
Indicates whether the algorithm is a symmetric (secret key) algorithm like HMAC or a public key algorithm.static JwsAlgorithm
parseAlgorithm
(String algorithm) Parses the given algorithm string to find the matching JwsAlgorithm enum constant.static JwsAlgorithm
parseCryptographicAlgorithm
(String algorithm) Parses the given algorithm string to find the matching Java Cryptographic algorithm name.toString()
Turns the JwsAlgorithm constant into a JSON value string.static JwsAlgorithm
Returns the enum constant of this class with the specified name.static JwsAlgorithm[]
values()
Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
NONE
Deprecated.This algorithm is inherently insecure and should not be used.No digital signature or MAC value included. -
HS256
HMAC using SHA-256 hash algorithm. -
HS384
HMAC using SHA-384 hash algorithm. -
HS512
HMAC using SHA-512 hash algorithm. -
RS256
RSA using SHA-256 hash algorithm. -
RS384
RSA using SHA-384 hash algorithm. -
RS512
RSA using SHA-512 hash algorithm. -
ES256
ECDSA using SHA-256 hash algorithm. -
ES384
ECDSA using SHA-384 hash algorithm. -
ES512
ECDSA using SHA-512 hash algorithm. -
PS256
RSA-PSS with SHA-256 hash algorithm. -
PS384
RSA-PSS with SHA-384 hash algorithm. -
PS512
RSA-PSS with SHA-512 hash algorithm. -
EDDSA
Edwards Curve DSA (EdDSA), as defined in RFC 8037.
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum class has no constant with the specified nameNullPointerException
- if the argument is null
-
getAlgorithm
Description copied from interface:Algorithm
Gets the actual name of the algorithm that is understood by Java cryptographic operations.- Specified by:
getAlgorithm
in interfaceAlgorithm
- Returns:
- The name of the algorithm.
-
getJwaAlgorithmName
Description copied from interface:Algorithm
Gets the name of the algorithm as defined in the JWA standard.- Specified by:
getJwaAlgorithmName
in interfaceAlgorithm
- Returns:
- The name of the algorithm.
-
getMdAlgorithm
Returns the Java-friendly name of the message digest algorithm implementation.- Returns:
- the Java-friendly name of the message digest algorithm implementation.
- See Also:
-
getEllipticCurveName
Return the standard name of the elliptic curve definition. Only applicable for ECDSA algorithms.- Returns:
- the curve name or null if not applicable.
-
getAlgorithmType
Gets the JwsAlgorithmType of the JwsAlgorithm.- Returns:
- The JwsAlgorithmType.
-
getJwsAlgorithm
Deprecated.Replaced byparseCryptographicAlgorithm(String)
- Parameters:
algorithm
- The Java Cryptographic string algorithm name.- Returns:
- The matching JwsAlgorithm.
-
getParameterSpec
Gets any parameter spec associated with this algorithm. Can be null if no parameters.- Returns:
- the parameters required by this algorithm.
-
parseCryptographicAlgorithm
Parses the given algorithm string to find the matching Java Cryptographic algorithm name.If the given algorithm name does not match the algorithm name of any of the constants, then an IllegalArgumentException will be thrown.
- Parameters:
algorithm
- The Java Cryptographic string algorithm name.- Returns:
- The matching JwsAlgorithm.
-
parseAlgorithm
Parses the given algorithm string to find the matching JwsAlgorithm enum constant.- Parameters:
algorithm
- The signing algorithm.- Returns:
- The JwsAlgorithm enum. If algorithm is null, it returns the algorithm "none".
-
isSymmetric
public boolean isSymmetric()Indicates whether the algorithm is a symmetric (secret key) algorithm like HMAC or a public key algorithm.- Specified by:
isSymmetric
in interfaceAlgorithm
- Returns:
true
if the algorithm uses a shared secret key for signing and verification orfalse
if it uses distinct private and public keys for these operations.
-
toString
Turns the JwsAlgorithm constant into a JSON value string.- Overrides:
toString
in classEnum<JwsAlgorithm>
- Returns:
-