Package com.nimbusds.jose.crypto.impl
Class ContentCryptoProvider
- java.lang.Object
-
- com.nimbusds.jose.crypto.impl.ContentCryptoProvider
-
public class ContentCryptoProvider extends Object
JWE content encryption / decryption provider.- Version:
- 2023-03-21
- Author:
- Vladimir Dzhuvinov
-
-
Field Summary
Fields Modifier and Type Field Description static Map<Integer,Set<EncryptionMethod>>COMPATIBLE_ENCRYPTION_METHODSThe encryption methods compatible with each key size in bits.static Set<EncryptionMethod>SUPPORTED_ENCRYPTION_METHODSThe supported encryption methods.
-
Constructor Summary
Constructors Constructor Description ContentCryptoProvider()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static byte[]decrypt(JWEHeader header, byte[] aad, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL authTag, SecretKey cek, JWEJCAContext jcaProvider)Decrypts the specified cipher text.static byte[]decrypt(JWEHeader header, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL authTag, SecretKey cek, JWEJCAContext jcaProvider)Decrypts the specified cipher text.static JWECryptoPartsencrypt(JWEHeader header, byte[] clearText, byte[] aad, SecretKey cek, Base64URL encryptedKey, JWEJCAContext jcaProvider)Encrypts the specified clear text (content).static JWECryptoPartsencrypt(JWEHeader header, byte[] clearText, SecretKey cek, Base64URL encryptedKey, JWEJCAContext jcaProvider)Encrypts the specified clear text (content).static SecretKeygenerateCEK(EncryptionMethod enc, SecureRandom randomGen)Generates a Content Encryption Key (CEK) for the specified JOSE encryption method.
-
-
-
Field Detail
-
SUPPORTED_ENCRYPTION_METHODS
public static final Set<EncryptionMethod> SUPPORTED_ENCRYPTION_METHODS
The supported encryption methods.
-
COMPATIBLE_ENCRYPTION_METHODS
public static final Map<Integer,Set<EncryptionMethod>> COMPATIBLE_ENCRYPTION_METHODS
The encryption methods compatible with each key size in bits.
-
-
Constructor Detail
-
ContentCryptoProvider
public ContentCryptoProvider()
-
-
Method Detail
-
generateCEK
public static SecretKey generateCEK(EncryptionMethod enc, SecureRandom randomGen) throws JOSEException
Generates a Content Encryption Key (CEK) for the specified JOSE encryption method.- Parameters:
enc- The encryption method. Must not benull.randomGen- The secure random generator to use. Must not benull.- Returns:
- The generated CEK (with algorithm "AES").
- Throws:
JOSEException- If the encryption method is not supported.
-
encrypt
public static JWECryptoParts encrypt(JWEHeader header, byte[] clearText, SecretKey cek, Base64URL encryptedKey, JWEJCAContext jcaProvider) throws JOSEException
Encrypts the specified clear text (content).- Parameters:
header- The final JWE header. Must not benull.clearText- The clear text to encrypt and optionally compress. Must not benull.cek- The Content Encryption Key (CEK). Must not benull.encryptedKey- The encrypted CEK,nullif not required.jcaProvider- The JWE JCA provider specification. Must not benull.- Returns:
- The JWE crypto parts.
- Throws:
JOSEException- If encryption failed.
-
encrypt
public static JWECryptoParts encrypt(JWEHeader header, byte[] clearText, byte[] aad, SecretKey cek, Base64URL encryptedKey, JWEJCAContext jcaProvider) throws JOSEException
Encrypts the specified clear text (content).- Parameters:
header- The final JWE header. Must not benull.clearText- The clear text to encrypt and optionally compress. Must not benull.aad- The Additional Authenticated Data (AAD), ifnullthe JWE header becomes the AAD.cek- The Content Encryption Key (CEK). Must not benull.encryptedKey- The encrypted CEK,nullif not required.jcaProvider- The JWE JCA provider specification. Must not benull.- Returns:
- The JWE crypto parts.
- Throws:
JOSEException- If encryption failed.
-
decrypt
public static byte[] decrypt(JWEHeader header, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL authTag, SecretKey cek, JWEJCAContext jcaProvider) throws JOSEException
Decrypts the specified cipher text.- Parameters:
header- The JWE header. Must not benull.encryptedKey- The encrypted key,nullif not specified.iv- The initialisation vector (IV). Must not benull.cipherText- The cipher text. Must not benull.authTag- The authentication tag. Must not benull.cek- The Content Encryption Key (CEK). Must not benull.jcaProvider- The JWE JCA provider specification. Must not benull.- Returns:
- The clear text.
- Throws:
JOSEException- If decryption failed.
-
decrypt
public static byte[] decrypt(JWEHeader header, byte[] aad, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL authTag, SecretKey cek, JWEJCAContext jcaProvider) throws JOSEException
Decrypts the specified cipher text.- Parameters:
header- The JWE header. Must not benull.aad- The Additional Authenticated Data (AAD), ifnullthe JWE header becomes the AAD.encryptedKey- The encrypted key,nullif not specified.iv- The initialisation vector (IV). Must not benull.cipherText- The cipher text. Must not benull.authTag- The authentication tag. Must not benull.cek- The Content Encryption Key (CEK). Must not benull.jcaProvider- The JWE JCA provider specification. Must not benull.- Returns:
- The clear text.
- Throws:
JOSEException- If decryption failed.
-
-