Package com.nimbusds.jose.crypto
Class X25519Decrypter
java.lang.Object
com.nimbusds.jose.crypto.impl.BaseJWEProvider
com.nimbusds.jose.crypto.impl.ECDHCryptoProvider
com.nimbusds.jose.crypto.X25519Decrypter
- All Implemented Interfaces:
CriticalHeaderParamsAware,JCAAware<JWEJCAContext>,JOSEProvider,JWEDecrypter,JWEProvider
public class X25519Decrypter
extends ECDHCryptoProvider
implements JWEDecrypter, CriticalHeaderParamsAware
Curve25519 Elliptic Curve Diffie-Hellman decrypter of
JWE objects.
Expects a private OctetKeyPair key with "crv" X25519.
See RFC 8037 for more information.
See also ECDHDecrypter for ECDH on other curves.
This class is thread-safe.
Supports the following key management algorithms:
JWEAlgorithm.ECDH_ESJWEAlgorithm.ECDH_ES_A128KWJWEAlgorithm.ECDH_ES_A192KWJWEAlgorithm.ECDH_ES_A256KW
Supports the following elliptic curve:
Curve.X25519(Curve25519)
Supports the following content encryption algorithms:
- Version:
- 2023-03-26
- Author:
- Tim McLean, Egor Puzanov
-
Field Summary
Fields inherited from class com.nimbusds.jose.crypto.impl.ECDHCryptoProvider
SUPPORTED_ALGORITHMS, SUPPORTED_ENCRYPTION_METHODS -
Constructor Summary
ConstructorsConstructorDescriptionX25519Decrypter(OctetKeyPair privateKey) Creates a new Curve25519 Elliptic Curve Diffie-Hellman decrypter.X25519Decrypter(OctetKeyPair privateKey, Set<String> defCritHeaders) Creates a new Curve25519 Elliptic Curve Diffie-Hellman decrypter. -
Method Summary
Modifier and TypeMethodDescriptionbyte[]decrypt(JWEHeader header, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL authTag) Deprecated.byte[]decrypt(JWEHeader header, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL authTag, byte[] aad) Decrypts the specified cipher text of aJWE Object.Returns the names of the critical (crit) header parameters that are deferred to the application for processing and will be ignored by the JWS verifier / JWE decrypter.Returns the private key.Returns the names of the critical (crit) header parameters that are understood and processed by the JWS verifier / JWE decrypter.Returns the names of the supported elliptic curves.Methods inherited from class com.nimbusds.jose.crypto.impl.ECDHCryptoProvider
decryptWithZ, encryptWithZ, getConcatKDF, getCurveMethods 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
-
X25519Decrypter
Creates a new Curve25519 Elliptic Curve Diffie-Hellman decrypter.- Parameters:
privateKey- The private key. Must not benull.- Throws:
JOSEException- If the key subtype is not supported.
-
X25519Decrypter
Creates a new Curve25519 Elliptic Curve Diffie-Hellman decrypter.- Parameters:
privateKey- The private key. Must not benull.defCritHeaders- The names of the critical header parameters that are deferred to the application for processing, empty set ornullif none.- Throws:
JOSEException- If the key subtype is not supported.
-
-
Method Details
-
supportedEllipticCurves
Description copied from class:ECDHCryptoProviderReturns the names of the supported elliptic curves. These correspond to thecrvEC JWK parameter.- Specified by:
supportedEllipticCurvesin classECDHCryptoProvider- Returns:
- The supported elliptic curves.
-
getPrivateKey
Returns the private key.- Returns:
- The private key.
-
getProcessedCriticalHeaderParams
Description copied from interface:CriticalHeaderParamsAwareReturns the names of the critical (crit) header parameters that are understood and processed by the JWS verifier / JWE decrypter.- Specified by:
getProcessedCriticalHeaderParamsin interfaceCriticalHeaderParamsAware- Returns:
- The names of the critical header parameters that are understood and processed, empty set if none.
-
getDeferredCriticalHeaderParams
Description copied from interface:CriticalHeaderParamsAwareReturns the names of the critical (crit) header parameters that are deferred to the application for processing and will be ignored by the JWS verifier / JWE decrypter.- Specified by:
getDeferredCriticalHeaderParamsin interfaceCriticalHeaderParamsAware- Returns:
- The names of the critical header parameters that are deferred to the application for processing, empty set if none.
-
decrypt
@Deprecated public byte[] decrypt(JWEHeader header, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL authTag) throws JOSEException Deprecated.Decrypts the specified cipher text of aJWE Object.- Parameters:
header- The JSON Web Encryption (JWE) header. Must specify a supported JWE algorithm and method. Must not benull.encryptedKey- The encrypted key,nullif not required by the JWE algorithm.iv- The initialisation vector,nullif not required by the JWE algorithm.cipherText- The cipher text to decrypt. Must not benull.authTag- The authentication tag,nullif not required.- Returns:
- The clear text.
- Throws:
JOSEException- If the JWE algorithm or method is not supported, if a critical header parameter is not supported or marked for deferral to the application, or if decryption failed for some other reason.
-
decrypt
public byte[] decrypt(JWEHeader header, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL authTag, byte[] aad) throws JOSEException Description copied from interface:JWEDecrypterDecrypts the specified cipher text of aJWE Object.- Specified by:
decryptin interfaceJWEDecrypter- Parameters:
header- The JSON Web Encryption (JWE) header. Must specify a supported JWE algorithm and method. Must not benull.encryptedKey- The encrypted key,nullif not required by the JWE algorithm.iv- The initialisation vector,nullif not required by the JWE algorithm.cipherText- The cipher text to decrypt. Must not benull.authTag- The authentication tag,nullif not required.aad- The additional authenticated data. Must not benull.- Returns:
- The clear text.
- Throws:
JOSEException- If the JWE algorithm or method is not supported, if a critical header parameter is not supported or marked for deferral to the application, or if decryption failed for some other reason.
-