AI_RC5_CBC
196 RSA BSAFE Crypto-C Library Reference Manual
AI_RC5_CBC
Purpose:
This AI allows you to perform RC5 encryption and decryption in CBC mode with an
8-byte initialization vector and a variable number of rounds, as defined in RFC 2040.
Since AI_RC5_CBC does not pad, the total number of input bytes must be a multiple of
8 bytes. See AI_RC5_CBCPad for the same algorithm with padding.
Other algorithms that can be used for encryption/decryption in CBC mode without
padding are AI_DES_CBC_IV8, AI_DES_EDE3_CBC_IV8, AI_DESX_CBC_IV8, and
AI_RC2_CBC.
Type of information this allows you to use:
a version number, a rounds count, a word size, and an 8-byte initialization vector for
the RC5 32/r/b CBC encryption algorithm.
Note: To implement the RC5 cipher with a word size other than 32 bits, you should
use AI_FeedbackCipher.
Format of info supplied to B_SetAlgorithmInfo:
pointer to an A_RC5_CBC_PARAMS structure:
Format of info returned by B_GetAlgorithmInfo:
pointer to an A_RC5_CBC_PARAMS structure (see above).
Crypto-C procedures to use with algorithm object:
B_EncryptInit, B_EncryptUpdate, B_EncryptFinal, B_DecryptInit,
B_DecryptUpdate, and B_DecryptFinal. You may pass (B_ALGORITHM_OBJ)NULL_PTR
for all
randomAlgorithm
arguments.
typedef struct {
unsigned int version; /* currently 1.0 defined 0x10 */
unsigned int rounds; /* number of rounds (0 - 255) */
unsigned int wordSizeInBits; /* AI_RC5_CBC requires 32 */
unsigned char *iv; /* initialization vector (8 bytes) */
} A_RC5_CBC_PARAMS;