Package com.nimbusds.jose.crypto
Class ECDH1PUEncrypter
java.lang.Object
com.nimbusds.jose.crypto.impl.BaseJWEProvider
com.nimbusds.jose.crypto.impl.ECDH1PUCryptoProvider
com.nimbusds.jose.crypto.ECDH1PUEncrypter
- All Implemented Interfaces:
JCAAware<JWEJCAContext>,JOSEProvider,JWEEncrypter,JWEProvider
Elliptic Curve Diffie-Hellman encrypter of
JWE objects for curves using an EC JWK.
Expects a public EC key (with a P-256, P-384, or P-521 curve).
Public Key Authenticated Encryption for JOSE ECDH-1PU for more information.
For Curve25519/X25519, see ECDH1PUX25519Encrypter instead.
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
FieldsModifier and TypeFieldDescriptionThe supported EC JWK curves by the ECDH crypto provider class.Fields inherited from class com.nimbusds.jose.crypto.impl.ECDH1PUCryptoProvider
SUPPORTED_ALGORITHMS, SUPPORTED_ENCRYPTION_METHODS -
Constructor Summary
ConstructorsConstructorDescriptionECDH1PUEncrypter(ECPrivateKey privateKey, ECPublicKey publicKey) Creates a new Elliptic Curve Diffie-Hellman encrypter.ECDH1PUEncrypter(ECPrivateKey privateKey, ECPublicKey publicKey, SecretKey contentEncryptionKey) Creates a new Elliptic Curve Diffie-Hellman encrypter with an optionally specified content encryption key (CEK). -
Method Summary
Modifier and TypeMethodDescriptionDeprecated.Encrypts the specified clear text of aJWE object.Returns the private EC key.Returns the public EC 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
-
Field Details
-
SUPPORTED_ELLIPTIC_CURVES
The supported EC JWK curves by the ECDH crypto provider class.
-
-
Constructor Details
-
ECDH1PUEncrypter
Creates a new Elliptic Curve Diffie-Hellman encrypter.- Parameters:
privateKey- The private EC key. Must not benull.publicKey- The public EC key. Must not benull.- Throws:
JOSEException- If the elliptic curve is not supported.
-
ECDH1PUEncrypter
public ECDH1PUEncrypter(ECPrivateKey privateKey, ECPublicKey publicKey, SecretKey contentEncryptionKey) throws JOSEException Creates a new Elliptic Curve Diffie-Hellman encrypter with an optionally specified content encryption key (CEK).- Parameters:
privateKey- The private EC key. Must not benull.publicKey- The public EC 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 elliptic curve is not supported.
-
-
Method Details
-
getPublicKey
Returns the public EC key.- Returns:
- The public EC key.
-
getPrivateKey
Returns the private EC key.- Returns:
- The private EC key.
-
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.
-
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.
-