cryptix.provider.mode
public class CFB_PGP extends CFB
This class implements PGP's (i.e. Zimmerman's) non-standard CFB mode. (For the standard method, see the Applied Cryptography reference below). It replaces cryptix.pgp.CFB in version 2.2, and cryptix.pgp.PGP_CFB in version Cryptix 2.2.0a.
The differences between this and standard CFB are that:
update
or crypt
), the CFB
shift register is encrypted, regardless of the current position
within a block.
Note that it is unusual for the output of a cipher to depend on the exact boundaries between data passed to each encryption/decryption call. Normally, the lengths of data passed to each call do not matter as long as they make up the correct input when concatenated together - but this class is an exception.
As a result, using this mode with CipherInputStream and CipherOutputStream may produce unexpected output, and is not recommended.
References
Copyright © 1997
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.9 $
Since: Cryptix 2.2.2
Constructor Summary | |
---|---|
CFB_PGP()
Constructs a CFB-PGP cipher, assuming that the IV will be provided
as the first getInitializationVectorLength()
bytes of the stream (it will be visible as cleartext at the start
of the output stream).
| |
CFB_PGP(Cipher cipher)
Constructs a CFB-PGP cipher, assuming that the IV will be provided
as the first getInitializationVectorLength()
bytes of the stream. |
Method Summary | |
---|---|
protected int | engineUpdate(byte[] in, int inOffset, int inLen, byte[] out, int outOffset) |
getInitializationVectorLength()
bytes of the stream (it will be visible as cleartext at the start
of the output stream).
The 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.
getInitializationVectorLength()
bytes of the stream. See the previous constructor for more details.
Throws: NullPointerException if cipher == null IllegalBlockSizeException if cipher.getPlaintextBlockSize() != cipher.getCiphertextBlockSize()