Only CryptDecryptMessage is needed to accomplish all of the tasks listed in the previous section. Initialization of structures and other data is necessary first. The following illustration shows the relationship between those function parameters that point to structures or arrays and their initialized data.

 To decrypt data using CryptDecryptMessage
    To decrypt data using CryptDecryptMessage