@ThreadSafe public class ECDH1PUEncrypter extends ECDH1PUCryptoProvider implements JWEEncrypter
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:
| Modifier and Type | Field and Description |
|---|---|
static Set<Curve> |
SUPPORTED_ELLIPTIC_CURVES
The supported EC JWK curves by the ECDH crypto provider class.
|
SUPPORTED_ALGORITHMS, SUPPORTED_ENCRYPTION_METHODS| Constructor and Description |
|---|
ECDH1PUEncrypter(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).
|
| Modifier and Type | Method and Description |
|---|---|
JWECryptoParts |
encrypt(JWEHeader header,
byte[] clearText)
Encrypts the specified clear text of a
JWE object. |
JWEJCAContext |
getJCAContext()
Returns the Java Cryptography Architecture (JCA) context.
|
ECPrivateKey |
getPrivateKey()
Returns the private EC key.
|
ECPublicKey |
getPublicKey()
Returns the public EC key.
|
Set<Curve> |
supportedEllipticCurves()
Returns the names of the supported elliptic curves.
|
Set<EncryptionMethod> |
supportedEncryptionMethods()
Returns the names of the supported encryption methods by the JWE
provier.
|
Set<JWEAlgorithm> |
supportedJWEAlgorithms()
Returns the names of the supported algorithms by the JWE provider
instance.
|
decryptWithZ, encryptWithZ, getConcatKDF, getCurveclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsupportedEncryptionMethods, supportedJWEAlgorithmsgetJCAContextpublic static final Set<Curve> SUPPORTED_ELLIPTIC_CURVES
public ECDH1PUEncrypter(ECPrivateKey privateKey, ECPublicKey publicKey) throws JOSEException
privateKey - The private EC key. Must not be null.publicKey - The public EC key. Must not be null.JOSEException - If the elliptic curve is not supported.public ECDH1PUEncrypter(ECPrivateKey privateKey, ECPublicKey publicKey, SecretKey contentEncryptionKey) throws JOSEException
privateKey - The private EC key. Must not be
null.publicKey - The public EC key. Must not be
null.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").
If null a CEK will be generated
for each JWE.JOSEException - If the elliptic curve is not supported.public ECPublicKey getPublicKey()
public ECPrivateKey getPrivateKey()
public Set<Curve> supportedEllipticCurves()
ECDH1PUCryptoProvidercrv JWK parameter.supportedEllipticCurves in class ECDH1PUCryptoProviderpublic JWECryptoParts encrypt(JWEHeader header, byte[] clearText) throws JOSEException
JWEEncrypterJWE object.encrypt in interface JWEEncrypterheader - The JSON Web Encryption (JWE) header. Must specify
a supported JWE algorithm and method. Must not be
null.clearText - The clear text to encrypt. Must not be null.JOSEException - If the JWE algorithm or method is not
supported or if encryption failed for some
other internal reason.public Set<JWEAlgorithm> supportedJWEAlgorithms()
JWEProvideralg JWE header parameter.supportedJWEAlgorithms in interface JWEProviderpublic Set<EncryptionMethod> supportedEncryptionMethods()
JWEProviderenc JWE header parameter.supportedEncryptionMethods in interface JWEProviderpublic JWEJCAContext getJCAContext()
JCAAwaregetJCAContext in interface JCAAware<JWEJCAContext>null.Copyright © 2021 Connect2id Ltd.. All rights reserved.