共用方式為


解碼CERT_INFO結構

指定憑證時,解碼憑證 BLOB 的第一個步驟是呼叫 CertCreateCertificateCoNtext,並將指標傳遞給編碼的憑證 (BLOB) 。 呼叫此函式時,它會建立編碼憑證的複本、建立類型 為 CERT_CONTEXT的結構,並 建立 CERT_INFO 類型的結構。 如下圖所示, 憑證內容 包含原始憑證 BLOBCERT_CONTEXT類型的 C 結構,以及 類型為 CERT_INFO的 C 結構。 CERT_CONTEXT結構的其中一個成員指向CERT_INFO結構,另一個指向編碼的憑證 BLOB。

憑證內容

編碼的物件 (資料成員) 一律會作為 CryptDecodeObject 函式的輸入提供,而輸出則是 C 結構,視您到進程的程度而定。

有一個其他成員需要一些解碼,也就是 Extension 成員。 雖然它不是在 CERT_INFO 層級編碼,但它確實包含一些編碼的資訊。 若要解碼此資訊,請繼續進行,如下圖所示。

解碼資訊

CERT_INFO 結構中,成員 rgExtensionCERT_EXTENSION 結構的陣列指標。 每個 CERT_EXTENSION 結構都有 一個值 成員,其格式為編碼,且必須解碼。 Value成員會傳遞至CryptDecodeObject函式,然後函式的輸出取決於pszObjId成員的值。 請注意,在圖例中會產生兩個不同的結構,其中一種是類型 CERT_BASIC_CONSTRAINTS_INFO ,另一種是類型 CERT_AUTHORITY_KEY_ID_INFO,視 pszObjId的值而定。