Class DirectEncrypter

All Implemented Interfaces:
JCAAware<JWEJCAContext>, JOSEProvider, JWEEncrypter, JWEProvider

@ThreadSafe public class DirectEncrypter extends DirectCryptoProvider implements JWEEncrypter
Direct encrypter of JWE objects with a shared symmetric key.

See RFC 7518 section 4.5 for more information.

This class is thread-safe.

Supports the following key management algorithms:

Supports the following content encryption algorithms:

Version:
2023-09-10
Author:
Vladimir Dzhuvinov, Egor Puzanov
  • Constructor Details

    • DirectEncrypter

      Creates a new direct encrypter.
      Parameters:
      key - The symmetric key. Its algorithm should be "AES". Must be 128 bits (16 bytes), 192 bits (24 bytes), 256 bits (32 bytes), 384 bits (48 bytes) or 512 bits (64 bytes) long. Must not be null.
      Throws:
      KeyLengthException - If the symmetric key length is not compatible.
    • DirectEncrypter

      public DirectEncrypter(byte[] keyBytes) throws KeyLengthException
      Creates a new direct encrypter.
      Parameters:
      keyBytes - The symmetric key, as a byte array. Must be 128 bits (16 bytes), 192 bits (24 bytes), 256 bits (32 bytes), 384 bits (48 bytes) or 512 bits (64 bytes) long. Must not be null.
      Throws:
      KeyLengthException - If the symmetric key length is not compatible.
    • DirectEncrypter

      Creates a new direct encrypter.
      Parameters:
      octJWK - The symmetric key, as a JWK. Must be 128 bits (16 bytes), 192 bits (24 bytes), 256 bits (32 bytes), 384 bits (48 bytes) or 512 bits (64 bytes) long. Must not be null.
      Throws:
      KeyLengthException - If the symmetric key length is not compatible.
  • Method Details

    • encrypt

      @Deprecated public JWECryptoParts encrypt(JWEHeader header, byte[] clearText) throws JOSEException
      Deprecated.
      Encrypts the specified clear text of a JWE object.
      Parameters:
      header - The JSON Web Encryption (JWE) header. Must specify a supported JWE algorithm and method. Must not be null.
      clearText - The clear text to encrypt. Must not be null.
      Returns:
      The resulting JWE crypto parts.
      Throws:
      JOSEException - If the JWE algorithm or method is not supported or if encryption failed for some other internal reason.
    • encrypt

      public JWECryptoParts encrypt(JWEHeader header, byte[] clearText, byte[] aad) throws JOSEException
      Description copied from interface: JWEEncrypter
      Encrypts the specified clear text of a JWE object.
      Specified by:
      encrypt in interface JWEEncrypter
      Parameters:
      header - The JSON Web Encryption (JWE) header. Must specify a supported JWE algorithm and method. Must not be null.
      clearText - The clear text to encrypt. Must not be null.
      aad - The additional authenticated data. Must not be null.
      Returns:
      The resulting JWE crypto parts.
      Throws:
      JOSEException - If the JWE algorithm or method is not supported or if encryption failed for some other internal reason.