共用方式為


使用 CCL 驗證已簽署的訊息

使用 憑證信任清單 (CCL) 的其中一個優點是,應用程式可以針對受信任的憑證自動驗證已簽署的訊息,而不需對使用者加上對話方塊。 它也會提供信任的網路系統管理員控制來源。

下列程式可用來使用 CTL 來驗證已簽署訊息的簽章。

使用 CTL 驗證已簽署的訊息

  1. 解碼訊息,如下所示:

    1. 取得所接收訊息的指標, (編碼的 BLOB) 。
    2. 呼叫 CryptMsgOpenToDecode,傳遞必要的引數。
    3. 呼叫 CryptMsgUpdate 一次,傳入步驟 b 中擷取的控制碼,以及要解碼之資料的指標。 這會根據訊息類型,對訊息採取適當的動作。
  2. 確認已解碼、已簽署訊息的簽章,並取得簽署者 CERT_CONTEXT的指標。

    這可以藉由呼叫 CryptMsgGetAndVerifySigner來完成,傳遞步驟 1c 中所擷取的訊息控制碼做為 hCryptMsg 參數 。 如果函式呼叫傳回TRUE,則會在ppSigner參數中傳回簽章,並傳回簽署者PCCERT_CONTEXT的指標。

  3. 確認簽署者是受信任的來源,如下所示:

    1. 開啟包含適當 CTL 的憑證存放區。
    2. 呼叫CertFindCTLInStore以取得CTL_CONTEXT指標。
    3. 若要確認簽署者是受信任的來源,請呼叫CertFindSubjectInCTL,傳遞在 pCtlCoNtext參數中上一個步驟中擷取的指標,CTL_CERT_SUBJECT_TYPE dwSubjectType參數中,以及pvSubject參數中擷取之CERT_CONTEXT的指標。 如果函式呼叫傳回 TRUE,則傳遞至函式 的CERT_CONTEXT 是 CTL 中受信任的來源。