簽署資料的程式
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輸出參數的位址,以及適當地傳遞其他參數的值。