ERXAbstractAESCrypter Class Reference

Inherits er::extensions::crypting::ERXCrypterInterface.

Inherited by ERXAESCrypter.

Collaboration diagram for ERXAbstractAESCrypter:

Collaboration graph
[legend]

List of all members.

Classes

class  ThreadLocalCipher

Public Member Functions

int blockSize ()
String decrypt (String cryptedText)
String encrypt (String clearText)
 ERXAbstractAESCrypter ()
void setBlockSize (int blockSize)

Static Public Attributes

static final Logger log = Logger.getLogger(ERXCrypto.class)

Protected Member Functions

Cipher createCipher (int mode)
Cipher decryptCipher ()
Cipher encryptCipher ()
abstract Key secretKey () throws Exception

Private Member Functions

Key _secretKey ()

Private Attributes

int _blockSize
ThreadLocalCipher _decryptCipher
ThreadLocalCipher _encryptCipher
Key _secretKey


Detailed Description

ERXAbstractAESCrypter is an AES implementation of the crypter interface that allows subclasses to override the source of the cipher key. The AES cipher is a two-way cipher meaning the original string that was encrypted can be retrieved. The way that this version of the AES cipher is encrypted it is safe to use as a form value.

Author:
qdolan

Constructor & Destructor Documentation


Member Function Documentation

Key _secretKey (  )  [private]

int blockSize (  ) 

Returns the block size for this cipher.

Returns:
the block size for this cipher

Cipher createCipher ( int  mode  )  [protected]

Creates an AES cipher for a given mode. The two possible modes for a cipher are: ENCRYPT and DECRYPT.

Parameters:
mode of the cipher (encrypting or decrypting)
Returns:
an AES cipher initialized with the given mode and with the secretKey from the above method.

String decrypt ( String  cryptedText  ) 

Decodes an AES encoded string. Note that the originally encoded string should have been encoded with the same secret key as is used for the decoding cipher or else you are going to get garbage. To encode a string have a look at encrypt.

Parameters:
cryptedText AES encoded string to be decoded
Returns:
decode clear text string

Implements ERXCrypterInterface.

Cipher decryptCipher (  )  [protected]

Method used to return the shared instance of the decryption cipher.

Returns:
decryption cipher

String encrypt ( String  clearText  ) 

AES encodes a given string using the secret key specified in the System property: er.extensions.ERXAESCipherKey. The AES cipher is a two way cipher meaning that given the secret key you can de-cipher what the original string is. For one-way encryption look at methods dealing with the SHA algorithm. To decode an AES encoded string use the method: decrypt. The resultant string from encoding a string is base64url encoded and safe for use in urls and cookies.

Parameters:
clearText string to be encrypted
Returns:
encrypted string

Implements ERXCrypterInterface.

Cipher encryptCipher (  )  [protected]

Method used to return the shared instance of the encryption cipher.

Returns:
AES encryption cipher

abstract Key secretKey (  )  throws Exception [protected, pure virtual]

Returns the secret key to use for this cipher.

Returns:
a secret key for the cipher

Implemented in ERXAESCrypter.

void setBlockSize ( int  blockSize  ) 

Sets the block size to use for this cipher.

Parameters:
blockSize the block size to use for this cipher


Member Data Documentation

int _blockSize [private]

Block size of encrypted strings

Used to cache the decryption cipher

Used to cache the encryption cipher

Key _secretKey [private]

Used to cache the secret key

final Logger log = Logger.getLogger(ERXCrypto.class) [static]


The documentation for this class was generated from the following file:

Generated on Sat May 26 06:43:07 2012 for Project Wonder by  doxygen 1.5.8