Class JWSAlgorithm

  • All Implemented Interfaces:
    java.io.Serializable

    @Immutable
    public final class JWSAlgorithm
    extends Algorithm
    JSON Web Signature (JWS) algorithm name, represents the alg header parameter in JWS objects. Also used to represent integrity algorithm (ia) header parameters in JWE objects. This class is immutable.

    Includes constants for the following standard JWS algorithm names:

    Additional JWS algorithm names can be defined using the constructors.

    Version:
    2018-03-28
    Author:
    Vladimir Dzhuvinov, Aleksei Doroganov
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  JWSAlgorithm.Family
      JWS algorithm family.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static JWSAlgorithm EdDSA
      EdDSA signature algorithms (optional).
      static JWSAlgorithm ES256
      ECDSA using P-256 (secp256r1) curve and SHA-256 hash algorithm (recommended).
      static JWSAlgorithm ES256K
      ECDSA using P-256K (secp256k1) curve and SHA-256 hash algorithm (optional).
      static JWSAlgorithm ES384
      ECDSA using P-384 curve and SHA-384 hash algorithm (optional).
      static JWSAlgorithm ES512
      ECDSA using P-521 curve and SHA-512 hash algorithm (optional).
      static JWSAlgorithm HS256
      HMAC using SHA-256 hash algorithm (required).
      static JWSAlgorithm HS384
      HMAC using SHA-384 hash algorithm (optional).
      static JWSAlgorithm HS512
      HMAC using SHA-512 hash algorithm (optional).
      static JWSAlgorithm PS256
      RSASSA-PSS using SHA-256 hash algorithm and MGF1 mask generation function with SHA-256 (optional).
      static JWSAlgorithm PS384
      RSASSA-PSS using SHA-384 hash algorithm and MGF1 mask generation function with SHA-384 (optional).
      static JWSAlgorithm PS512
      RSASSA-PSS using SHA-512 hash algorithm and MGF1 mask generation function with SHA-512 (optional).
      static JWSAlgorithm RS256
      RSASSA-PKCS-v1_5 using SHA-256 hash algorithm (recommended).
      static JWSAlgorithm RS384
      RSASSA-PKCS-v1_5 using SHA-384 hash algorithm (optional).
      static JWSAlgorithm RS512
      RSASSA-PKCS-v1_5 using SHA-512 hash algorithm (optional).
    • Constructor Summary

      Constructors 
      Constructor Description
      JWSAlgorithm​(java.lang.String name)
      Creates a new JSON Web Signature (JWS) algorithm name.
      JWSAlgorithm​(java.lang.String name, Requirement req)
      Creates a new JSON Web Signature (JWS) algorithm name.
    • Field Detail

      • HS256

        public static final JWSAlgorithm HS256
        HMAC using SHA-256 hash algorithm (required).
      • HS384

        public static final JWSAlgorithm HS384
        HMAC using SHA-384 hash algorithm (optional).
      • HS512

        public static final JWSAlgorithm HS512
        HMAC using SHA-512 hash algorithm (optional).
      • RS256

        public static final JWSAlgorithm RS256
        RSASSA-PKCS-v1_5 using SHA-256 hash algorithm (recommended).
      • RS384

        public static final JWSAlgorithm RS384
        RSASSA-PKCS-v1_5 using SHA-384 hash algorithm (optional).
      • RS512

        public static final JWSAlgorithm RS512
        RSASSA-PKCS-v1_5 using SHA-512 hash algorithm (optional).
      • ES256

        public static final JWSAlgorithm ES256
        ECDSA using P-256 (secp256r1) curve and SHA-256 hash algorithm (recommended).
      • ES256K

        public static final JWSAlgorithm ES256K
        ECDSA using P-256K (secp256k1) curve and SHA-256 hash algorithm (optional).
      • ES384

        public static final JWSAlgorithm ES384
        ECDSA using P-384 curve and SHA-384 hash algorithm (optional).
      • ES512

        public static final JWSAlgorithm ES512
        ECDSA using P-521 curve and SHA-512 hash algorithm (optional).
      • PS256

        public static final JWSAlgorithm PS256
        RSASSA-PSS using SHA-256 hash algorithm and MGF1 mask generation function with SHA-256 (optional).
      • PS384

        public static final JWSAlgorithm PS384
        RSASSA-PSS using SHA-384 hash algorithm and MGF1 mask generation function with SHA-384 (optional).
      • PS512

        public static final JWSAlgorithm PS512
        RSASSA-PSS using SHA-512 hash algorithm and MGF1 mask generation function with SHA-512 (optional).
      • EdDSA

        public static final JWSAlgorithm EdDSA
        EdDSA signature algorithms (optional).
    • Constructor Detail

      • JWSAlgorithm

        public JWSAlgorithm​(java.lang.String name,
                            Requirement req)
        Creates a new JSON Web Signature (JWS) algorithm name.
        Parameters:
        name - The algorithm name. Must not be null.
        req - The implementation requirement, null if not known.
      • JWSAlgorithm

        public JWSAlgorithm​(java.lang.String name)
        Creates a new JSON Web Signature (JWS) algorithm name.
        Parameters:
        name - The algorithm name. Must not be null.
    • Method Detail

      • parse

        public static JWSAlgorithm parse​(java.lang.String s)
        Parses a JWS algorithm from the specified string.
        Parameters:
        s - The string to parse. Must not be null.
        Returns:
        The JWS algorithm (matching standard algorithm constant, else a newly created algorithm).