共用方式為


編碼CERT_INFO結構

編碼程式是解碼 CERT_INFO結構中所述解碼程式的反向。 例如,下列程式會將編碼 的簽發者 新增至 CERT_INFO 結構。 另請參閱遵循程式的圖例。

將編碼簽發者新增至CERT_INFO結構

  1. 建立包含要使用的簽發者名稱的字串。
  2. 建立 CERT_RDN_ATTR 結構的陣列,這會初始化為包含剛建立之簽發者名稱字串的適當資訊。
  3. 建立 CERT_RDN 結構的陣列,其中一個結構具有剛初始化 之CERT_RDN_ATTR 結構陣列的相關資訊。
  4. 建立具有剛建立之CERT_RDN結構陣列指標的CERT_NAME_INFO結構。
  5. 呼叫 CryptEncodeObject 以取得輸出編碼 BLOB 的大小,並傳遞您剛才建立 之CERT_NAME_INFO 結構的位址。
  6. 為輸出編碼的 BLOB 配置記憶體。
  7. 再次呼叫 CryptEncodeObject ,傳遞相同的資訊,但現在將它傳遞給剛配置的記憶體位址。
  8. CERT_INFO結構的Issuer.cbData成員設定為步驟 5 中傳回的大小,並將Issuer.pbData成員設定為步驟 6 中取得的位址。 編碼的 簽發者 BLOB 現在位於該處。

adding an encoded issuer to a cert-info structure

若要初始化和編碼某些憑證延伸模組資訊,請使用下列程式。 另請參閱遵循程式的圖例。

將編碼延伸模組資訊新增至CERT_INFO結構

  1. 建立並初始化延伸模組資訊結構,在此範例中,它是 CERT_BASIC_CONSTRAINTS_INFO 結構。
  2. 呼叫 CryptEncodeObject,將它傳遞剛建立的結構位址,以取得輸出編碼 BLOB 的大小。
  3. 為輸出編碼的 BLOB 配置記憶體。
  4. 再次呼叫 CryptEncodeObject ,傳遞相同的資訊,但現在會傳入配置記憶體的位址。
  5. 建立 CERT_EXTENSION 結構的陣列。
  6. 初始化其中一個 CERT_EXTENSION 結構,讓 pszObjIdValue中所含資料的適當字串,而 Value 包含從呼叫 CryptEncodeObject輸出的加密資料 BLOB。
  7. 初始化CERT_INFO結構的rgExtension成員,以指向CERT_EXTENSION結構的陣列。

adding encoded extension information to a cert-info structure