Chapter 2 Algorithm Info Types 29
AI_DES_CBCPadPEM
AI_DES_CBCPadPEM
Purpose:
This AI is similar to AI_DES_CBCPadIV8 except that it uses the format defined in the
Privacy Enhanced Mail protocol (PEM). This AI allows you to parse and create PEM
algorithm identifiers. First, you call B_SetAlgorithmInfo to initialize an algorithm
object from the encoded algorithm identifier that includes the initialization vector.
Alternatively, you call B_GetAlgorithmInfo with this AI to create an encoded
algorithm identifier from an algorithm object created using AI_DES_CBCPadPEM,
AI_DES_CBCPadIV8 or AI_DES_CBCPadBER. Also see AI_DES_CBCPadIV8.
Type of information this allows you to use:
an RFC 1423 identifier that specifies the DES-CBC With Padding encryption
algorithm as defined in FIPS PUB 46-1 and FIPS PUB 81, with padding scheme
defined in RFC 1423. This algorithm info type is intended to process the value of a
DEK-Info field in a PEM encapsulated header.
Format of info supplied to B_SetAlgorithmInfo:
pointer to a null-terminated string (char *) that gives the DES-CBC identifier and 8-
byte initialization vector, for example, “DES-CBC, 0123456789ABCDEF”. Space and tab
characters are removed from the string before it is copied to the algorithm object.
B_SetAlgorithmInfo returns BE_WRONG_ALGORITHM_INFO if the algorithm identifier
specifies an identifier other than DES-CBC.
Format of info returned by B_GetAlgorithmInfo:
pointer to a null-terminated string that gives the DES-CBC identifier and 8-byte
initialization vector.
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.