CertFindSubjectInCTL 函式 (wincrypt.h)

CertFindSubjectInCTL 函式會嘗試在憑證信任清單中尋找指定的主體, (CTL) 。 主體可以透過憑證的整個內容或憑證主體的任何唯一標識符來識別,例如憑證簽發者的SHA1 哈希 和序號。

語法

PCTL_ENTRY CertFindSubjectInCTL(
  [in] DWORD         dwEncodingType,
  [in] DWORD         dwSubjectType,
  [in] void          *pvSubject,
  [in] PCCTL_CONTEXT pCtlContext,
  [in] DWORD         dwFlags
);

參數

[in] dwEncodingType

指定使用的編碼類型。 目前只會使用X509_ASN_ENCODING和PKCS_7_ASN_ENCODING;不過,未來可能會新增其他編碼類型。 針對目前的編碼類型,請使用:

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。

[in] dwSubjectType

指定要在 CTL 中搜尋的主體類型。 可能是預設搜尋的 NULL

意義
CTL_CERT_SUBJECT_TYPE
pvSubject 數據類型: CERT_CONTEXT 結構的指標。

會檢查 CTL 的 SubjectAlgorithm ,以判斷主體身分識別的表示法。 一開始,僅支援 SHA1 和 MD5 哈希作為 SubjectAlgorithm 的值。 適當的哈希屬性是從 CERT_CONTEXT 結構取得。

CTL_ANY_SUBJECT_TYPE
pvSubject 數據類型: CTL_ANY_SUBJECT_INFO 結構的指標。

這個結構的 SubjectAlgorithm 成員必須符合 CTL 的演算法類型, 而 SubjectIdentifier 成員必須符合其中一個 CTL 專案。

 

憑證的哈希CTL_ANY_SUBJECT_INFO結構的 SubjectIdentifier 成員會用來作為搜尋主體專案的索引鍵。 索引鍵與專案的 SubjectIdentifier 之間會進行二進位記憶體比較。

如果 dwSubjectType 設定為上述值,就不會使用 dwEncodingType

[in] pvSubject

dwSubjectType 參數搭配使用的指標。

[in] pCtlContext

要搜尋 之CTL_CONTEXT 結構的指標。

[in] dwFlags

保留供日後使用,且必須為零。

傳回值

如果函式成功,如果找到傳回值,則傳回值為專案。

如果函式失敗,則傳回值為 NULL。 如需擴充錯誤資訊,請呼叫 GetLastError。 以下是一些可能的錯誤碼。

傳回碼 Description
CRYPT_E_NOT_FOUND
在 CTL 中找不到主體。
E_INVALIDARG
dwSubjectType 參數不是CTL_CERT_SUBJECT_TYPE或CTL_ANY_SUBJECT_TYPE。
NTE_BAD_ALGID
CTL 的 SubjectAlgorithm 成員未對應至 SHA1 或 MD5。

備註

憑證的哈希或CTL_ANY_SUBJECT_INFO結構的 SubjectIdentifier 成員會用來作為搜尋主體專案的索引鍵。 索引鍵與專案的 SubjectIdentifier 之間會進行二進位記憶體比較。

規格需求

需求
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

CERT_CONTEXT

CTL_ANY_SUBJECT_INFO

CTL_CONTEXT

CertFindCTLInStore

憑證和證書存儲維護函式