Class EncryptionMethod

    • Field Detail

      • A128CBC_HS256

        public static final EncryptionMethod A128CBC_HS256
        AES_128_CBC_HMAC_SHA_256 authenticated encryption using a 256 bit key (required).
      • A192CBC_HS384

        public static final EncryptionMethod A192CBC_HS384
        AES_192_CBC_HMAC_SHA_384 authenticated encryption using a 384 bit key (optional).
      • A256CBC_HS512

        public static final EncryptionMethod A256CBC_HS512
        AES_256_CBC_HMAC_SHA_512 authenticated encryption using a 512 bit key (required).
      • A128CBC_HS256_DEPRECATED

        public static final EncryptionMethod A128CBC_HS256_DEPRECATED
        AES_128_CBC_HMAC_SHA_256 authenticated encryption using a 256 bit key, deprecated in JOSE draft suite version 09.
      • A256CBC_HS512_DEPRECATED

        public static final EncryptionMethod A256CBC_HS512_DEPRECATED
        AES_256_CBC_HMAC_SHA_512 authenticated encryption using a 512 bit key, deprecated in JOSE draft suite version 09.
      • A128GCM

        public static final EncryptionMethod A128GCM
        AES in Galois/Counter Mode (GCM) (NIST.800-38D) using a 128 bit key (recommended).
      • A192GCM

        public static final EncryptionMethod A192GCM
        AES in Galois/Counter Mode (GCM) (NIST.800-38D) using a 192 bit key (optional).
      • A256GCM

        public static final EncryptionMethod A256GCM
        AES in Galois/Counter Mode (GCM) (NIST.800-38D) using a 256 bit key (recommended).
      • XC20P

        public static final EncryptionMethod XC20P
        XChaCha: eXtended-nonce ChaCha and AEAD_XChaCha20_Poly1305 (optional)
    • Constructor Detail

      • EncryptionMethod

        public EncryptionMethod​(String name,
                                Requirement req,
                                int cekBitLength)
        Creates a new encryption method.
        Parameters:
        name - The encryption method name. Must not be null.
        req - The implementation requirement, null if not known.
        cekBitLength - The Content Encryption Key (CEK) bit length, zero if not specified.
      • EncryptionMethod

        public EncryptionMethod​(String name,
                                Requirement req)
        Creates a new encryption method. The Content Encryption Key (CEK) bit length is not specified.
        Parameters:
        name - The encryption method name. Must not be null.
        req - The implementation requirement, null if not known.
      • EncryptionMethod

        public EncryptionMethod​(String name)
        Creates a new encryption method. The implementation requirement and the Content Encryption Key (CEK) bit length are not specified.
        Parameters:
        name - The encryption method name. Must not be null.
    • Method Detail

      • cekBitLength

        public int cekBitLength()
        Gets the length of the associated Content Encryption Key (CEK).
        Returns:
        The Content Encryption Key (CEK) bit length, zero if not specified.
      • parse

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