私密金鑰和公開金鑰函式
CertEnroll.dll實作 IX509PrivateKey 和 IX509PublicKey 介面。 例如,您可以使用 IX509PrivateKey 介面對 私密金鑰執行下列動作:
- 建立、開啟、關閉、匯入、匯出和刪除金鑰。
- 指定或擷取 公開金鑰演算法。
- 指定或擷取有關支援公開金鑰演算法之可用 密碼編譯服務提供者 的資訊 (CSP) 。
- 指定或擷取與私密金鑰相關聯的憑證。
- 指定或擷取 金鑰容器的名稱。
- 指定或擷取 的描述,以及索引鍵的顯示名稱。
- 指定或擷取私密金鑰上的匯出條件約束。
- 指定或擷取布林值,指出索引鍵是否存在。
- 指定或擷取值,指出金鑰在使用前如何受到保護。
- 指定或擷取值,指出金鑰是否可以用於簽署、加密或兩者。
- 指定或擷取值,以識別可以使用索引鍵的特定用途。
- 指定或擷取金鑰的長度。
- 指定或擷取值,指出金鑰是使用或儲存在電腦或使用者的內容中。
- 擷取布林值,指定是否已開啟索引鍵。
- 指定個人識別碼,以存取 智慧卡上的私密金鑰。
- 指定或擷取與金鑰相關聯的 CSP 名稱。
- 指定或擷取金鑰 的安全性描述元 。
下列各節會識別Xenroll.dll匯出的函式,可用來管理 密碼編譯金鑰。 每個主題也會討論如何使用 CertEnroll.dll 取代 函式,或指出兩個程式庫之間沒有對應:
- ContainerNameWStr
- GenKeyFlags
- GetKeyLen
- GetKeyLenEx
- GetSupportedKeySpec
- KeySpec
- LimitExchangeKeyToEncipherment
- PVKFileNameWStr
- ReuseHardwareKeyIfUnableToGenNew
- UseExistingKeySet
- 相關主題
ContainerNameWStr
Xenroll.dll中的 ContainerNameWStr 函式會指定或擷取 金鑰容器的名稱。
使用CertEnroll.dll時,您可以執行下列動作來擷取金鑰容器的名稱:
- 在現有的IX509Enrollment物件上呼叫Request屬性。
- 在步驟 1 傳回的要求上呼叫 GetInnerRequest 方法,以擷取最內部的要求。
- 在步驟 2 傳回的IX509CertificateRequest物件上呼叫QueryInterface,以轉換成IX509CertificateRequestPkcs10物件。
- 在 PKCS #10 要求上呼叫 PrivateKey 屬性。
- 在從步驟 4 擷取的IX509PrivateKey物件上呼叫ContainerName屬性。
GenKeyFlags
Xenroll.dll中定義的 GenKeyFlags 函式會指定或擷取用來產生私密金鑰或 公開/私密金鑰組的旗標。
使用CertEnroll.dll時,您可以指定一些不同的屬性,以決定私密金鑰的建立方式。 如需詳細資訊,請參閱 建立。
GetKeyLen
Xenroll.dll中定義的 GetKeyLen 函式會擷取加密金鑰的最大或最小金鑰大小。
使用 CertEnroll.dll時,您可以在IX509PrivateKey或IX509PublicKey物件上呼叫Length屬性,以位為單位擷取金鑰大小。
GetKeyLenEx
Xenroll.dll中定義的 GetKeyLenEx 函式會擷取加密金鑰的最大或最小金鑰大小或遞增長度。
使用 CertEnroll.dll時,您可以在IX509PrivateKey或IX509PublicKey物件上呼叫Length屬性,以位為單位擷取金鑰大小。 如果演算法支援累加金鑰長度,您可以在ICspAlgorithm物件上呼叫IncrementLength屬性,以擷取遞增值。 您也可以呼叫 MinLength 和 MaxLength 屬性,以擷取最小和最大索引鍵大小。
GetSupportedKeySpec
Xenroll.dll中定義的 GetSupportedKeySpec 函式會擷取值,指出 CSP 是否支援交換金鑰、簽署金鑰或兩者。
使用 CertEnroll.dll 時,您可以在IX509PrivateKey或ICspInformation物件上呼叫KeySpec屬性,以擷取金鑰支援的作業。
KeySpec
Xenroll.dll中定義的 KeySpec 函式會指定或擷取索引鍵類型。
使用 CertEnroll.dll時,您可以在IX509PrivateKey物件上呼叫KeySpec屬性,以擷取金鑰支援的作業。
LimitExchangeKeyToEncipherment
Xenroll.dll中定義的 LimitExchangeKeyToEncipherment 函式會指定或擷取布林值,指出加密金鑰只能用於資料或金鑰加密。
CertEnroll.dll不包含此函式的直接對等專案。 不過,您可以藉由指定 IX509ExtensionKeyUsage 物件,並將其新增至憑證要求,以達到幾乎相等的結果。
PVKFileNameWStr
Xenroll.dll中定義的 PVKFileNameWStr 函式會指定或擷取包含匯出金鑰的檔案名。
使用 CertEnroll.dll 時,您可以在IX509PrivateKey物件上呼叫Export方法,將金鑰匯出至BSTR。 您可以呼叫 ExportPublicKey 方法來匯出非對稱金鑰組的 公開金鑰 部分。
ReuseHardwareKeyIfUnableToGenNew
Xenroll.dll中定義的 ReuseHardwareKeyIfUnableToGenNew 函式會指定或擷取布林值,指出在產生新索引鍵時發生錯誤時,是否重複使用現有的索引鍵。
使用 CertEnroll.dll時,您可以在IX509CertificateRequestPkcs10物件上呼叫InitializeFromCertificate方法,並指定X509RequestInheritOptions列舉類型的值,以重複使用現有的私密金鑰。
UseExistingKeySet
Xenroll.dll中所定義的 UseExistingKeySet 函式會指定或擷取布林值,指出是否要使用現有的索引鍵。
使用 CertEnroll.dll時,您可以在IX509CertificateRequestPkcs10物件上呼叫InitializeFromCertificate方法,並指定X509RequestInheritOptions列舉類型的值,以重複使用現有的私密金鑰和公開金鑰。
相關主題