驗證已簽署的訊息
這些步驟會驗證已簽署資料的簽章。 下圖描述必須完成的個別工作,如下列清單所示。
驗證已簽署訊息的簽章
取得已簽署訊息的指標。
開啟 憑證存放區。
使用訊息中包含的簽署者識別碼,取得寄件者的憑證,並取得其公開金鑰的句 柄。
除了步驟 2 和 3,您可以使用訊息中包含的憑證來擷取簽署者的公開金鑰。
使用簽署者的公開金鑰,解密數位簽章,產生訊息中資料的原始摘要。
使用訊息中包含的雜湊演算法, 雜湊 訊息中包含的資料,產生新的摘要。
比較從訊息擷取的摘要與剛建立的新摘要。
如果兩個摘要相符,則會驗證簽章。 這表示用來簽署資料的 私密金鑰 符合只用來解密簽章的公開金鑰,而且資料自資料簽署後尚未變更。
如果兩個摘要不相符,則不會驗證簽章,而且私密金鑰/公開金鑰不相符,或資料自資料簽署後已變更,或兩者皆已變更。
CryptVerifyMessageSignature單一函式可用來驗證簽章,如下列程式所示。
驗證已簽署的訊息
- 取得已簽署訊息的指標。
- 取得已簽署訊息的大小。
- 取得密碼編譯提供者的控制碼。
- 初始化 CRYPT_VERIFY_MESSAGE_PARA 結構。
- 呼叫 CryptVerifyMessageSignature 來驗證簽章。
實作此程式的程式碼包含在 範例 C 程式中:簽署訊息和驗證訊息簽章。