This abstract class defines the
service-provider interface for Cipher. A
cryptographic provider must implement a concrete subclass of this
class for each encryption algorithm it supports. A provider can
implement a separate class for each combination of algorithm, mode,
and padding scheme it supports or implement more general classes and
leave the mode and/or padding scheme to be specified in calls to
engineSetMode( ) and engineSetPadding(
). Applications never need to use or subclass this class.
public abstract class CipherSpi {
// Public Constructors
public CipherSpi( );
// Protected Instance Methods
5.0 protected int engineDoFinal(java.nio.ByteBuffer input, java.nio.ByteBuffer output)
throws ShortBufferException, IllegalBlockSizeException, BadPaddingException;
protected abstract byte[ ] engineDoFinal(byte[ ] input, int inputOffset, int inputLen)
throws IllegalBlockSizeException, BadPaddingException;
protected abstract int engineDoFinal(byte[ ] input, int inputOffset, int inputLen,
byte[ ] output, int outputOffset)
throws ShortBufferException, IllegalBlockSizeException, BadPaddingException;
protected abstract int engineGetBlockSize( );
protected abstract byte[ ] engineGetIV( );
protected int engineGetKeySize(java.security.Key key)
throws java.security.InvalidKeyException;
protected abstract int engineGetOutputSize(int inputLen);
protected abstract java.security.AlgorithmParameters engineGetParameters( );
protected abstract void engineInit(int opmode, java.security.Key key,
java.security.SecureRandom random)
throws java.security.InvalidKeyException;
protected abstract void engineInit(int opmode, java.security.Key key,
java.security.AlgorithmParameters params,
java.security.SecureRandom random)
throws java.security.InvalidKeyException,
java.security.InvalidAlgorithmParameterException;
protected abstract void engineInit(int opmode, java.security.Key key,
java.security.spec.AlgorithmParameterSpec params,
java.security.SecureRandom rando m)
throws java.security.InvalidKeyException,
java.security.InvalidAlgorithmParameterException;
protected abstract void engineSetMode(String mode)
throws java.security.NoSuchAlgorithmException;
protected abstract void engineSetPadding(String padding) throws NoSuchPaddingException;
protected java.security.Key engineUnwrap(byte[ ] wrappedKey, String wrappedKeyAlgorithm,
int wrappedKeyType)
throws java.security.InvalidKeyException,
java.security.NoSuchAlgorithmException;
5.0 protected int engineUpdate(java.nio.ByteBuffer input, java.nio.ByteBuffer output)
throws ShortBufferException;
protected abstract byte[ ] engineUpdate(byte[ ] input, int inputOffset, int inputLen);
protected abstract int engineUpdate(byte[ ] input, int inputOffset, int inputLen,
byte[ ] output, int outputOffset)
throws ShortBufferException;
protected byte[ ] engineWrap(java.security.Key key)
throws IllegalBlockSizeException, java.security.InvalidKeyException;
}