Package com.nimbusds.jose.crypto
Class ECDH1PUX25519Encrypter
java.lang.Object
com.nimbusds.jose.crypto.impl.BaseJWEProvider
com.nimbusds.jose.crypto.impl.ECDH1PUCryptoProvider
com.nimbusds.jose.crypto.ECDH1PUX25519Encrypter
- All Implemented Interfaces:
JCAAware<JWEJCAContext>,JOSEProvider,JWEEncrypter,JWEProvider
@ThreadSafe
public class ECDH1PUX25519Encrypter
extends ECDH1PUCryptoProvider
implements JWEEncrypter
Elliptic Curve Diffie-Hellman encrypter of
JWE objects for curves using an OKP JWK.
Expects a public OctetKeyPair key with "crv" X25519.
See RFC 8037 for more information.
See also ECDH1PUEncrypter for ECDH on other curves.
Public Key Authenticated Encryption for JOSE ECDH-1PU for more information.
This class is thread-safe.
Supports the following key management algorithms:
JWEAlgorithm.ECDH_1PUJWEAlgorithm.ECDH_1PU_A128KWJWEAlgorithm.ECDH_1PU_A192KWJWEAlgorithm.ECDH_1PU_A256KW
Supports the following elliptic curves:
Supports the following content encryption algorithms for Direct key agreement mode:
EncryptionMethod.A128CBC_HS256EncryptionMethod.A192CBC_HS384EncryptionMethod.A256CBC_HS512EncryptionMethod.A128GCMEncryptionMethod.A192GCMEncryptionMethod.A256GCMEncryptionMethod.A128CBC_HS256_DEPRECATEDEncryptionMethod.A256CBC_HS512_DEPRECATEDEncryptionMethod.XC20P
Supports the following content encryption algorithms for Key wrapping mode:
- Version:
- 2023-05-17
- Author:
- Alexander Martynov, Egor Puzanov
-
Field Summary
Fields inherited from class com.nimbusds.jose.crypto.impl.ECDH1PUCryptoProvider
SUPPORTED_ALGORITHMS, SUPPORTED_ENCRYPTION_METHODS -
Constructor Summary
ConstructorsConstructorDescriptionECDH1PUX25519Encrypter(OctetKeyPair privateKey, OctetKeyPair publicKey) Creates a new Curve25519 Elliptic Curve Diffie-Hellman encrypter.ECDH1PUX25519Encrypter(OctetKeyPair privateKey, OctetKeyPair publicKey, SecretKey contentEncryptionKey) Creates a new Curve25519 Elliptic Curve Diffie-Hellman encrypter. -
Method Summary
Modifier and TypeMethodDescriptionDeprecated.Encrypts the specified clear text of aJWE object.Returns the private key.Returns the public key.Returns the names of the supported elliptic curves.Methods inherited from class com.nimbusds.jose.crypto.impl.ECDH1PUCryptoProvider
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
-
ECDH1PUX25519Encrypter
Creates a new Curve25519 Elliptic Curve Diffie-Hellman encrypter.- Parameters:
privateKey- The private key. Must not benull.publicKey- The public key. Must not benull.- Throws:
JOSEException- If the key subtype is not supported.
-
ECDH1PUX25519Encrypter
public ECDH1PUX25519Encrypter(OctetKeyPair privateKey, OctetKeyPair publicKey, SecretKey contentEncryptionKey) throws JOSEException Creates a new Curve25519 Elliptic Curve Diffie-Hellman encrypter.- Parameters:
privateKey- The private key. Must not benull.publicKey- The public key. Must not benull.contentEncryptionKey- The content encryption key (CEK) to use. If specified its algorithm must be "AES" and its length must match the expected for the JWE encryption method ("enc"). Ifnulla CEK will be generated for each JWE.- Throws:
JOSEException- If the key subtype is not supported.
-
-
Method Details
-
supportedEllipticCurves
Description copied from class:ECDH1PUCryptoProviderReturns the names of the supported elliptic curves. These correspond to thecrvJWK parameter.- Specified by:
supportedEllipticCurvesin classECDH1PUCryptoProvider- Returns:
- The supported elliptic curves.
-
getPublicKey
Returns the public key.- Returns:
- The public key.
-
getPrivateKey
Returns the private key.- Returns:
- The private key.
-
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.
-