For the latest news and information visit The GNU Crypto project

## gnu.crypto.mode
Class CFB

    java.lang.Object
      |
      +--gnu.crypto.mode.BaseMode
            |
            +--gnu.crypto.mode.CFB

All Implemented Interfaces:
  java.lang.Cloneable, IBlockCipher, IMode

public class CFB
extends BaseMode

The cipher feedback mode. CFB mode is a stream mode that operates on s bit blocks, where 1 <= s <= b, if b is the underlying cipher's block size. Encryption is:

       I[1] = IV
       I[j] = LSB(b-s, I[j-1]) | C[j-1]   for j = 2...n
       O[j] = CIPH(K, I[j])               for j = 1,2...n
       C[j] = P[j] ^ MSB(s, O[j])         for j = 1,2...n

And decryption is:

       I[1] = IV
       I[j] = LSB(b-s, I[j-1]) | C[j-1]   for j = 2...n
       O[j] = CIPH(K, I[j])               for j = 1,2...n
       P[j] = C[j] ^ MSB(s, O[j])         for j = 1,2...n

CFB mode requires an initialization vector, which need not be kept secret.

References:

1. Bruce Schneier, Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition. (1996 John Wiley and Sons) ISBN 0-471-11709-9.
2. Recommendation for Block Cipher Modes of Operation Methods and Techniques, Morris Dworkin.

Field Summary

Fields inherited from class gnu.crypto.mode.BaseMode
`cipher, cipherBlockSize, iv, lock, modeBlockSize, name, state`

Fields inherited from interface gnu.crypto.mode.IMode
`DECRYPTION, ENCRYPTION, IV, MODE_BLOCK_SIZE, STATE`

Fields inherited from interface gnu.crypto.cipher.IBlockCipher
`CIPHER_BLOCK_SIZE, KEY_MATERIAL`

Method Summary
`java.lang.Object` `clone()` Returns a clone of this instance.
`void` `decryptBlock(byte[] in, int inOffset, byte[] out, int outOffset)` Decrypts exactly one block of ciphertext.
`void` `encryptBlock(byte[] in, int inOffset, byte[] out, int outOffset)` Encrypts exactly one block of plaintext.
`void` `setup()` The initialisation phase of the concrete mode implementation.
`void` `teardown()` The termination phase of the concrete mode implementation.

Methods inherited from class gnu.crypto.mode.BaseMode
`blockSizes, currentBlockSize, defaultBlockSize, defaultKeySize, init, keySizes, name, reset, selfTest, update`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### clone

    public java.lang.Object clone()

  Description copied from interface: `IBlockCipher`

  Returns a clone of this instance.

  Specified by:
    `clone` in interface `IBlockCipher`
  Specified by:
    `clone` in class `BaseMode`
  Returns:
    a clone copy of this instance.

### setup

    public void setup()

  Description copied from class: `BaseMode`
  The initialisation phase of the concrete mode implementation.

  Specified by:
    `setup` in class `BaseMode`

### teardown

    public void teardown()

  Description copied from class: `BaseMode`
  The termination phase of the concrete mode implementation.

  Specified by:
    `teardown` in class `BaseMode`

### encryptBlock

    public void encryptBlock(byte[] in,
                             int inOffset,
                             byte[] out,
                             int outOffset)

  Description copied from interface: `IBlockCipher`

  Encrypts exactly one block of plaintext.

  Specified by:
    `encryptBlock` in interface `IBlockCipher`
  Specified by:
    `encryptBlock` in class `BaseMode`
  Parameters:
    `in` - the plaintext.
    `inOffset` - index of `in` from which to start considering data.
    `out` - the ciphertext.
    `outOffset` - index of `out` from which to store result.

### decryptBlock

    public void decryptBlock(byte[] in,
                             int inOffset,
                             byte[] out,
                             int outOffset)

  Description copied from interface: `IBlockCipher`

  Decrypts exactly one block of ciphertext.

  Specified by:
    `decryptBlock` in interface `IBlockCipher`
  Specified by:
    `decryptBlock` in class `BaseMode`
  Parameters:
    `in` - the plaintext.
    `inOffset` - index of `in` from which to start considering data.
    `out` - the ciphertext.
    `outOffset` - index of `out` from which to store result.

For the latest news and information visit The GNU Crypto project

Copyright © 2001, 2002, 2003, 2004 Free Software Foundation, Inc.