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-04-16)
Author:
Vladimir Dzhuvinov

Field Summary
protected  SecretKey cmk
          The content master key (CMK).
static Set<JWEAlgorithm> SUPPORTED_ALGORITHMS
          The supported JWE algorithms.
static Set<EncryptionMethod> SUPPORTED_ENCRYPTION_METHODS
          The supported encryption methods.
 
Constructor Summary
DirectEncrypter(byte[] key)
          Creates a new direct encrypter.
 
Method Summary
 JWECryptoParts encrypt(ReadOnlyJWEHeader readOnlyJWEHeader, byte[] bytes)
          Encrypts the specified clear text of a JWE object.
 byte[] 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.


cmk

protected final SecretKey cmk
The content master key (CMK).

Constructor Detail

DirectEncrypter

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

Parameters:
key - The shared symmetric key. 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 is unexpected or 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 byte[] 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.