@ThreadSafe public class ECDH1PUX25519DecrypterMulti extends ECDH1PUCryptoProvider implements JWEDecrypterMulti, CriticalHeaderParamsAware
JWE objects for curves using EC JWK
Expects a private OctetKeyPair key with "crv" X25519.
See RFC 8037 for more information.
Public Key Authenticated Encryption for JOSE ECDH-1PU for more information.
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 |
|---|
ECDH1PUX25519DecrypterMulti(OctetKeyPair sender,
List<Pair<UnprotectedHeader,OctetKeyPair>> recipients)
Creates a curve x25519 Elliptic Curve Diffie-Hellman Multi-recipient decrypter.
|
ECDH1PUX25519DecrypterMulti(OctetKeyPair sender,
List<Pair<UnprotectedHeader,OctetKeyPair>> recipients,
Set<String> defCritHeaders)
Creates a curve x25519 Elliptic Curve Diffie-Hellman Multi-recipient decrypter.
|
| Modifier and Type | Method and Description |
|---|---|
byte[] |
decrypt(JWEHeader header,
List<JWERecipient> recipients,
Base64URL iv,
Base64URL cipherText,
Base64URL authTag)
Decrypts the specified cipher text of a
JWE Object. |
Set<String> |
getDeferredCriticalHeaderParams()
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. |
JWEJCAContext |
getJCAContext()
Returns the Java Cryptography Architecture (JCA) context.
|
Set<String> |
getProcessedCriticalHeaderParams()
Returns the names of the critical (
crit) header parameters
that are understood and processed by the JWS verifier / JWE
decrypter. |
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.
|
decryptMulti, decryptWithZ, encryptMulti, encryptWithZ, getConcatKDF, getCurveclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsupportedEncryptionMethods, supportedJWEAlgorithmsgetJCAContextpublic static final Set<Curve> SUPPORTED_ELLIPTIC_CURVES
public ECDH1PUX25519DecrypterMulti(OctetKeyPair sender, List<Pair<UnprotectedHeader,OctetKeyPair>> recipients) throws JOSEException
sender - The sender public JWK key.recipients - The list of private recipient's keys.JOSEException - If the key subtype is not supported.public ECDH1PUX25519DecrypterMulti(OctetKeyPair sender, List<Pair<UnprotectedHeader,OctetKeyPair>> recipients, Set<String> defCritHeaders) throws JOSEException
sender - The sender public JWK key.recipients - The list of private recipient's keys.defCritHeaders - The names of the critical header parameters
that are deferred to the application for
processing, empty set or null if none.JOSEException - If the key subtype is not supported.public Set<Curve> supportedEllipticCurves()
ECDH1PUCryptoProvidercrv JWK parameter.supportedEllipticCurves in class ECDH1PUCryptoProviderpublic Set<String> getProcessedCriticalHeaderParams()
CriticalHeaderParamsAwarecrit) header parameters
that are understood and processed by the JWS verifier / JWE
decrypter.getProcessedCriticalHeaderParams in interface CriticalHeaderParamsAwarepublic Set<String> getDeferredCriticalHeaderParams()
CriticalHeaderParamsAwarecrit) header parameters
that are deferred to the application for processing and will be
ignored by the JWS verifier / JWE decrypter.getDeferredCriticalHeaderParams in interface CriticalHeaderParamsAwarepublic byte[] decrypt(JWEHeader header, List<JWERecipient> recipients, Base64URL iv, Base64URL cipherText, Base64URL authTag) throws JOSEException
JWEDecrypterMultiJWE Object.
May decrypt multi keys.decrypt in interface JWEDecrypterMultiheader - The JSON Web Encryption (JWE) header. Must
specify a supported JWE algorithm and method.
Must not be null.recipients - The recipients, null if not required
by the JWE algorithm.iv - The initialisation vector, null if not
required by the JWE algorithm.cipherText - The cipher text to decrypt. Must not be
null.authTag - The authentication tag, null if not
required.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.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.