cryptix.provider.mode
abstract class FeedbackMode extends Mode implements FeedbackCipher, SymmetricCipher
It is internal to Cryptix, and not intended to be used directly by applications.
Copyright © 1997
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.5 $
Since: Cryptix 2.2.2
Field Summary | |
---|---|
protected int | currentByte Index into the ivBlock. |
protected byte[] | ivBlock Value of the current feedback register/queue/buffer. |
protected byte[] | ivStart Value of the IV at initialisation phase as supplied by user. |
protected int | length Size of the feedback register/queue/buffer. |
Constructor Summary | |
---|---|
protected | FeedbackMode(boolean implBuffering, boolean implPadding, String provider)
Constructor for a Mode. |
Method Summary | |
---|---|
protected void | engineSetCipher(Cipher cipher)
SPI: Sets the underlying cipher.
|
byte[] | getInitializationVector()
Gets a copy of the starting initialization vector. |
int | getInitializationVectorLength()
Returns the size of the initialization vector expected by
setInitializationVector . |
void | setInitializationVector(byte[] iv)
Sets the initialization vector.
|
Cipher.getInstance
factory methods instead.
Parameters: 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.
Throws: NullPointerException if provider == null
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.
Parameters: cipher the underlying cipher object
Throws: NullPointerException if cipher == null
Returns: a copy of the initialization vector for this cipher object.
setInitializationVector
. For this class, that is
the block size of the underlying cipher.
Returns: the required size of the argument to
setInitializationVector
.
Note: in JavaSoft's version of JCE, this method may only be
called when the cipher is in the UNINITIALIZED
state.
In IJCE that is relaxed to also allow it to be called after
initEncrypt
/initDecrypt
, but before the
first call to update
or crypt
, provided
that the IV is not set twice.
Parameters: iv the initialization vector.
Throws: InvalidParameterException if the initialization vector is of the wrong length or has already been set.