密碼編譯服務提供者函式

下列各節會識別Xenroll.dll匯出的函式,可用來管理密碼編譯提供者。 每個主題也會討論如何使用 CertEnroll.dll 來取代 函式,或指出兩個程式庫之間沒有任何對應存在:

EnumAlgs

Xenroll.dll中的 EnumAlgs 函式會擷取密碼編譯演算法集合。

使用CertEnroll.dll時,您可以執行下列動作來擷取 密碼編譯服務提供者 所支援演算法的相關資訊, (CSP) :

  1. 在現有的IX509Enrollment物件上呼叫Request屬性。
  2. 在步驟 1 傳回的要求上呼叫 GetInnerRequest 方法,以擷取最內層的要求。
  3. 在步驟 2 傳回的IX509CertificateRequest物件上呼叫QueryInterface,以轉換成IX509CertificateRequestPkcs10物件。
  4. 在 PKCS #10 要求上呼叫 PrivateKey 屬性。
  5. 在從步驟 4 擷取的IX509PrivateKey物件上呼叫CspInformations屬性。
  6. 在步驟 5 中所擷取的ICspInformations集合中,呼叫特定ICspInformation物件上的 CspAlgorithms屬性。

enumContainersWStr

Xenroll.dll中的 enumContainersWStr 函式會依索引從集合中擷取索引鍵容器。

CertEnroll.dll程式庫不會直接實作這項功能。

enumProvidersWStr

Xenroll.dll中的 enumProvidersWStr 函式會依索引從集合中擷取 CSP。

使用CertEnroll.dll時,您可以執行下列動作來擷取密碼編譯容器的集合:

  1. 在現有的IX509Enrollment物件上呼叫Request屬性。
  2. 在步驟 1 傳回的要求上呼叫 GetInnerRequest 方法,以擷取最內層的要求。
  3. 在步驟 2 傳回的IX509CertificateRequest物件上呼叫QueryInterface,以轉換成IX509CertificateRequestPkcs10物件。
  4. 在 PKCS #10 要求上呼叫 PrivateKey 屬性。
  5. 在從步驟 4 擷取的IX509PrivateKey物件上呼叫CspInformations屬性。

GetAlgNameWStr

Xenroll.dll中的 GetAlgNameWStr 函式會擷取 密碼編譯演算法的名稱。

使用CertEnroll.dll時,您可以執行下列動作來擷取演算法名稱:

  1. 在現有的IX509Enrollment物件上呼叫Request屬性。
  2. 在步驟 1 傳回的要求上呼叫 GetInnerRequest 方法,以擷取最內層的要求。
  3. 在步驟 2 傳回的IX509CertificateRequest物件上呼叫QueryInterface,以轉換成IX509CertificateRequestPkcs10物件。
  4. 在 PKCS #10 要求上呼叫 PrivateKey 屬性。
  5. IX509PrivateKey物件上呼叫Algorithm屬性,以擷取演算法物件識別碼。
  6. IObjectId介面上呼叫FriendlyName屬性,以擷取演算法顯示名稱。

getProviderTypeWStr

Xenroll.dll中的 getProviderTypeWStr 函式會擷取密碼編譯提供者類型。

使用CertEnroll.dll時,您可以執行下列動作來擷取提供者類型:

  1. 在現有的IX509Enrollment物件上呼叫Request屬性。
  2. 在步驟 1 傳回的要求上呼叫 GetInnerRequest 方法,以擷取最內層的要求。
  3. 在步驟 2 傳回的IX509CertificateRequest物件上呼叫QueryInterface,以轉換成IX509CertificateRequestPkcs10物件。
  4. 在 PKCS #10 要求上呼叫 PrivateKey 屬性。
  5. 在從步驟 4 擷取的IX509PrivateKey物件上呼叫ProviderType屬性。

HashAlgID

Xenroll.dll中的 HashAlgID 函式會擷取整數值,其中包含用來簽署要求的演算法識別碼。

使用CertEnroll.dll時,您可以執行下列動作來擷取雜湊演算法:

HashAlgorithmWStr

Xenroll.dll中的 HashAlgorithmWStr 函式會指定或擷取字串值,識別用來簽署要求的雜湊演算法。

使用CertEnroll.dll時,您可以執行下列動作來擷取雜湊演算法:

ProviderFlags

Xenroll.dll中的 ProviderFlags 函 式會指定或擷取取得 CSP 控制碼時所使用的旗標。

CertEnroll.dll程式庫不會完美地對應此函式,但您可以從註冊物件和 私密金鑰取得豐富的屬性資訊。 如需詳細資訊,請檢查 IX509EnrollmentIX509PrivateKey 介面所公開的屬性。

ProviderNameWStr

Xenroll.dll中的 ProviderNameWStr 函式會指定或擷取 CSP 的名稱。

使用CertEnroll.dll時,您可以執行下列動作來擷取提供者名稱:

  1. 在現有的IX509Enrollment物件上呼叫Request屬性。
  2. 在步驟 1 傳回的要求上呼叫 GetInnerRequest 方法,以擷取最內層的要求。
  3. 在步驟 2 傳回的IX509CertificateRequest物件上呼叫QueryInterface,以轉換成IX509CertificateRequestPkcs10物件。
  4. 在 PKCS #10 要求上呼叫 PrivateKey 屬性。
  5. 在從步驟 4 擷取的IX509PrivateKey物件上呼叫ProviderName屬性。

ProviderType

Xenroll.dll中的 ProviderType 函式會指定或擷取識別 CSP 類型的整數值。

使用CertEnroll.dll時,您可以執行下列動作來擷取提供者類型:

  1. 在現有的IX509Enrollment物件上呼叫Request屬性。
  2. 在步驟 1 傳回的要求上呼叫 GetInnerRequest 方法,以擷取最內層的要求。
  3. 在步驟 2 傳回的IX509CertificateRequest物件上呼叫QueryInterface,以轉換成IX509CertificateRequestPkcs10物件。
  4. 在 PKCS #10 要求上呼叫 PrivateKey 屬性。
  5. 在從步驟 4 擷取的IX509PrivateKey物件上呼叫ProviderType屬性。

將Xenroll.dll對應至CertEnroll.dll

ICspAlgorithm

ICspAlgorithms

ICspInformation

ICspInformations

IX509Enrollment

IX509PrivateKey