/************************************************************************** * Copyright (c) 2001, 2002, 2003 by Acunia N.V. All rights reserved. * * * * This software is copyrighted by and is the sole property of Acunia N.V. * * and its licensors, if any. All rights, title, ownership, or other * * interests in the software remain the property of Acunia N.V. and its * * licensors, if any. * * * * This software may only be used in accordance with the corresponding * * license agreement. Any unauthorized use, duplication, transmission, * * distribution or disclosure of this software is expressly forbidden. * * * * This Copyright notice may not be removed or modified without prior * * written consent of Acunia N.V. * * * * Acunia N.V. reserves the right to modify this software without notice. * * * * Acunia N.V. * * Philips site 5, box 3 info@acunia.com * * 3001 Leuven http://www.acunia.com * * Belgium - EUROPE * **************************************************************************/ package javax.crypto; import java.security.AlgorithmParameters; import java.security.InvalidKeyException; import java.security.Key; import java.security.InvalidAlgorithmParameterException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.spec.AlgorithmParameterSpec; final class NullCipherSpi extends CipherSpi { public NullCipherSpi(){} protected byte[] engineDoFinal(byte[] in, int offset, int length) throws IllegalBlockSizeException, BadPaddingException{ return engineUpdate(in, offset, length); } protected int engineDoFinal(byte[] in, int offset, int length, byte[] bytes, int offbytes) throws IllegalBlockSizeException, BadPaddingException, ShortBufferException { return engineUpdate(in, offset, length, bytes, offbytes); } protected int engineGetBlockSize(){ return 1; } protected byte[] engineGetIV(){ return null; } protected int engineGetKeySize(Key key)throws InvalidKeyException { throw new UnsupportedOperationException("engineGetKeySize(Key key) is not supported by "+this.getClass()); } protected int engineGetOutputSize(int length){ return length; } protected AlgorithmParameters engineGetParameters(){ return null; } protected void engineInit(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException {} protected void engineInit(int opmode, Key key, AlgorithmParameters params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException {} protected void engineInit(int opmode, Key key, SecureRandom srandom) throws InvalidKeyException {} protected void engineSetMode(String mode) throws NoSuchAlgorithmException {} protected void engineSetPadding(String padding)throws NoSuchPaddingException {} protected Key engineUnwrap(byte[] key, String keyAlgorithm, int keyType) throws InvalidKeyException,NoSuchAlgorithmException { throw new UnsupportedOperationException("engineUnwrap is not supported by "+this.getClass()); } protected byte[] engineUpdate(byte[] in, int offset, int length){ if(in.length - length < offset || offset < 0 || length < 0){ throw new IndexOutOfBoundsException(); } byte[] newBuffer = new byte[length]; System.arraycopy(in, offset, newBuffer, 0, length); return newBuffer; } protected int engineUpdate(byte[] in, int offset, int length, byte[] bytes, int offbytes) throws ShortBufferException { if(in.length - length < offset || offset < 0 || length < 0 || offbytes < 0){ throw new IndexOutOfBoundsException(); } if((bytes.length - length - offbytes) < 0){ throw new ShortBufferException(); } System.arraycopy(in, offset, bytes, offbytes, length); return length; } protected byte[] engineWrap(Key key)throws IllegalBlockSizeException, InvalidKeyException { throw new UnsupportedOperationException("engineWrap(Key key) is not supported by "+this.getClass()); } }