驗證已簽署的訊息

這些步驟會驗證已簽署資料的簽章。 下圖描述必須完成的個別工作,如下列清單所示。

驗證已簽署的訊息

驗證已簽署訊息的簽章

  1. 取得已簽署訊息的指標。

  2. 開啟 憑證存放區

  3. 使用訊息中包含的簽署者識別碼,取得寄件者的憑證,並取得其公開金鑰的句

    除了步驟 2 和 3,您可以使用訊息中包含的憑證來擷取簽署者的公開金鑰。

  4. 使用簽署者的公開金鑰,解密數位簽章,產生訊息中資料的原始摘要。

  5. 使用訊息中包含的雜湊演算法, 雜湊 訊息中包含的資料,產生新的摘要。

  6. 比較從訊息擷取的摘要與剛建立的新摘要。

  7. 如果兩個摘要相符,則會驗證簽章。 這表示用來簽署資料的 私密金鑰 符合只用來解密簽章的公開金鑰,而且資料自資料簽署後尚未變更。

    如果兩個摘要不相符,則不會驗證簽章,而且私密金鑰/公開金鑰不相符,或資料自資料簽署後已變更,或兩者皆已變更。

CryptVerifyMessageSignature單一函式可用來驗證簽章,如下列程式所示。

驗證已簽署的訊息

  1. 取得已簽署訊息的指標。
  2. 取得已簽署訊息的大小。
  3. 取得密碼編譯提供者的控制碼。
  4. 初始化 CRYPT_VERIFY_MESSAGE_PARA 結構。
  5. 呼叫 CryptVerifyMessageSignature 來驗證簽章。

實作此程式的程式碼包含在 範例 C 程式中:簽署訊息和驗證訊息簽章