org.logi.crypto.modes
Class EncryptECB

java.lang.Object
  |
  +--org.logi.crypto.Crypto
        |
        +--org.logi.crypto.modes.EncryptMode
              |
              +--org.logi.crypto.modes.EncryptECB

public class EncryptECB
extends EncryptMode

Electronic Codebook Mode simply encrypts each block of plaintext independently. It is not as secure as for example CBC mode.

Because ECB mode encrypts one block at a time, encryption is only performed when a full block of data has been sent to the object. This also means that when you call the flush() method, random data is appended to the block before encryption. This can be avoided in two ways: Either by flushing regularly and sending the size of the data packets to the reciever, or by using the CFB or OFB modes.

Author:
Logi Ragnarsson (logir@logi.org)
See Also:
DecryptECB

Fields inherited from class org.logi.crypto.Crypto
BIT, cdsPath, EMPTY_ARRAY, FOUR, keySource, NIBBLE, ONE, primeCertainty, random, TWO, ZERO
 
Constructor Summary
EncryptECB()
          Create a new ECB-mode encrypt session with no key.
EncryptECB(CipherKey key)
          Create a new ECB-mode encrypt session with the specified key.
 
Method Summary
 byte[] encrypt(byte[] source, int i, int length)
          Send bytes to the EncryptECB object for encryption.
 byte[] flush()
          Pads the internal buffer, encrypts it and returns the ciphertext.
 CipherKey getKey()
          Return the key used for encryption.
 int plainBlockSize()
          Return the size of the blocks of plaintext encrypted by this object.
 void setKey(CipherKey key)
          Set the key to use for encryption.
 
Methods inherited from class org.logi.crypto.modes.EncryptMode
close, finalize, flush
 
Methods inherited from class org.logi.crypto.Crypto
binString, binString, equal, equalRelaxed, equalSub, fromHexNibble, fromHexString, fromString, fromString, hexString, hexString, hexString, hexString, hexString, initRandom, initRandom, makeClass, makeInt, makeLong, makeSessionKey, pastSpace, pickBits, pickBits, readBlock, readInt, writeBytes, writeBytes, writeInt
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EncryptECB

public EncryptECB(CipherKey key)
Create a new ECB-mode encrypt session with the specified key.

EncryptECB

public EncryptECB()
Create a new ECB-mode encrypt session with no key. No encryption can be performed until the setKey() method has been called.
Method Detail

getKey

public CipherKey getKey()
Return the key used for encryption.
Overrides:
getKey in class EncryptMode

setKey

public void setKey(CipherKey key)
Set the key to use for encryption. The key can only be set once in this version of the library. The 1.1.x and eventually 1.2.x series allows dynamic re-keying.
Overrides:
setKey in class EncryptMode

plainBlockSize

public int plainBlockSize()
Return the size of the blocks of plaintext encrypted by this object.
Overrides:
plainBlockSize in class EncryptMode

flush

public byte[] flush()
Pads the internal buffer, encrypts it and returns the ciphertext.
Overrides:
flush in class EncryptMode

encrypt

public byte[] encrypt(byte[] source,
                      int i,
                      int length)
Send bytes to the EncryptECB object for encryption.

Encrypt length bytes from source, starting at i and return the ciphertext. Data is encrypted in blocks, so only whole blocks of ciphertext are written to dest. Any remaining plaintext will be stored and prepended to source in the next call to encrypt.

Overrides:
encrypt in class EncryptMode


Copyright 1997-2000 Logi Ragnarsson