Skip navigation links

Oracle Security Developer Tools Crypto FIPS Java API Reference
11g (11.1.1)

E10696-02


oracle.security.crypto.core
Class DES_EDE

java.lang.Object
  extended by oracle.security.crypto.core.Coder
      extended by oracle.security.crypto.core.Cipher
          extended by oracle.security.crypto.core.BlockCipher
              extended by oracle.security.crypto.core.DES_EDE


public final class DES_EDE
extends BlockCipher

The DES cipher in Encrypt-Decrypt-Encrypt mode, also known as "Triple DES" or "3DES", as defined in FIPS 46-3 and FIPS 81.

Triple DES is a symmetric cipher using a 168-bit key (plus 24 parity bits) to encrypt and decrypt 64-bit blocks.

See Also:
DES

Field Summary

 

Fields inherited from class oracle.security.crypto.core.BlockCipher
blockSize, iv, paddingID

 

Fields inherited from class oracle.security.crypto.core.Cipher
CBC, ECB, key, mode, rbs

 

Constructor Summary
DES_EDE()
          Creates an uninitialized DES_EDE instance.

 

Method Summary
 java.lang.String algName()
          Returns the name of the algorithm which this coder implements.
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.
 void initialize(AlgorithmIdentifier algID, SymmetricKey key, Padding.ID paddingID, RandomBitsSource rbs)
          This method verifies the AlgorithmIdentifier's Object ID and configures the DES_EDE instance appropriately with the params of the AlgorithmIdentifier in addition to the SymmetricKey and padding identifier.
 java.lang.String toString()
          Returns the algorithm name of this cipher.

 

Methods inherited from class oracle.security.crypto.core.BlockCipher
decrypt, decrypt, encrypt, encrypt, getBlockSize, getIV, getPaddingID, initialize, setIV, unwrapPrivateKey, unwrapSymmetricKey, wrapKey, wrapKey

 

Methods inherited from class oracle.security.crypto.core.Cipher
assertDecryption, assertEncryption, assertKeyUnwrap, assertKeyWrap, cloneKey, decodeOp, decrypt, decrypt, decrypt, encodeOp, encrypt, encrypt, encrypt, finalize, getInstance, getInstance, getInstance, getInstance, getInstance, getInstance, getMode, initialize, initialize, releaseOp

 

Methods inherited from class oracle.security.crypto.core.Coder
decode, decode, encode, encode

 

Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait

 

Constructor Detail

DES_EDE

public DES_EDE()
Creates an uninitialized DES_EDE instance. To use the Cipher, it must be initialized with a Key and algorithm parameters, usually in the form of an AlgorithmIdentifier.

Method Detail

initialize

public void initialize(AlgorithmIdentifier algID,
                       SymmetricKey key,
                       Padding.ID paddingID,
                       RandomBitsSource rbs)
                throws AlgorithmIdentifierException,
                       InvalidKeyException,
                       CipherException
This method verifies the AlgorithmIdentifier's Object ID and configures the DES_EDE instance appropriately with the params of the AlgorithmIdentifier in addition to the SymmetricKey and padding identifier.
Overrides:
initialize in class Cipher
Parameters:
algID - The AlgorithmIdentifier whose params will be used to configure the cipher.
key - The SymmetricKey instance that will be used by the cipher internally.
paddingID - 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 - The RandomBitsSourfce to use in this cipher.
Throws:
AlgorithmIdentifierException - 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 - If there is a problem with the Key instance the Cipher is being initialized with.
CipherException - If there's a problem initializing the Cipher with the given parameters.

decryptBlock

protected void decryptBlock(byte[] input,
                            int inOff,
                            byte[] output,
                            int outOff)
                     throws CipherException
Description copied from class: BlockCipher
Performs the block cipher's basic decryption operation on one block of ciphertext placing the result in the output buffer. Mode and padding operations are not applied.
Specified by:
decryptBlock in class BlockCipher
Parameters:
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 in
outOff - Offset within output buffer where the encrypted bytes will be stored.
Throws:
CipherException - If the Cipher is not initialized, length of data is not equal to the block size, etc.

encryptBlock

protected void encryptBlock(byte[] input,
                            int inOff,
                            byte[] output,
                            int outOff)
                     throws CipherException
Description copied from class: BlockCipher
Performs the block cipher's basic encryption operation on one block of plaintext placing the result in the output buffer. Mode and padding operations are not applied.
Specified by:
encryptBlock in class BlockCipher
Parameters:
input - Buffer in which data to be encrypted is stored
inOff - Offset within input buffer of the start of data
output - Buffer to place the encrypted bytes in
outOff - Offset within output buffer where the encrypted bytes will be stored
Throws:
CipherException - If the Cipher is not initialized, length of data is not equal to the block size, etc.

algName

public java.lang.String algName()
Description copied from class: Coder
Returns the name of the algorithm which this coder implements.
Specified by:
algName in class Coder

erase

public void erase()
Description copied from class: BlockCipher
Erases any sensitive information stored in this BlockCipher object.
Overrides:
erase in class BlockCipher

getAlgID

public AlgorithmIdentifier getAlgID()
Description copied from class: Cipher
Builds an AlgorithmIdentifier that is a "snapshot" of the Cipher's current configuration.

Altering this AlgorithmIdentifier will have no effect on the state of the Cipher.

Specified by:
getAlgID in class Cipher
Returns:
A newly constructed AlgorithmIdentifier that is a "snapshot" of the Cipher's current configuration.

toString

public java.lang.String toString()
Returns the algorithm name of this cipher.
Overrides:
toString in class java.lang.Object

Skip navigation links

Oracle Security Developer Tools Crypto FIPS Java API Reference
11g (11.1.1)

E10696-02


Copyright © 2005, 2009, Oracle. All rights reserved.