public class RSADecrypter extends java.lang.Object implements JWEDecrypter
JWE objects. This class
is thread-safe.
Supports the following JWE algorithms:
Supports the following encryption methods:
EncryptionMethod.A128CBC_HS256
EncryptionMethod.A192CBC_HS384
EncryptionMethod.A256CBC_HS512
EncryptionMethod.A128GCM
EncryptionMethod.A192GCM
EncryptionMethod.A256GCM
Accepts all registered JWE header parameters. Use setAcceptedAlgorithms(java.util.Set<com.nimbusds.jose.JWEAlgorithm>) and
setAcceptedEncryptionMethods(java.util.Set<com.nimbusds.jose.EncryptionMethod>) to restrict the acceptable JWE
algorithms and encryption methods.
| Modifier and Type | Field and Description |
|---|---|
protected java.security.Provider |
contentEncryptionProvider
The JCA provider for the content encryption,
null if not
specified (implies default one). |
protected java.security.Provider |
keyEncryptionProvider
The JCA provider for the key encryption,
null if not
specified (implies default one). |
protected java.security.Provider |
macProvider
The JCA provider for the MAC computation,
null if not
specified (implies default one). |
static java.util.Set<JWEAlgorithm> |
SUPPORTED_ALGORITHMS
The supported JWE algorithms.
|
static java.util.Set<EncryptionMethod> |
SUPPORTED_ENCRYPTION_METHODS
The supported encryption methods.
|
| Constructor and Description |
|---|
RSADecrypter(java.security.interfaces.RSAPrivateKey privateKey)
Creates a new RSA decrypter.
|
| Modifier and Type | Method and Description |
|---|---|
byte[] |
decrypt(ReadOnlyJWEHeader header,
Base64URL encryptedKey,
Base64URL iv,
Base64URL cipherText,
Base64URL authTag)
Decrypts the specified cipher text of a
JWE Object. |
java.util.Set<JWEAlgorithm> |
getAcceptedAlgorithms()
Gets the names of the accepted JWE algorithms.
|
java.util.Set<EncryptionMethod> |
getAcceptedEncryptionMethods()
Gets the names of the accepted encryption methods.
|
java.util.Set<java.lang.String> |
getIgnoredCriticalHeaderParameters()
Gets the names of the critical JWE header parameters to ignore.
|
java.security.interfaces.RSAPrivateKey |
getPrivateKey()
Gets the private RSA key.
|
protected java.security.SecureRandom |
getSecureRandom()
Returns the secure random generator for this JWE provider.
|
void |
setAcceptedAlgorithms(java.util.Set<JWEAlgorithm> acceptedAlgs)
Sets the names of the accepted JWE algorithms.
|
void |
setAcceptedEncryptionMethods(java.util.Set<EncryptionMethod> acceptedEncs)
Sets the names of the accepted encryption methods.
|
void |
setContentEncryptionProvider(java.security.Provider provider)
Sets a specific JCA provider for the content encryption.
|
void |
setIgnoredCriticalHeaderParameters(java.util.Set<java.lang.String> headers)
Sets the names of the critical JWE header parameters to ignore.
|
void |
setKeyEncryptionProvider(java.security.Provider provider)
Sets a specific JCA provider for the key encryption.
|
void |
setMACProvider(java.security.Provider provider)
Sets a specific JCA provider for MAC computation (where required by
the JWE encryption method).
|
void |
setProvider(java.security.Provider provider)
Sets a specific JCA provider, to be used for all operations.
|
void |
setSecureRandom(java.security.SecureRandom randomGen)
Sets a specific secure random generator for the initialisation
vector and other purposes requiring a random number.
|
java.util.Set<JWEAlgorithm> |
supportedAlgorithms()
Returns the names of the supported JWE algorithms.
|
java.util.Set<EncryptionMethod> |
supportedEncryptionMethods()
Returns the names of the supported encryption methods.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsetContentEncryptionProvider, setKeyEncryptionProvider, setMACProvider, setSecureRandom, supportedAlgorithms, supportedEncryptionMethodssetProviderpublic static final java.util.Set<JWEAlgorithm> SUPPORTED_ALGORITHMS
public static final java.util.Set<EncryptionMethod> SUPPORTED_ENCRYPTION_METHODS
protected java.security.Provider keyEncryptionProvider
null if not
specified (implies default one).protected java.security.Provider contentEncryptionProvider
null if not
specified (implies default one).protected java.security.Provider macProvider
null if not
specified (implies default one).public RSADecrypter(java.security.interfaces.RSAPrivateKey privateKey)
privateKey - The private RSA key. Must not be null.public java.security.interfaces.RSAPrivateKey getPrivateKey()
public java.util.Set<JWEAlgorithm> getAcceptedAlgorithms()
JWEDecrypteralg JWE header parameter.getAcceptedAlgorithms in interface JWEDecrypterpublic void setAcceptedAlgorithms(java.util.Set<JWEAlgorithm> acceptedAlgs)
JWEDecrypteralg JWE header parameter.setAcceptedAlgorithms in interface JWEDecrypteracceptedAlgs - The accepted JWE algorithms. Must be a subset of
the supported algorithms and not null.public java.util.Set<EncryptionMethod> getAcceptedEncryptionMethods()
JWEDecrypterenc JWE header parameter.getAcceptedEncryptionMethods in interface JWEDecrypterpublic void setAcceptedEncryptionMethods(java.util.Set<EncryptionMethod> acceptedEncs)
JWEDecrypterenc JWE header parameter.setAcceptedEncryptionMethods in interface JWEDecrypteracceptedEncs - The accepted encryption methods. Must be a
subset of the supported encryption methods and
not null.public java.util.Set<java.lang.String> getIgnoredCriticalHeaderParameters()
JWEDecryptercrit header parameter. The JWE
decrypter should not ignore critical headers by default.getIgnoredCriticalHeaderParameters in interface JWEDecrypternull if none.public void setIgnoredCriticalHeaderParameters(java.util.Set<java.lang.String> headers)
JWEDecryptercrit header parameter. The JWE
decrypter should not ignore critical headers by default. Use this
setter to delegate processing of selected critical headers to the
application.setIgnoredCriticalHeaderParameters in interface JWEDecrypterheaders - The names of the critical JWS header parameters to
ignore, empty or null if none.public byte[] decrypt(ReadOnlyJWEHeader 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 an accepted JWE algorithm, must contain
only accepted header parameters, and 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 is not accepted, if a
header parameter is not accepted, or if
decryption failed for some other reason.public java.util.Set<JWEAlgorithm> supportedAlgorithms()
JWEAlgorithmProvideralg JWE header parameter.supportedAlgorithms in interface JWEAlgorithmProviderpublic java.util.Set<EncryptionMethod> supportedEncryptionMethods()
JWEAlgorithmProviderenc JWE header parameter.supportedEncryptionMethods in interface JWEAlgorithmProviderpublic void setProvider(java.security.Provider provider)
AlgorithmProvidersetProvider in interface AlgorithmProviderprovider - The JCA provider, or null to use the default
one.public void setKeyEncryptionProvider(java.security.Provider provider)
JWEAlgorithmProvidersetKeyEncryptionProvider in interface JWEAlgorithmProviderprovider - The JCA provider, or null to use the default
one.public void setContentEncryptionProvider(java.security.Provider provider)
JWEAlgorithmProvidersetContentEncryptionProvider in interface JWEAlgorithmProviderprovider - The JCA provider, or null to use the default
one.public void setMACProvider(java.security.Provider provider)
JWEAlgorithmProvidersetMACProvider in interface JWEAlgorithmProviderprovider - The JCA provider, or null to use the default
one.public void setSecureRandom(java.security.SecureRandom randomGen)
JWEAlgorithmProvidersetSecureRandom in interface JWEAlgorithmProviderrandomGen - The secure random generator, or null to use
the default one.protected java.security.SecureRandom getSecureRandom()
Copyright © 2014 Connect2id Ltd.. All Rights Reserved.