xjava.security
Class Mode
- Parameterized
public abstract class Mode
This class is used to provide the functionality of an encryption
mode, such as CBC, CFB, or OFB.
Modes are implemented as Ciphers with an additional engine method,
engineSetCipher
, that is called once to set the
underlying cipher algorithm. The Mode class stores this cipher
in the protected field
cipher
. Subclasses are expected
to use this to implement their own
engineInitEncrypt
,
engineInitDecrypt
and
engineUpdate
methods.
This class
is not supported in JavaSoft's version of JCE.
Copyright © 1997
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.3 $
- David Hopwood
- Raif S. Naffah
protected Cipher | cipher - A reference to the cipher currently operating in this mode.
|
Mode(boolean implBuffering, boolean implPadding, String provider) - Constructor for a Mode.
|
protected Object | engineGetParameter(String param) - SPI: Gets the value of the specified algorithm parameter.
|
protected void | engineSetCipher(Cipher cipher) - SPI: Sets the underlying cipher.
|
protected void | engineSetParameter(String param, Object value) - SPI: Sets the specified algorithm parameter to the specified
value.
|
static String[] | getAlgorithms() - Gets the standard names of all Modes implemented by any
installed provider.
|
static String[] | getAlgorithms(Provider provider) - Gets the standard names of all Modes implemented by a
provider.
|
static Cipher | getInstance(String algorithm) - Generates a Mode object that implements the algorithm
requested, as available in the environment.
|
static Cipher | getInstance(String algorithm, String provider) - Generates a Mode object implementing the specified
algorithm, as supplied from the specified provider, if such an
algorithm is available from the provider.
|
String | toString()
|
blockSize , clone , crypt , crypt , crypt , doFinal , doFinal , doFinal , doFinal , engineBlockSize , engineCiphertextBlockSize , engineCrypt , engineGetParameter , engineInBufferSize , engineInitDecrypt , engineInitEncrypt , engineOutBufferSize , enginePlaintextBlockSize , engineSetPaddingScheme , engineSetParameter , engineUpdate , getAlgorithm , getAlgorithms , getAlgorithms , getCiphertextBlockSize , getInputBlockSize , getInstance , getInstance , getInstance , getMode , getOutputBlockSize , getPadding , getPaddingScheme , getParameter , getPlaintextBlockSize , getProvider , getState , inBufferSize , inBufferSizeFinal , initDecrypt , initEncrypt , isPaddingBlockCipher , outBufferSize , outBufferSizeFinal , setParameter , toString , update , update , update , update |
cipher
protected Cipher cipher
A reference to the cipher currently operating in this mode.
Mode
protected Mode(boolean implBuffering,
boolean implPadding,
String provider)
Constructor for a Mode. This constructor is only for use
by subclasses, which should pass the correct arguments to convey
their behaviour to the superclass. Applications typically do
not use Mode classes directly; they should call one of the
Cipher.getInstance
factory methods instead.
implBuffering
- if true, this argument indicates that data
will be passed from update/crypt to
engineUpdate/engineCrypt without modification.implPadding
- if true, this argument indicates that the
implementation can perform padding, and that
the engineCrypt method will be called when
padding is required.provider
- the name of the provider of the underlying
cryptographic engine.
engineGetParameter
protected Object engineGetParameter(String param)
throws NoSuchParameterException,
InvalidParameterException
SPI: Gets the value of the specified algorithm parameter.
This method supplies a general-purpose mechanism through which
it is possible to get the various parameters of this object. The
mode implementation should first check whether it recognizes the
parameter name, and if not, return
super.engineGetParameter(param)
.
A parameter may be any settable parameter for the algorithm, such
as block size, a source of random bits for IV generation (if
appropriate), or an indication of whether or not to perform a
specific but optional computation. A uniform algorithm-specific
naming scheme for each parameter is desirable but left unspecified
at this time.
The default implementation forwards the call to the underlying
cipher.
- engineGetParameter in interface Cipher
param
- the string name of the parameter.
- the object that represents the parameter value.
engineSetCipher
protected void engineSetCipher(Cipher cipher)
SPI: Sets the underlying cipher.
For example, to create an IDEA cipher in CBC mode, the cipher
for "IDEA" would be passed to the mode for "CBC" using
this method. It is called once, immediately after the mode
object is constructed.
Subclasses that override this method (to do initialization that
depends on the cipher being set) should call
super.engineSetCipher(cipher)
first.
cipher
- the underlying cipher object
engineSetParameter
protected void engineSetParameter(String param,
Object value)
throws NoSuchParameterException,
InvalidParameterException,
InvalidParameterTypeException
SPI: Sets the specified algorithm parameter to the specified
value.
This method supplies a general-purpose mechanism through which it is
possible to set the various parameters of this object. The mode
implementation should first check whether it recognizes the
parameter name, and if not, call
super.engineSetParameter(param, value)
.
A parameter may be any settable parameter for the algorithm, such
as block size, a source of random bits for IV generation (if
appropriate), or an indication of whether or not to perform a
specific but optional computation. A uniform algorithm-specific
naming scheme for each parameter is desirable but left unspecified
at this time.
The default implementation forwards the call to the underlying
cipher.
- engineSetParameter in interface Cipher
param
- the string name of the parameter.value
- the parameter value.
getAlgorithms
public static String[] getAlgorithms()
Gets the standard names of all Modes implemented by any
installed provider. Algorithm names are not duplicated if
they are supported by more than one provider.
The built-in mode "ECB" is included.
- getAlgorithms in interface Cipher
getAlgorithms
public static String[] getAlgorithms(Provider provider)
Gets the standard names of all Modes implemented by a
provider.
- getAlgorithms in interface Cipher
getInstance
public static Cipher getInstance(String algorithm)
throws NoSuchAlgorithmException
- getInstance in interface Cipher
algorithm
- the standard name or an alias for the algorithm.
getInstance
public static Cipher getInstance(String algorithm,
String provider)
throws NoSuchAlgorithmException,
NoSuchProviderException
Generates a Mode object implementing the specified
algorithm, as supplied from the specified provider, if such an
algorithm is available from the provider.
See
International JCE Standard Algorithm Names for a list
of Mode algorithm names.
- getInstance in interface Cipher
algorithm
- the standard name or an alias for the algorithm.provider
- the string name of the provider.
- the new KeyGenerator object.