com.nimbusds.jose.crypto
Class RSADecrypter

java.lang.Object
  extended by com.nimbusds.jose.crypto.RSADecrypter
All Implemented Interfaces:
JWEAlgorithmProvider, JWEDecrypter

public class RSADecrypter
extends java.lang.Object
implements JWEDecrypter

This class is not fully tested and is provided for documentation and development purposes only. See Issue #11

Version:
$version$ (2013-02-21)
Author:
David Ortiz, Vladimir Dzhuvinov

Field Summary
static JWEHeaderFilter HEADER_FILTER
           
static java.util.Set<JWEAlgorithm> SUPPORTED_ALGORITHMS
           
static java.util.Set<EncryptionMethod> SUPPORTED_ENCRYPTION_METHODS
           
 
Constructor Summary
RSADecrypter(java.security.interfaces.RSAPrivateKey privateKey)
           
 
Method Summary
protected  byte[] aesgcmDecrypt(javax.crypto.spec.IvParameterSpec ivParamSpec, javax.crypto.SecretKey secretKey, byte[] cipherText)
           
protected  byte[] aesgcmEncrypt(javax.crypto.spec.IvParameterSpec ivParamSpec, javax.crypto.SecretKey secretKey, byte[] cipherText)
           
 byte[] decrypt(ReadOnlyJWEHeader readOnlyJWEHeader, Base64URL encryptedKey, Base64URL iv, Base64URL cipherText, Base64URL integrityValue)
          Decrypts the specified cipher text of a JWE Object.
 JWEHeaderFilter getJWEHeaderFilter()
          Gets the JWE header filter associated with the decrypter.
protected  int keyLengthForMethod(EncryptionMethod method)
          Gets the Content Master Key (CMK) length for the specified encryption method.
 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.
 
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.JWEAlgorithmProvider
supportedAlgorithms, supportedEncryptionMethods
 

Field Detail

HEADER_FILTER

public static final JWEHeaderFilter HEADER_FILTER

SUPPORTED_ALGORITHMS

public static final java.util.Set<JWEAlgorithm> SUPPORTED_ALGORITHMS

SUPPORTED_ENCRYPTION_METHODS

public static final java.util.Set<EncryptionMethod> SUPPORTED_ENCRYPTION_METHODS
Constructor Detail

RSADecrypter

public RSADecrypter(java.security.interfaces.RSAPrivateKey privateKey)
Method Detail

getJWEHeaderFilter

public JWEHeaderFilter getJWEHeaderFilter()
Description copied from interface: JWEDecrypter
Gets the JWE header filter associated with the decrypter. Specifies the names of those supported JWE algorithms and header parameters that the decrypter is configured to accept.

Attempting to decrypt a JWE object with an algorithm or header parameter that is not accepted must result in a JOSEException.

Specified by:
getJWEHeaderFilter in interface JWEDecrypter
Returns:
The JWE header filter.

decrypt

public byte[] decrypt(ReadOnlyJWEHeader readOnlyJWEHeader,
                      Base64URL encryptedKey,
                      Base64URL iv,
                      Base64URL cipherText,
                      Base64URL integrityValue)
               throws JOSEException
Description copied from interface: JWEDecrypter
Decrypts the specified cipher text of a JWE Object.

Specified by:
decrypt in interface JWEDecrypter
Parameters:
readOnlyJWEHeader - 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.
integrityValue - The integrity value, null if not required by the JWE algorithm.
Returns:
The clear text.
Throws:
JOSEException - If the JWE algorithm is not accepted, if a header parameter is not accepted, or if decryption failed for some other reason.

supportedAlgorithms

public java.util.Set<JWEAlgorithm> supportedAlgorithms()
Description copied from interface: JWEAlgorithmProvider
Returns the names of the supported JWE algorithms. These correspond to the alg JWE header parameter.

Specified by:
supportedAlgorithms in interface JWEAlgorithmProvider
Returns:
The supported JWE algorithms, empty set if none.

supportedEncryptionMethods

public java.util.Set<EncryptionMethod> supportedEncryptionMethods()
Description copied from interface: JWEAlgorithmProvider
Returns the names of the supported encryption methods. These correspond to the enc JWE header parameter.

Specified by:
supportedEncryptionMethods in interface JWEAlgorithmProvider
Returns:
The supported encryption methods, empty set if none.

keyLengthForMethod

protected int keyLengthForMethod(EncryptionMethod method)
Gets the Content Master Key (CMK) length for the specified encryption method.

Parameters:
method - The encryption method. Must be supported by this RSA provider. Must not be null.
Returns:
The CMK length, in bits.

aesgcmDecrypt

protected byte[] aesgcmDecrypt(javax.crypto.spec.IvParameterSpec ivParamSpec,
                               javax.crypto.SecretKey secretKey,
                               byte[] cipherText)
                        throws JOSEException
Throws:
JOSEException

aesgcmEncrypt

protected byte[] aesgcmEncrypt(javax.crypto.spec.IvParameterSpec ivParamSpec,
                               javax.crypto.SecretKey secretKey,
                               byte[] cipherText)
                        throws JOSEException
Throws:
JOSEException


Copyright © 2013 NimbusDS. All Rights Reserved.