A SERVICE OF

logo

Chapter 2 Algorithm Info Types 19
AI_CBC_IV8
AI_CBC_IV8
Purpose:
This AI allows you to change the initialization vector (IV) for a CBC-mode cipher
without creating a new algorithm object or binding in a new key. This increases the
performance of applications that have a long-lived symmetric key (for example, a DES
key) used to encrypt many blocks or messages, each with a unique IV.
Type of information this allows you to use:
a new 8-byte initialization vector for an existing CBC algorithm object previously
initialized with one of the following AIs:
AI_DES_CBC_IV8, AI_DES_CBCPadIV8, AI_DES_CBCPadBER, AI_DES_CBCPadPEM,
AI_DES_EDE3_CBC_IV8, AI_DES_EDE3_CBCPadIV8, AI_DES_EDE3_CBCPadBER,
AI_DESX_CBC_IV8, AI_DESX_CBCPadIV8, AI_DESX_CBCPadBER, AI_RC2_CBC,
AI_RC2_CBCPad, AI_RC2_CBCPadBER, AI_RC2_CBCPadPEM, AI_RC5_CBC, and
AI_RC5_CBCPad.
Format of info supplied to B_SetAlgorithmInfo:
pointer to an 8-byte unsigned char array containing the new initialization vector.
This new initialization vector will not affect the current algorithm object until the next
call to
B_EncryptInit, B_EncryptFinal, B_DecryptInit, or B_DecryptFinal.
After the new IV takes effect on the algorithm object, any results from a previous call
to
B_GetAlgorithmInfo on the algorithm object are undefined.
Format of info returned by B_GetAlgorithmInfo:
B_GetAlgorithmInfo is not supported for AI_CBC_IV8.
Crypto-C procedures to use with algorithm object:
B_SetAlgorithmInfo.