簽署資料的程式

CryptSignMessage單一函式會執行建立已簽署訊息中列出的所有工作。 不過,仍需要初始化結構和其他資料。 下圖顯示指向結構或陣列及其初始化資料之函式參數之間的關聯性。 此圖只顯示衍生自其他結構或函式的函式參數和結構成員。 其餘的參數都是直接的初始化。

cryptsignmessage 呼叫的初始化對應

使用 CryptSignMessage 簽署資料

  1. 取得要簽署之資料的指標。
  2. 將指標指派給資料,以索引零「要簽署的資料」陣列。
  3. 取得密碼編譯提供者的控制碼。
  4. 開啟包含簽署者憑證的 憑證存放區
  5. 取得簽署者憑證的位址。
  6. 將憑證的位址指派給 MsgCert 陣列的零索引。
  7. 將訊息中包含的任何其他憑證位址指派給 MsgCert 陣列。
  8. 初始化 CRYPT_ALGORITHM_IDENTIFIER 結構,並視需要將 pszObjId 成員初始化為所需的雜湊演算法和其他成員。
  9. 初始化 CRYPT_SIGN_MESSAGE_PARA 結構、將 pSigningCert 成員初始化為簽署者憑證的位址、 將 MsgCert 陣列成員初始化為簽署者和其他憑證的位址、 將 HashAlgorithm 成員初始化為 CRYPT_ALGORITHM_IDENTIFIER 結構的位址,以及適當地將其他成員初始化。
  10. 呼叫CryptSignMessage函式、傳遞pSignPara參數的CRYPT_SIGN_MESSAGE_PARA結構、rgpbToBeSigned參數的「要簽署的資料」陣列位址、pbSignedBlob輸出參數的位址,以及適當地傳遞其他參數的值。