使用 CAPICOM 的替代方法

注意

CAPICOM 是一个仅在 Windows SDK 中使用的 32 位组件,可用于以下操作系统:Windows Server 2008、Windows Vista、Windows XP。 请改用 .NET 或 .NET Framework 来实现安全功能。 有关详细信息,请参阅下方列出的替代方案。

重要

CAPICOM 的替代方法都不提供脚本解决方案;因此,必须编写自己的 ActiveX 控件。 有关详细信息,请参阅 ActiveX 控件

证书存储对象

建议使用以下替代方法来使用证书存储以及这些存储中的证书。

Object 替代项
Certificate 证书对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Certificate2 类
CertificatePolicies CertificatePolicies对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Extension 类,方法是调用采用 OID 作为参数的构造函数,然后使用 OID 作为证书策略检索证书策略
Certificates 证书对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Certificate2Collection 类
CertificateStatus CertificateStatus 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509ChainStatus 结构
供应链 [ Chain 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Chain 类
ExtendedProperties ExtendedProperties 对象可在“要求”部分中指定的操作系统中使用。 请改用平台调用服务 (PInvoke) 调用 Win32 API 函数 CertGetCertificateContextProperty 并获取属性。 有关 PInvoke 的信息,请参阅平台调用 (P/Invoke)通过 P/Invoke 的 .NET 和 CryptoAPI:第 1 部分以及通过 P/Invoke 的 .NET 和 CryptoAPI:使用 CAPICOM 和 P/Invoke 扩展 .NET 加密的第 2 部分子部分可能也会有所帮助
ExtendedProperty ExtendedPropert 对象可在“要求”部分中指定的操作系统中使用。 请改用平台调用服务 (PInvoke) 调用 Win32 API 函数 CertGetCertificateContextProperty 并获取属性。 有关 PInvoke 的信息,请参阅平台调用 (P/Invoke)通过 P/Invoke 的 .NET 和 CryptoAPI:第 1 部分以及通过 P/Invoke 的 .NET 和 CryptoAPI:使用 CAPICOM 和 P/Invoke 扩展 .NET 加密的第 2 部分子部分可能也会有所帮助
扩展 扩展对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Extension 类
扩展 扩展对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509ExtensionCollection 类
私钥 PrivateKey对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Certificate2.PrivateKey Property
PublicKey PublicKey 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Certificate2.PublicKey Property
商店 存储对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Store 类
模板 模板对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Extension 类,方法是调用采用 OID 作为参数的构造函数,然后使用 OID 作为证书模板检索证书扩展模板

数字签名对象

建议使用以下替代方法对数据进行数字签名并验证数字签名。

Object 替代项
SignedCode SignedCode 对象可在“要求”部分中指定的操作系统中使用。 请改用平台调用服务 (PInvoke) 调用 Win32 API SignerSignExSignerTimeStampExWinVerifyTrust 函数,以使用 Authenticode 数字签名对内容进行签名。 有关 PInvoke 的信息,请参阅平台调用 (P/Invoke)通过 P/Invoke 的 .NET 和 CryptoAPI:第 1 部分以及通过 P/Invoke 的 .NET 和 CryptoAPI:使用 CAPICOM 和 P/Invoke 扩展 .NET 加密的第 2 部分子部分可能也会有所帮助
SignedData SignedData 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.Pkcs 命名空间中的 SignedCms 类。
签名者 Signer 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.Pkcs 命名空间中的 CmsSigner 类。
Signers Signers 对象可在“要求”部分中指定的操作系统中使用。 请改用 CmsSigner 对象的集合。 有关详细信息,请参阅 System.Security.Cryptography.Pkcs 命名空间中的 CmsSigner 类。

封装数据对象

建议使用以下替代方法创建封装数据消息,用于保护隐私并解密封装消息中的数据。

Object 说明
EnvelopedData EnvelopedData 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.Pkcs 命名空间中的 EnvelopedCms 类。
收件人 Recipients 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.Pkcs 命名空间中的 CmsRecipientCollection 类。

数据加密对象

建议使用以下替代方法来加密任意数据以用于保护隐私并解密加密数据。

Object 说明
EncryptedData EncryptedData 对象可在“要求”部分中指定的操作系统中使用。 相反,请使用平台调用服务 (PInvoke) 调用 Win32 API 函数 CryptEncryptMessageCryptDecryptMessage 来加密和解密消息。 有关 PInvoke 的信息,请参阅平台调用 (P/Invoke)通过 P/Invoke 的 .NET 和 CryptoAPI:第 1 部分以及通过 P/Invoke 的 .NET 和 CryptoAPI:使用 CAPICOM 和 P/Invoke 扩展 .NET 加密的第 2 部分子部分可能也会有所帮助

辅助对象

建议使用以下替代方法来更改其他对象的默认行为,以及管理证书、证书存储和消息。

Object 说明
算法 Algorithm 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.Pkcs 命名空间中的AlgorithmIdentifier 类。
Attribute Attribute 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography 命名空间中的 CryptographicAttributeObject 类。
特性 Attributes 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography 命名空间中的 CryptographicAttributeObjectCollection 类
BasicConstraints BasicConstraints 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509BasicConstraintsExtension 类
EKU EKU 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509EnhancedKeyUsageExtension 类
EKUs EKU 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509ExtensionCollection 类
EncodedData EncodedData 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.Pkcs 命名空间中的 AsnEncodedData 类。
ExtendedKeyUsage ExtendedKeyUsage 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509EnhancedKeyUsageExtension 类
HashedData HashedData 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.Pkcs 命名空间中的 HashAlgorithm 类。
KeyUsage KeyUsage 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509EnhancedKeyUsageExtension 类
NoticeNumbers NoticeNumbers 对象可在“要求”部分中指定的操作系统中使用。 有关更多信息,请参见限定符
OID OID 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.Pkcs 命名空间中的Oid 类。
OIDs OID 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.Pkcs 命名空间中的 OidCollection 类。
PolicyInformation PolicyInformation 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Extension 类,方法是调用采用 OID 作为参数的构造函数,然后使用 OID 作为证书策略处理证书策略扩展中的策略信息
Qualifier 限定词 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Extension 类,方法是调用采用 OID 作为参数的构造函数,然后使用证书策略的 OID 作为证书策略扩展中策略信息一部分的限定符
限定符 限定词 对象可在“要求”部分中指定的操作系统中使用。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Extension 类,方法是调用采用 OID 作为参数的构造函数,然后使用证书策略的 OID 作为证书策略扩展中策略信息一部分的限定符
设置 没有可用的替代方法。
实用程序 没有可用的替代方法。