Package com.nimbusds.jose.crypto
Class MultiEncrypter
java.lang.Object
com.nimbusds.jose.crypto.impl.BaseJWEProvider
com.nimbusds.jose.crypto.impl.MultiCryptoProvider
com.nimbusds.jose.crypto.MultiEncrypter
- All Implemented Interfaces:
JCAAware<JWEJCAContext>,JOSEProvider,JWEEncrypter,JWEProvider
Multi-recipient encrypter of
JWE
objects.
This class is thread-safe.
Supports the following key management algorithms:
JWEAlgorithm.A128KWJWEAlgorithm.A192KWJWEAlgorithm.A256KWJWEAlgorithm.A128GCMKWJWEAlgorithm.A192GCMKWJWEAlgorithm.A256GCMKWJWEAlgorithm.DIRJWEAlgorithm.ECDH_ES_A128KWJWEAlgorithm.ECDH_ES_A192KWJWEAlgorithm.ECDH_ES_A256KWJWEAlgorithm.RSA_OAEP_256JWEAlgorithm.RSA_OAEP_384JWEAlgorithm.RSA_OAEP_512JWEAlgorithm.RSA_OAEP(deprecated)JWEAlgorithm.RSA1_5(deprecated)
Supports the following elliptic curves:
Curve.P_256Curve.P_384Curve.P_521Curve.X25519(Curve25519)
Supports the following content encryption algorithms:
EncryptionMethod.A128CBC_HS256(requires 256 bit key)EncryptionMethod.A192CBC_HS384(requires 384 bit key)EncryptionMethod.A256CBC_HS512(requires 512 bit key)EncryptionMethod.A128GCM(requires 128 bit key)EncryptionMethod.A192GCM(requires 192 bit key)EncryptionMethod.A256GCM(requires 256 bit key)EncryptionMethod.A128CBC_HS256_DEPRECATED(requires 256 bit key)EncryptionMethod.A256CBC_HS512_DEPRECATED(requires 512 bit key)EncryptionMethod.XC20P(requires 256 bit key)
- Version:
- 2023-09-10
- Author:
- Egor Puzanov, Vladimir Dzhuvinov
-
Field Summary
Fields inherited from class com.nimbusds.jose.crypto.impl.MultiCryptoProvider
COMPATIBLE_ALGORITHMS, SUPPORTED_ALGORITHMS, SUPPORTED_ELLIPTIC_CURVES, SUPPORTED_ENCRYPTION_METHODS -
Constructor Summary
ConstructorsConstructorDescriptionMultiEncrypter(JWKSet keys) Creates a new multi-recipient encrypter.MultiEncrypter(JWKSet keys, SecretKey contentEncryptionKey) Creates a new multi-recipient encrypter. -
Method Summary
Methods inherited from class com.nimbusds.jose.crypto.impl.MultiCryptoProvider
supportedEllipticCurvesMethods inherited from class com.nimbusds.jose.crypto.impl.BaseJWEProvider
getCEK, getJCAContext, isCEKProvided, supportedEncryptionMethods, supportedJWEAlgorithmsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.nimbusds.jose.jca.JCAAware
getJCAContextMethods inherited from interface com.nimbusds.jose.JWEProvider
supportedEncryptionMethods, supportedJWEAlgorithms
-
Constructor Details
-
MultiEncrypter
Creates a new multi-recipient encrypter.- Parameters:
keys- The keys to encrypt to. Must not benull.- Throws:
KeyLengthException- If the symmetric key length is not compatible.
-
MultiEncrypter
Creates a new multi-recipient encrypter.- Parameters:
keys- The keys to encrypt to. Must not benull.contentEncryptionKey- The content encryption key (CEK) to use. If specified its algorithm must be "AES" or "ChaCha20" and its length must match the expected for the JWE encryption method ("enc"). Ifnulla CEK will be generated for each JWE.- Throws:
KeyLengthException- If the symmetric key length is not compatible.
-
-
Method Details
-
encrypt
Deprecated.Encrypts the specified clear text of aJWE object.- Parameters:
header- The JSON Web Encryption (JWE) header. Must specify a supported JWE algorithm and method. Must not benull.clearText- The clear text to encrypt. Must not benull.- 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
Description copied from interface:JWEEncrypterEncrypts the specified clear text of aJWE object.- Specified by:
encryptin interfaceJWEEncrypter- Parameters:
header- The JSON Web Encryption (JWE) header. Must specify a supported JWE algorithm and method. Must not benull.clearText- The clear text to encrypt. Must not benull.aad- The additional authenticated data. Must not benull.- 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.
-