屬性函式
屬性可以新增至憑證要求,以提供 憑證授權單位單位 (CA) ,以及建立和發行憑證時可以使用的其他資訊。
CertEnroll.dll實作下列介面來定義屬性和屬性集合:
- ICryptAttribute
- ICryptAttributes
- IX509Attribute
- IX509Attributes
- IX509AttributeClientId
- IX509AttributeExtensions
- IX509AttributeArchiveKey
- IX509AttributeArchiveKeyHash
- IX509AttributeCspProvider
- IX509AttributeOSVersion
- IX509AttributeRenewalCertificate
下列各節會識別Xenroll.dll匯出的函式,以將密碼編譯屬性與憑證要求產生關聯,並討論如何使用 CertEnroll.dll 來取代函式,或指出兩個程式庫之間沒有任何對應存在:
- addAttributeToRequestWStr
- AddAuthenticatedAttributesToPKCS7Request
- addNameValuePairToRequestWStr
- AddNameValuePairToSignatureWStr
- ClientId
- RenewalCertificate
- resetAttributes
- 相關主題
addAttributeToRequestWStr
Xenroll.dll中的 addAttributeToRequestWStr 函式會將屬性新增至憑證要求。
一般而言,若要使用在 CertEnroll.dll 中實作的物件,將屬性新增至要求,您可以執行下列動作:
- 建立 IX509Attributes 集合物件。
- 建立 IX509Attribute 物件,並呼叫 Initialize 方法,從物件識別碼和屬性值建立屬性,或使用先前所列的任何介面來定義其中一個較常見的屬性。
- 使用Add方法,將上一個步驟中建立的每個新屬性新增至IX509Attributes集合。
- 建立 ICryptAttribute 物件,並在輸入上呼叫 InitializeFromValues 方法並指定 IX509Attributes 集合來初始化它。
- 在現有的IX509CertificateRequestPkcs10或IX509CertificateRequestCmc要求物件上呼叫CryptAttributes屬性,以擷取ICryptAttributes集合物件。
- 將 ICryptAttribute 物件新增至 ICryptAttributes 集合。
AddAuthenticatedAttributesToPKCS7Request
已驗證的屬性是由 簽署並新增至簽章的名稱/值組。 Xenroll.dll中的 AddAuthenticatedAttributesToPKCS7Request 函式會將已驗證屬性陣列新增至 PKCS #7 要求。
如上述 addAttributeToRequestWStr 函式所述,您可以使用CertEnroll.dll輕鬆地定義屬性集合,並將屬性集合新增至憑證要求。 不過,您無法選擇是否已驗證屬性。 註冊程式會自動做出此決策。
addNameValuePairToRequestWStr
Xenroll.dll中的 addNameValuePairToRequestWStr 函式會將未經驗證的名稱/值組新增至要求。
您可以使用 CertEnroll.dll 中的 IX509NameValuePair 介面來定義名稱/值組,而且您可以執行下列動作,將名稱/值組的集合新增至 CMC 要求物件:
- 建立並初始化 IX509CertificateRequestCmc 物件。 初始化程式會建立空的 IX509NameValuePairs 集合。
- 在現有的 CMC 要求物件上呼叫 NameValuePairs 屬性,以擷取集合。
- 建立並初始化 IX509NameValuePair 物件。
- 呼叫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 方法。
相關主題