Enum Class JweAlgorithmType

java.lang.Object
java.lang.Enum<JweAlgorithmType>
org.forgerock.json.jose.jwe.JweAlgorithmType
All Implemented Interfaces:
Serializable, Comparable<JweAlgorithmType>, Constable

public enum JweAlgorithmType extends Enum<JweAlgorithmType>
An Enum of the possible types of JWE algorithms that can be used to encrypt a JWT.
Since:
2.0.0
See Also:
  • Enum Constant Details

    • RSA

      public static final JweAlgorithmType RSA
      RSA encryption algorithm.
    • DIRECT

      public static final JweAlgorithmType DIRECT
      Direct symmetric encryption.
    • AES_KEYWRAP

      public static final JweAlgorithmType AES_KEYWRAP
      AES KeyWrap.
    • ECDH_ES

      public static final JweAlgorithmType ECDH_ES
      Elliptic Curve Diffie-Hellman (ECDH) key agreement in Ephemeral-Static (ES) configuration.
  • Method Details

    • values

      public static JweAlgorithmType[] 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

      public static JweAlgorithmType valueOf(String name)
      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 name
      NullPointerException - if the argument is null
    • isSymmetric

      public boolean isSymmetric()
      Indicates whether the algorithm type uses the same key for both encryption and decryption operations (symmetric encryption). Otherwise, a public key is used for encryption and a corresponding private key for decryption.
      Returns:
      true if the algorithm is symmetric, or false if it is a public key algorithm.
    • isAuthenticated

      public boolean isAuthenticated()
      Indicates whether the algorithm type provides assurance of the originator of an encrypted JWT (sender authentication). If the algorithm is unauthenticated then it should be used in combination with a JWS signature scheme if you need to ensure that JWTs can only be produced by trusted sources.
      Returns:
      true if the encryption algorithm provides sender authentication as well as confidentiality.
    • toString

      public String toString()
      Turns the JweAlgorithmType constant into a JSON value string.
      Overrides:
      toString in class Enum<JweAlgorithmType>
      Returns:
    • getEncryptionPurpose

      public Purpose<? extends CryptoKey> getEncryptionPurpose(String label)
      Returns a Purpose that can be used to retrieve keys that are suitable for encryption with this type of JWE algorithm.
      Parameters:
      label - the purpose label.
      Returns:
      a purpose with the given label and an appropriate key type.
    • getDecryptionPurpose

      public Purpose<? extends CryptoKey> getDecryptionPurpose(String label)
      Returns a Purpose that can be used to retrieve keys that are suitable for decryption with this type of JWE algorithm.
      Parameters:
      label - the purpose label.
      Returns:
      a purpose with the given label and an appropriate key type.