Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2012 Mirko Caserta
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this software except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *  http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package com.springcryptoutils.core.cipher.symmetric;
 
 
 
 import  org.apache.commons.codec.binary.Base64;
 import  org.springframework.beans.factory.InitializingBean;
 
The default implementation for performing symmetric encryption/decryption using a static key.

Author(s):
Mirko Caserta (mirko.caserta@gmail.com)
 
 public class CiphererWithStaticKeyImpl implements CiphererWithStaticKey, InitializingBean {
 
 	private String keyAlgorithm = "DESede";
 	private String cipherAlgorithm = "DESede/CBC/PKCS5Padding";
 	private String provider;
 	private Mode mode;
 	private String key;
 	private SecretKeySpec keySpec;

The symmetric key algorithm. The default is DESede (triple DES).

Parameters:
keyAlgorithm the symmetric key algorithm
 
 	public void setKeyAlgorithm(String keyAlgorithm) {
 		this. = keyAlgorithm;
 	}

The cipher algorithm. The default is DESede/CBC/PKCS5Padding (triple DES with Cipher Block Chaining and PKCS 5 padding).

Parameters:
cipherAlgorithm the cipher algorithm
 
 	public void setCipherAlgorithm(String cipherAlgorithm) {
 		this. = cipherAlgorithm;
 	}

Sets the provider name of the specific implementation requested (e.g., "BC" for BouncyCastle, "SunJCE" for the default Sun JCE provider).

Parameters:
provider the provider to set
 
 	public void setProvider(String provider) {
 		this. = provider;
 	}

Sets the encryption/decryption mode.

Parameters:
mode the encryption/decryption mode
 
 	public void setMode(Mode mode) {
 		this. = mode;
 	}

A base64 encoded representation of the raw byte array containing the initialization vector.

Parameters:
initializationVector the initialization vector
Throws:
SymmetricEncryptionException on runtime errors
 
 	public void setInitializationVector(String initializationVector) {
 		try {
 			this. = new IvParameterSpec(Base64.decodeBase64(initializationVector.getBytes("UTF-8")));
 		} catch (UnsupportedEncodingException e) {
 			throw new SymmetricEncryptionException("UTF-8 is an unsupported encoding on this platform"e);
 		}
 	}

A base64 encoded representation of the raw byte array containing the cryptographic key.

Parameters:
key the cryptographic key
	public void setKey(String key) {
		this. = key;
	}

Encrypts/decrypts a message based on the underlying mode of operation.

Parameters:
message if in encryption mode, the clear-text message, otherwise the message to decrypt
Returns:
if in encryption mode, the encrypted message, otherwise the decrypted message
Throws:
SymmetricEncryptionException on runtime errors
See also:
setMode(Mode)
	public byte[] encrypt(byte[] message) {
		try {
			final Cipher cipher = ((( == null) || (.length() == 0))
			switch () {
				case :
					break;
				case :
					break;
				default:
					throw new SymmetricEncryptionException("error encrypting/decrypting message: invalid mode; mode=" + );
			}
			return cipher.doFinal(message);
catch (Exception e) {
			throw new SymmetricEncryptionException("error encrypting/decrypting message; mode=" + e);
		}
	}
	public void afterPropertiesSet() {
		this. = new SecretKeySpec(Base64.decodeBase64(), );
	}
New to GrepCode? Check out our FAQ X