簽署數據的程式
單一函式 CryptSignMessage會執行 建立簽署訊息中列出的所有工作。 不過,仍然需要結構和其他數據的初始化。 下圖顯示指向結構或陣列及其初始化數據之函式參數之間的關聯性。 此圖僅顯示衍生自其他結構或函式的函式參數和結構成員。 其餘的參數都是簡單的初始化。
針對呼叫 cryptsignmessage初始化對應圖
使用 CryptSignMessage 來簽署數據
- 取得要簽署之數據的指標。
- 將指標指派給「要簽署的數據」陣列的索引零。
- 取得加密提供者的控制代碼。
- 開啟 證書存儲,其中包含簽署者的憑證。
- 取得簽署者憑證的位址。
- 將憑證的位址指派給 msgCert 陣列 的零索引。
- 將任何其他憑證的位址指派給要隨附訊息的 MsgCert 陣列。
- 初始化 CRYPT_ALGORITHM_IDENTIFIER 結構,並視需要將 pszObjId 成員初始化為所需的哈希演算法和其他成員。
- 初始化 CRYPT_SIGN_MESSAGE_PARA 結構,將 pSigningCert 成員初始化為簽署者的憑證位址、MsgCert 陣列成員初始化為簽署者和其他憑證的位址、HashAlgorithm 成員初始化為 CRYPT_ALGORITHM_IDENTIFIER 結構的位址,以及其他成員根據需要進行初始化。
- 呼叫 CryptSignMessage 函式,傳遞用於 pSignPara 參數的 CRYPT_SIGN_MESSAGE_PARA 結構、「要簽署的數據」數組的位址作為 rgpbToBeSigned 參數、pbSignedBlob 輸出參數的位址,以及其他適當的參數值。