屬性函式

屬性可以新增至憑證要求,以提供 憑證授權單位單位 (CA) ,以及建立和發行憑證時可以使用的其他資訊。

CertEnroll.dll實作下列介面來定義屬性和屬性集合:

下列各節會識別Xenroll.dll匯出的函式,以將密碼編譯屬性與憑證要求產生關聯,並討論如何使用 CertEnroll.dll 來取代函式,或指出兩個程式庫之間沒有任何對應存在:

addAttributeToRequestWStr

Xenroll.dll中的 addAttributeToRequestWStr 函式會將屬性新增至憑證要求。

一般而言,若要使用在 CertEnroll.dll 中實作的物件,將屬性新增至要求,您可以執行下列動作:

  1. 建立 IX509Attributes 集合物件。
  2. 建立 IX509Attribute 物件,並呼叫 Initialize 方法,從物件識別碼和屬性值建立屬性,或使用先前所列的任何介面來定義其中一個較常見的屬性。
  3. 使用Add方法,將上一個步驟中建立的每個新屬性新增至IX509Attributes集合。
  4. 建立 ICryptAttribute 物件,並在輸入上呼叫 InitializeFromValues 方法並指定 IX509Attributes 集合來初始化它。
  5. 在現有的IX509CertificateRequestPkcs10IX509CertificateRequestCmc要求物件上呼叫CryptAttributes屬性,以擷取ICryptAttributes集合物件。
  6. ICryptAttribute 物件新增至 ICryptAttributes 集合。

AddAuthenticatedAttributesToPKCS7Request

已驗證的屬性是由 簽署並新增至簽章的名稱/值組。 Xenroll.dll中的 AddAuthenticatedAttributesToPKCS7Request 函式會將已驗證屬性陣列新增至 PKCS #7 要求。

如上述 addAttributeToRequestWStr 函式所述,您可以使用CertEnroll.dll輕鬆地定義屬性集合,並將屬性集合新增至憑證要求。 不過,您無法選擇是否已驗證屬性。 註冊程式會自動做出此決策。

addNameValuePairToRequestWStr

Xenroll.dll中的 addNameValuePairToRequestWStr 函式會將未經驗證的名稱/值組新增至要求。

您可以使用 CertEnroll.dll 中的 IX509NameValuePair 介面來定義名稱/值組,而且您可以執行下列動作,將名稱/值組的集合新增至 CMC 要求物件:

  1. 建立並初始化 IX509CertificateRequestCmc 物件。 初始化程式會建立空的 IX509NameValuePairs 集合。
  2. 在現有的 CMC 要求物件上呼叫 NameValuePairs 屬性,以擷取集合。
  3. 建立並初始化 IX509NameValuePair 物件。
  4. 呼叫Add方法,將每個新的名稱/值組新增至IX509NameValuePairs集合。

註冊程式會將名稱/值組的集合放在 CMC 要求的 TaggedAttribute 結構中。

AddNameValuePairToSignatureWStr

Xenroll.dll中的 AddNameValuePairToSignatureWStr 函式會將已驗證的名稱/值組新增至要求。 這通常用來在註冊代表 (EOBO) 要求中指定要求者名稱。

在 CertEnroll.dll中,使用 RequesterName 屬性在 EOBO 要求中指定名稱。

ClientId

Xenroll.dll中的 ClientId 函式會指定或擷取 ClientId 屬性。

使用 CertEnroll.dll 中的 ClientId 屬性,將此屬性新增至 CMC 或 PKCS #10 要求。

RenewalCertificate

Xenroll.dll中的 RenewalCertificate 函式會指定或擷取 RenewalCertificate 屬性。

在CertEnroll.dll中,當您在 PKCS #7 或 PKCS ) 物件上呼叫 InitializeFromCertificate 時,會自動建立物件。

resetAttributes

Xenroll.dll中的 resetAttributes 函式會從要求中移除屬性集合。

若要使用 CertEnroll.dll 從要求中移除屬性,請在IX509Attributes集合上呼叫Remove方法。 若要從要求中移除所有屬性,請呼叫 Clear 方法。

將Xenroll.dll對應至CertEnroll.dll

ICryptAttribute

ICryptAttributes

IX509Attribute

IX509Attributes

IX509NameValuePair

IX509NameValuePairs