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_1PU
JWEAlgorithm.ECDH_1PU_A128KW
JWEAlgorithm.ECDH_1PU_A192KW
JWEAlgorithm.ECDH_1PU_A256KW
Supports the following elliptic curves:
Supports the following content encryption algorithms for Direct key agreement mode:
EncryptionMethod.A128CBC_HS256
EncryptionMethod.A192CBC_HS384
EncryptionMethod.A256CBC_HS512
EncryptionMethod.A128GCM
EncryptionMethod.A192GCM
EncryptionMethod.A256GCM
EncryptionMethod.A128CBC_HS256_DEPRECATED
EncryptionMethod.A256CBC_HS512_DEPRECATED
EncryptionMethod.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, getCurve
Methods inherited from class com.nimbusds.jose.crypto.impl.BaseJWEProvider
getCEK, getJCAContext, isCEKProvided, supportedEncryptionMethods, supportedJWEAlgorithms
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.nimbusds.jose.jca.JCAAware
getJCAContext
Methods 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"). Ifnull
a 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:ECDH1PUCryptoProvider
Returns the names of the supported elliptic curves. These correspond to thecrv
JWK parameter.- Specified by:
supportedEllipticCurves
in 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:JWEEncrypter
Encrypts the specified clear text of aJWE object
.- Specified by:
encrypt
in 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.
-