Project Wonder 5.0

er.extensions.crypting
Class ERXAbstractAESCrypter

java.lang.Object
  extended by er.extensions.crypting.ERXAbstractAESCrypter
All Implemented Interfaces:
ERXCrypterInterface
Direct Known Subclasses:
ERXAESCrypter

public abstract class ERXAbstractAESCrypter
extends java.lang.Object
implements ERXCrypterInterface

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

Field Summary
static org.apache.log4j.Logger log
           
 
Constructor Summary
ERXAbstractAESCrypter()
           
 
Method Summary
 int blockSize()
          Returns the block size for this cipher.
protected  javax.crypto.Cipher createCipher(int mode)
          Creates an AES cipher for a given mode.
 java.lang.String decrypt(java.lang.String cryptedText)
          Decodes an AES encoded string.
protected  javax.crypto.Cipher decryptCipher()
          Method used to return the shared instance of the decryption cipher.
 java.lang.String encrypt(java.lang.String clearText)
          AES encodes a given string using the secret key specified in the System property: er.extensions.ERXAESCipherKey.
protected  javax.crypto.Cipher encryptCipher()
          Method used to return the shared instance of the encryption cipher.
protected abstract  java.security.Key secretKey()
          Returns the secret key to use for this cipher.
 void setBlockSize(int blockSize)
          Sets the block size to use for this cipher.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

public static final org.apache.log4j.Logger log
Constructor Detail

ERXAbstractAESCrypter

public ERXAbstractAESCrypter()
Method Detail

setBlockSize

public void setBlockSize(int blockSize)
Sets the block size to use for this cipher.

Parameters:
blockSize - the block size to use for this cipher

blockSize

public int blockSize()
Returns the block size for this cipher.

Returns:
the block size for this cipher

secretKey

protected abstract java.security.Key secretKey()
                                        throws java.lang.Exception
Returns the secret key to use for this cipher.

Returns:
a secret key for the cipher
Throws:
java.lang.Exception

createCipher

protected javax.crypto.Cipher createCipher(int mode)
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.

encryptCipher

protected javax.crypto.Cipher encryptCipher()
Method used to return the shared instance of the encryption cipher.

Returns:
AES encryption cipher

decryptCipher

protected javax.crypto.Cipher decryptCipher()
Method used to return the shared instance of the decryption cipher.

Returns:
decryption cipher

decrypt

public java.lang.String decrypt(java.lang.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.

Specified by:
decrypt in interface ERXCrypterInterface
Parameters:
cryptedText - AES encoded string to be decoded
Returns:
decode clear text string

encrypt

public java.lang.String encrypt(java.lang.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.

Specified by:
encrypt in interface ERXCrypterInterface
Parameters:
clearText - string to be encrypted
Returns:
encrypted string

Last updated: Tue, Feb 21, 2017 • 05:45 PM CET

Copyright © 2002 – 2007 Project Wonder.