使用 CCL 驗證已簽署的訊息
使用 憑證信任清單 (CCL) 的其中一個優點是,應用程式可以針對受信任的憑證自動驗證已簽署的訊息,而不需對使用者加上對話方塊。 它也會提供信任的網路系統管理員控制來源。
下列程式可用來使用 CTL 來驗證已簽署訊息的簽章。
使用 CTL 驗證已簽署的訊息
解碼訊息,如下所示:
- 取得所接收訊息的指標, (編碼的 BLOB) 。
- 呼叫 CryptMsgOpenToDecode,傳遞必要的引數。
- 呼叫 CryptMsgUpdate 一次,傳入步驟 b 中擷取的控制碼,以及要解碼之資料的指標。 這會根據訊息類型,對訊息採取適當的動作。
確認已解碼、已簽署訊息的簽章,並取得簽署者 CERT_CONTEXT的指標。
這可以藉由呼叫 CryptMsgGetAndVerifySigner來完成,傳遞步驟 1c 中所擷取的訊息控制碼做為 hCryptMsg 參數 。 如果函式呼叫傳回TRUE,則會在ppSigner參數中傳回簽章,並傳回簽署者PCCERT_CONTEXT的指標。
確認簽署者是受信任的來源,如下所示:
- 開啟包含適當 CTL 的憑證存放區。
- 呼叫CertFindCTLInStore以取得CTL_CONTEXT指標。
- 若要確認簽署者是受信任的來源,請呼叫CertFindSubjectInCTL,傳遞在 pCtlCoNtext參數中上一個步驟中擷取的指標,CTL_CERT_SUBJECT_TYPE dwSubjectType參數中,以及pvSubject參數中擷取之CERT_CONTEXT的指標。 如果函式呼叫傳回 TRUE,則傳遞至函式 的CERT_CONTEXT 是 CTL 中受信任的來源。