public class X25519Decrypter extends Object implements JWEDecrypter, CriticalHeaderParamsAware
JWE objects.
Expects a private OctetKeyPair key with "crv" X25519.
See RFC 8037 for more information.
See also ECDHDecrypter for ECDH on other curves.
This class is thread-safe.
Supports the following key management algorithms:
JWEAlgorithm.ECDH_ES
JWEAlgorithm.ECDH_ES_A128KW
JWEAlgorithm.ECDH_ES_A192KW
JWEAlgorithm.ECDH_ES_A256KW
Supports the following elliptic curve:
Curve.X25519 (Curve25519)
Supports the following content encryption algorithms:
| Modifier and Type | Field and Description |
|---|---|
static Set<JWEAlgorithm> |
SUPPORTED_ALGORITHMS
The supported JWE algorithms by the ECDH crypto provider class.
|
static Set<EncryptionMethod> |
SUPPORTED_ENCRYPTION_METHODS
The supported encryption methods by the ECDH crypto provider class.
|
| Constructor and Description |
|---|
X25519Decrypter(OctetKeyPair privateKey)
Creates a new Curve25519 Elliptic Curve Diffie-Hellman decrypter.
|
X25519Decrypter(OctetKeyPair privateKey,
Set<String> defCritHeaders)
Creates a new Curve25519 Elliptic Curve Diffie-Hellman decrypter.
|
| Modifier and Type | Method and Description |
|---|---|
byte[] |
decrypt(JWEHeader header,
Base64URL encryptedKey,
Base64URL iv,
Base64URL cipherText,
Base64URL authTag)
Decrypts the specified cipher text of a
JWE Object. |
protected byte[] |
decryptWithZ(JWEHeader header,
SecretKey Z,
Base64URL encryptedKey,
Base64URL iv,
Base64URL cipherText,
Base64URL authTag)
Decrypts the encrypted JWE parts using the specified shared secret ("Z").
|
protected JWECryptoParts |
encryptWithZ(JWEHeader header,
SecretKey Z,
byte[] clearText)
Encrypts the specified plaintext using the specified shared secret ("Z").
|
protected com.nimbusds.jose.crypto.ConcatKDF |
getConcatKDF()
Returns the Concatenation Key Derivation Function (KDF).
|
Curve |
getCurve()
Returns the elliptic curve of the key (JWK designation).
|
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.
|
OctetKeyPair |
getPrivateKey()
Returns the private key.
|
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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsupportedEncryptionMethods, supportedJWEAlgorithmsgetJCAContextpublic static final Set<JWEAlgorithm> SUPPORTED_ALGORITHMS
public static final Set<EncryptionMethod> SUPPORTED_ENCRYPTION_METHODS
public X25519Decrypter(OctetKeyPair privateKey) throws JOSEException
privateKey - The private key. Must not be null.JOSEException - If the key subtype is not supported.public X25519Decrypter(OctetKeyPair privateKey, Set<String> defCritHeaders) throws JOSEException
privateKey - The private key. Must not be null.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()
crv EC JWK parameter.public OctetKeyPair getPrivateKey()
public 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, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL authTag) throws JOSEException
JWEDecrypterJWE Object.decrypt in interface JWEDecrypterheader - The JSON Web Encryption (JWE) header. Must
specify a supported JWE algorithm and method.
Must not be null.encryptedKey - The encrypted key, 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.protected com.nimbusds.jose.crypto.ConcatKDF getConcatKDF()
public Curve getCurve()
protected JWECryptoParts encryptWithZ(JWEHeader header, SecretKey Z, byte[] clearText) throws JOSEException
JOSEExceptionprotected byte[] decryptWithZ(JWEHeader header, SecretKey Z, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL authTag) throws JOSEException
JOSEExceptionpublic 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 © 2018 Connect2id Ltd.. All rights reserved.