PrivateKey.Open 方法

[ Open 方法可用于“要求”部分中指定的操作系统。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Certificate2.PrivateKey 属性。]

Open 方法访问现有密钥容器。 此方法通过使用指定信息添加 CERT_KEY_PROV_INFO_PROP_ID 属性,将密钥容器关联到与私钥对应的证书

语法

PrivateKey.Open( _
  ByVal ContainerName, _
  [ ByVal ProviderName ], _
  [ ByVal ProviderType ], _
  [ ByVal KeySpec ], _
  [ ByVal StoreLocation ], _
  [ ByVal bCheckExistence ] _
)

参数

ContainerName [in]

包含密钥容器名称的字符串。

ProviderName [in, optional]

包含提供程序名称的字符串。 默认值为 CAPICOM_PROV_MS_ENHANCED_PROV。 此参数的取值可为下列值之一:

含义
CAPICOM_PROV_MS_DEF_PROV
Microsoft 基本加密提供程序。
CAPICOM_PROV_MS_ENHANCED_PROV
Microsoft 增强的加密提供程序。
CAPICOM_PROV_MS_STRONG_PROV
Microsoft 强加密提供程序。
CAPICOM_PROV_MS_DEF_RSA_SIG_PROV
Microsoft RSA 签名加密提供程序。
CAPICOM_PROV_MS_DEF_RSA_SCHANNEL_PROV
Microsoft RSA Schannel 加密提供程序。
CAPICOM_PROV_MS_DEF_DSS_PROV
Microsoft 基本 DSS 加密提供程序。
CAPICOM_PROV_MS_DEF_DSS_DH_PROV
Microsoft 基本 DSS 和 Diffie-Hellman 加密提供程序。
CAPICOM_PROV_MS_ENH_DSS_DH_PROV
Microsoft 增强的 DSS 和Diffie-Hellman加密提供程序。
CAPICOM_PROV_MS_DEF_DH_SCHANNEL_PROV
Microsoft DH Schannel 加密提供程序。
CAPICOM_PROV_MS_SCARD_PROV
Microsoft 基本智能卡加密提供程序。
CAPICOM_PROV_MS_ENH_RSA_AES_PROV
Microsoft 增强型 RSA 和 AES 加密提供程序。

 

ProviderType [in, 可选]

指定提供程序类型的 CAPICOM_PROV_TYPE 枚举的值。 默认值为 CAPICOM_PROV_RSA_FULL。 此参数的取值可为下列值之一:

含义
CAPICOM_PROV_RSA_FULL
完整的 RSA加密服务提供程序 (CSP) 。 此提供程序类型支持 数字签名 和数据 加密
CAPICOM_PROV_RSA_SIG
RSA CSP 的子集,仅支持 哈希数字签名所需的函数和算法。
CAPICOM_PROV_DSS
数字签名标准 (DSS) CSP。 此提供程序类型仅支持哈希和数字签名。 DSS 使用 数字签名算法 (DSA) 。
CAPICOM_PROV_FORTEZZA
包含 美国国家标准技术研究院 拥有的加密协议和算法的 CSP (NIST) 。
CAPICOM_PROV_MS_EXCHANGE
支持 Microsoft Exchange 邮件应用程序和其他与 Microsoft Mail 兼容的应用程序的 CSP。
CAPICOM_PROV_SSL
支持 安全套接字层 (SSL) 协议的 CSP。
CAPICOM_PROV_RSA_SCHANNEL
支持 RSA 和 Schannel 协议的 CSP。
CAPICOM_PROV_DSS_DH
支持 DSS 和 Diffie-Hellman 协议的 CSP。
CAPICOM_PROV_EC_ECDSA_SIG
支持椭圆曲线数字签名算法的 CSP (ECDSA) 数字签名所需的函数和算法。
CAPICOM_PROV_EC_ECNRA_SIG
支持椭圆曲线Nyberg-Rueppel模拟 (ECNRA 的 CSP) 数字签名所需的函数和算法。
CAPICOM_PROV_EC_ECDSA_FULL
支持完整 ECDSA 的 CSP。
CAPICOM_PROV_EC_ECNRA_FULL
支持完整 ECNRA 的 CSP。
CAPICOM_PROV_DH_SCHANNEL
支持 Diffie-HellmanSchannel 协议的 CSP。
CAPICOM_PROV_SPYRUS_LYNKS
支持 SPYRUS LYNKS 卡设备的 CSP。
CAPICOM_PROV_RNG
处理随机数生成的 CSP。
CAPICOM_PROV_INTEL_SEC
提供 Intel 安全性的 CSP。
CAPICOM_PROV_REPLACE_OWF
支持替换从密码生成单向格式的方式的 CSP。
CAPICOM_PROV_RSA_AES
使用高级加密标准 (AES) 算法支持数字签名和数据加密的 CSP。

 

KeySpec [in, 可选]

指定私钥类型的 CAPICOM_KEY_SPEC 枚举的值。 默认值为 CAPICOM_KEY_SPEC_SIGNATURE。 此参数的取值可为下列值之一:

含义
CAPICOM_KEY_SPEC_KEYEXCHANGE
密钥可用于加密和签名。
CAPICOM_KEY_SPEC_SIGNATURE
密钥只能用于签名。

 

StoreLocation [in, 可选]

CAPICOM_STORE_LOCATION 枚举的值,该值指定密钥所在的存储区的位置。 默认值为 CAPICOM_CURRENT_USER_STORE。 此参数的取值可为下列值之一:

含义
CAPICOM_MEMORY_STORE
存储是内存存储。 存储内容中的任何更改都不会持久保存。
CAPICOM_LOCAL_MACHINE_STORE
存储是本地计算机存储。 仅当用户具有读/写权限时,本地计算机存储才能是读/写存储。 如果用户具有读/写权限,并且打开存储区是读/写,则存储的内容更改将持久保存。
CAPICOM_CURRENT_USER_STORE
应用商店是当前用户存储区。 当前用户存储可能是读/写存储。 如果存在,则保留存储内容中的更改。
CAPICOM_ACTIVE_DIRECTORY_USER_STORE
存储是 Active Directory 存储。 只能在只读模式下打开 Active Directory 存储。 不能在 Active Directory 存储中添加证书或从中删除证书。
CAPICOM_SMART_CARD_USER_STORE
存储是现有智能卡的组。 在 CAPICOM 2.0 中引入。

 

bCheckExistence [in, optional]

一个布尔值,指示 CAPICOM 是否会尝试访问密钥。 如果 为 True,则 CAPICOM 尝试访问密钥。 如果密钥受用户保护或在智能卡或其他设备上,可能会生成一个对话框。 默认值为 False

返回值

此方法不返回值。

备注

此方法从基于 Web 的应用程序编写脚本时返回CAPICOM_E_NOT_ALLOWED。

要求

要求
可再发行组件
Windows Server 2003 和 Windows XP 上的 CAPICOM 2.0 或更高版本
DLL
Capicom.dll

另请参阅

PrivateKey

Certificate.HasPrivateKey