public final class RC2 extends BlockCipher
Note that keys can be anywhere from 1 to 128 bytes long.
There is an additional parameter for this algorithm, the effective key length, which can be specified with the appropriate initialize
method. By default, it is equal to the number of bits in the user-specified key.
blockSize, iv, paddingID
Constructor and Description |
---|
RC2()
Creates an uninitialized RC2 instance.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
algName()
Returns the name of the algorithm.
|
protected void |
decryptBlock(byte[] input, int inOff, byte[] output, int outOff)
Performs the block cipher's basic decryption operation on one block of ciphertext placing the result in the output buffer.
|
protected void |
encryptBlock(byte[] input, int inOff, byte[] output, int outOff)
Performs the block cipher's basic encryption operation on one block of plaintext placing the result in the output buffer.
|
void |
erase()
Erases any sensitive information stored in this BlockCipher object.
|
AlgorithmIdentifier |
getAlgID()
Builds an AlgorithmIdentifier that is a "snapshot" of the Cipher's current configuration.
|
int |
getEffectiveKeyLength()
Returns the effective key length.
|
void |
initialize(AlgorithmIdentifier algID, SymmetricKey key, Padding.ID paddingID, RandomBitsSource rbs)
This method verifies the AlgorithmIdentifier's Object ID and configures the RC2 instance appropriately with the params of the AlgorithmIdentifier in addition to the SymmetricKey and padding identifier.
|
java.lang.String |
toString()
Returns a description of this RC2 cipher.
|
decrypt, decrypt, encrypt, encrypt, getBlockSize, getIV, getPaddingID, initialize, setIV, unwrapPrivateKey, unwrapSymmetricKey, wrapKey, wrapKey
assertDecryption, assertEncryption, assertKeyUnwrap, assertKeyWrap, cloneKey, decodeOp, decrypt, decrypt, decrypt, encodeOp, encrypt, encrypt, encrypt, finalize, getInstance, getInstance, getInstance, getInstance, getInstance, getInstance, getMode, initialize, initialize, releaseOp
public RC2()
public void initialize(AlgorithmIdentifier algID, SymmetricKey key, Padding.ID paddingID, RandomBitsSource rbs) throws AlgorithmIdentifierException, InvalidKeyException, CipherException
initialize
in class Cipher
algID
- is the AlgorithmIdentifier whose params will be used to configure the cipher.key
- is the SymmetricKey instance that will be used by the cipher internally.paddingID
- is used to indicate the type of padding that the Cipher should use. Options are Padding.NONE or Padding.PKCS5. A Cipher must be re-initialized before being used with the other Padding type.rbs
- is the RandomBitsSourfce to use in this cipher.AlgorithmIdentifierException
- is thrown if the algID's OID isn't valid for the Cipher instance being initialized or if the params are not valid for the algID's OID.InvalidKeyException
- is thrown if there is a problem with the Key instance the Cipher is being initialized with.CipherException
- is thrown if there's a problem initializing the Cipher with the given parameters.protected void decryptBlock(byte[] input, int inOff, byte[] output, int outOff) throws CipherException
BlockCipher
decryptBlock
in class BlockCipher
input
- Buffer in which data to be decrypted is stored.inOff
- Offset within input buffer of the start of data.output
- Buffer to place the decrypted bytes inoutOff
- Offset within output buffer where the encrypted bytes will be stored.CipherException
- If the Cipher is not initialized, length of data is not equal to the block size, etc.protected void encryptBlock(byte[] input, int inOff, byte[] output, int outOff) throws CipherException
BlockCipher
encryptBlock
in class BlockCipher
input
- Buffer in which data to be encrypted is storedinOff
- Offset within input buffer of the start of dataoutput
- Buffer to place the encrypted bytes inoutOff
- Offset within output buffer where the encrypted bytes will be storedCipherException
- If the Cipher is not initialized, length of data is not equal to the block size, etc.public java.lang.String algName()
public void erase()
BlockCipher
erase
in class BlockCipher
public AlgorithmIdentifier getAlgID()
Cipher
Altering this AlgorithmIdentifier will have no effect on the state of the Cipher.
public int getEffectiveKeyLength()
public java.lang.String toString()
toString
in class java.lang.Object