|
QuickCrypt Library |
C++ Interface |
|
CCBCMode::CCBCMode
CCBCMode( SL_CIPHER_DIR dir, const
unsigned char* pIV, const unsigned char* pKey,
unsigned int nKeyLen = DEFAULTKEYSIZE, bool bPadded
= true );
Parameters
dir
[in]
Cipher direction. It can
be
SLC_ENCRYPT or
SLC_DECRYPT.
pIV
[in] Pointer to the
initialization vector.
pKey
[in] Pointer to the secret
key.
nKeyLen
[in] Length in bytes of the
secret key.
bPadded
[in] Padding flag. If the
memory block that has to be processed is shorter than
CCBCMode<T>::BLOCKSIZE bytes and bPadded is true than
the padding string is appended to the end of the block. The complementary length
of the last block will be used as the padding
character. If bPadded is false, no
padding is done.
Remarks
Constructs a CCBCMode object and
initializes it with the initialization vector pointed by pIV, and
the secret key pointed by
pKey.
Notes.
-
The first
CCBCMode<T>::BLOCKSIZE
bytes of the memory
buffer pointed by pIV are
used as the initialization vector.
-
nKeyLen can be
CCBCMode<T>::DEFAULTKEYKSIZE
bytes. For Rijndael (AES) algorithm it can also be
24 or 32 bytes. For Blowfish algorithm it can be in the range 1 through
72 bytes.
The CCBCMode object is initialized for encryption if dir is
SLC_ENCRYPT, or it is initialized for decryption if dir is
SLC_DECRYPT.
Example
//Define the key
char key[CDES::DEFAULTKEYSIZE] =
{
'p', 'a', 's', 's', 'w', 'o', 'r', 'd'
};
//Define the initialization vector
unsigned char iv[CDES::BLOCKSIZE] =
{
0x41, 0x3E, 0xF0, 0xA1, 0xC6, 0x11, 0xE5, 0x50
};
//Declare a local CCBCMode object that will use DES encryption algorithm
CCBCMode<CDES> cipher( SLC_ENCRYPT, iv, (const unsigned char*)key );
//Declare a dynamic CCBCMode object that will use the DES encryption algorithm
CCBCMode<CDES>* pCipher = new CCBCMode<CDES>( SLC_DECRYPT, iv, (const unsigned char*)key );
|
|
CCBCMode Overview
| Class Members
| Useful Links
See Also CCBCMode::ProcessBlock, CCBCMode::ProcessLastBlock, CCBCMode::Process
|