All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class cryptix.provider.mode.CFB

java.lang.Object
   |
   +----java.security.IJCE_Traceable
           |
           +----java.security.Cipher
                   |
                   +----java.security.Mode
                           |
                           +----cryptix.provider.mode.FeedbackMode
                                   |
                                   +----cryptix.provider.mode.CFB

public class CFB
extends FeedbackMode
Implements a byte-oriented stream cipher using n-bit CFB with an n-bit-sized block cipher.

The full block size of the supplied cipher is used for the Cipher Feedback Mode. The bytes supplied are processed and returned immediately.

References:

  1. Bruce Schneier, "Section 9.6 Cipher Feedback Mode," and "Section 9.11 Choosing a Cipher Mode," Applied Cryptography, 2nd edition, John Wiley & Sons, 1996

  2. sci.crypt FAQ, "Part 5: Product Ciphers," ftp://ftp.rtfm.mit.edu/pub/usenet/news.answers/cryptography-faq/part05

  3. National Bureau of Standards (now NIST), "DES Modes of Operation," NBS FIPS PUB 81, U.S. Department of Commerce, December 1980

Copyright © 1995-1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.4 $

Author:
David Hopwood, Raif S. Naffah

Constructor Index

 o CFB()
Constructs a CFB mode object.
 o CFB(Cipher)
Constructs a CFB cipher, assuming that the IV will be provided via setInitializationVector.
 o CFB(Cipher, byte[])
Constructs a CFB cipher, using an initialization vector provided in the constructor.

Method Index

 o engineBlockSize()
SPI: Returns the length of a block, in bytes.
 o engineInitDecrypt(Key)
SPI: Initializes this cipher for decryption, using the specified key.
 o engineInitEncrypt(Key)
SPI: Initializes this cipher for encryption, using the specified key.
 o engineSetCipher(Cipher)
SPI: Sets the underlying cipher.
 o engineUpdate(byte[], int, int, byte[], int)
SPI: This is the main engine method for updating data.
 o next_block()
Rotates the IV left by currentByte bytes, to mimic the V2.2 behaviour.

Constructors

 o CFB
 public CFB()
Constructs a CFB mode object.

The IV is provided via setInitializationVector. This IV must be unique during the lifetime of the key. If it is not unique, at least the first block of the plaintext can be recovered.

 o CFB
 public CFB(Cipher cipher)
Constructs a CFB cipher, assuming that the IV will be provided via setInitializationVector. See the previous constructor for more details.

Parameters:
cipher - the cipher object to use in CFB mode.
Throws: NullPointerException
if cipher == null
 o CFB
 public CFB(Cipher cipher,
            byte iv[])
Constructs a CFB cipher, using an initialization vector provided in the constructor.

Parameters:
cipher - the block cipher to use
iv - the initial value for the shift register (IV)
Throws: NullPointerException
if cipher == null

Methods

 o engineSetCipher
 protected void engineSetCipher(Cipher cipher)
SPI: Sets the underlying cipher.

Overrides:
engineSetCipher in class FeedbackMode
 o engineBlockSize
 protected int engineBlockSize()
SPI: Returns the length of a block, in bytes.

Overrides:
engineBlockSize in class Cipher
 o engineInitEncrypt
 protected void engineInitEncrypt(Key newkey) throws KeyException
SPI: Initializes this cipher for encryption, using the specified key.

Overrides:
engineInitEncrypt in class Cipher
 o engineInitDecrypt
 protected void engineInitDecrypt(Key newkey) throws KeyException
SPI: Initializes this cipher for decryption, using the specified key.

Overrides:
engineInitDecrypt in class Cipher
 o engineUpdate
 protected int engineUpdate(byte in[],
                            int inOffset,
                            int inLen,
                            byte out[],
                            int outOffset)
SPI: This is the main engine method for updating data. It may be called with any size of input.

in and out may be the same array, and the input and output regions may overlap.

Parameters:
in - the input data.
inOffset - the offset into in specifying where the data starts.
inLen - the length of the subarray.
out - the output array.
outOffset - the offset indicating where to start writing into the out array.
Returns:
the number of bytes written.
Overrides:
engineUpdate in class Cipher
 o next_block
 protected void next_block()
Rotates the IV left by currentByte bytes, to mimic the V2.2 behaviour. This is needed in order to implement the variant of CFB used by PGP.

See Also:
CFB_PGP

All Packages  Class Hierarchy  This Package  Previous  Next  Index