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.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 |
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.
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