com.nimbusds.jose.crypto
Class DirectEncrypter

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

public class DirectEncrypter
extends Object
implements JWEEncrypter

Direct encrypter of JWE objects with a shared symmetric key. This class is thread-safe.

Supports the following JWE algorithms:

Supports the following encryption methods:

Version:
$version$ (2013-05-20)
Author:
Vladimir Dzhuvinov

Field Summary
static Set<JWEAlgorithm> SUPPORTED_ALGORITHMS
          The supported JWE algorithms.
static Set<EncryptionMethod> SUPPORTED_ENCRYPTION_METHODS
          The supported encryption methods.
 
Constructor Summary
DirectEncrypter(byte[] keyBytes)
          Creates a new direct encrypter.
DirectEncrypter(SecretKey key)
          Creates a new direct encrypter.
 
Method Summary
 JWECryptoParts encrypt(ReadOnlyJWEHeader readOnlyJWEHeader, byte[] bytes)
          Encrypts the specified clear text of a JWE object.
 SecretKey getKey()
          Gets the shared symmetric key.
 Set<JWEAlgorithm> supportedAlgorithms()
          Returns the names of the supported JWE algorithms.
 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

SUPPORTED_ALGORITHMS

public static final Set<JWEAlgorithm> SUPPORTED_ALGORITHMS
The supported JWE algorithms.


SUPPORTED_ENCRYPTION_METHODS

public static final Set<EncryptionMethod> SUPPORTED_ENCRYPTION_METHODS
The supported encryption methods.

Constructor Detail

DirectEncrypter

public DirectEncrypter(SecretKey key)
                throws JOSEException
Creates a new direct encrypter.

Parameters:
key - The shared symmetric key. Its algorithm must be "AES". Must be 128 bits (16 bytes), 256 bits (32 bytes) or 512 bits (64 bytes) long. Must not be null.
Throws:
JOSEException - If the key length or algorithm are unexpected, or if the underlying secure random generator couldn't be instantiated.

DirectEncrypter

public DirectEncrypter(byte[] keyBytes)
                throws JOSEException
Creates a new direct encrypter.

Parameters:
keyBytes - The shared symmetric key, as a byte array. Must be 128 bits (16 bytes), 256 bits (32 bytes) or 512 bits (64 bytes) long. Must not be null.
Throws:
JOSEException - If the key length or algorithm are unexpected, or if the underlying secure random generator couldn't be instantiated.
Method Detail

encrypt

public JWECryptoParts encrypt(ReadOnlyJWEHeader readOnlyJWEHeader,
                              byte[] bytes)
                       throws JOSEException
Description copied from interface: JWEEncrypter
Encrypts the specified clear text of a JWE object.

Specified by:
encrypt in interface JWEEncrypter
Parameters:
readOnlyJWEHeader - The JSON Web Encryption (JWE) header. Must specify a supported JWE algorithm and must not be null.
bytes - The clear text to encrypt. Must not be null.
Returns:
The resulting JWE crypto parts.
Throws:
JOSEException - If the JWE algorithm is not supported or if encryption failed for some other reason.

getKey

public SecretKey getKey()
Gets the shared symmetric key.

Returns:
The key.

supportedAlgorithms

public 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 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.


Copyright © 2013 NimbusDS. All Rights Reserved.