爲了在不同體系結構的網絡和計算機之間交互加密消息,加密通信各方需要對傳送的消息使用標準的方式進行編碼。
CryptAPI支持PKCS #7標準加密消息語法格式消息。PKCS #7標準採用了CCITT X.208定義的ASN.1 BER編碼規則,定義了加密消息相關的類型和編碼方式。
使用CryptAPI進行加密消息編碼的基本步驟如下:
- 初始化消息類型相關的數據結構。
- 調用CryptMsgOpenToEncode,獲得消息句柄。
- 調用CryptMsgUpdate填入數據,此函數可以調用多次,直到此消息的所有數據被填寫完畢。最後一次調用應將 fFinal 參數設置爲TRUE。
- 調用CryptMsgGetParam獲取需要的編碼結果。
- 調用CryptMsgClose關閉消息。
解碼的基本步驟如下:
- 使用CryptMsgCalculateEncodedLength確定消息解碼所需要的使用的緩衝區長度。
- 調用CryptMsgOpenToDecode,獲得消息句柄。
- 調用CryptMsgUpdate填入數據,此函數可以調用多次,直到此消息的所有數據被填寫完畢。
- 調用CryptMsgControl進行解密或驗證簽名之類的附加處理。
- 調用CryptMsgGetParam獲取需要的解碼結果。
- 調用CryptMsgClose關閉消息。