CAPICOM の使用に代わる方法

[CAPICOM は、次のオペレーティング システムで使用できる 32 ビットのみのコンポーネントです:Windows Server 2008、Windows Vista、Windows XP。 代わりに、.NET Frameworkを使用してセキュリティ機能を実装します。 詳細については、以下の代替手段を参照してください。

重要

CAPICOM の代替手段には、スクリプトのソリューションはありません。したがって、独自のActiveX コントロールを記述する必要があります。 詳細については、「ActiveX コントロール」を参照してください。

 

証明書Microsoft Store オブジェクト

証明書ストアとそれらのストア内の証明書を操作する場合は、次の方法をお勧めします。

Object 代替手段
証明 書 証明書オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509Certificate2クラスを使用します。
CertificatePolicies CertificatePolicies オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、OID をパラメーターとして受け取るコンストラクターを呼び出して System.Security.Cryptography.X509Certificates 名前空間の X509Extension クラスを使用し、証明書ポリシーの 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 を使用した .NET と CryptoAPI: パート 1P/Invoke による .NET と CryptoAPI:CAPICOM と P/Invoke を使用した .NET 暗号化の拡張のパート 2 サブセクションも役立つ場合があります。
ExtendedProperty ExtendedProperty オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、プラットフォーム呼び出しサービス (PInvoke) を使用して Win32 API 関数 CertGetCertificateContextProperty を呼び出し、プロパティを取得します。 PInvoke の詳細については、「 プラットフォーム呼び出しのチュートリアル」を参照してください。 P/Invoke を使用した .NET と CryptoAPI: パート 1P/Invoke による .NET と CryptoAPI:CAPICOM と P/Invoke を使用した .NET 暗号化の拡張のパート 2 サブセクションも役立つ場合があります。
拡張機能 Extension オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509Extensionクラスを使用します。
拡張機能 Extensions オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509ExtensionCollection クラスを使用します。
PrivateKey PrivateKey オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509Certificate2.PrivateKey プロパティを使用します。
PublicKey PublicKey オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509Certificate2.PublicKey プロパティを使用します。
ストア Microsoft Store オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509Storeクラスを使用します。
テンプレート Template オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、OID をパラメーターとして受け取るコンストラクターを呼び出して System.Security.Cryptography.X509Certificates 名前空間の X509Extensionクラスを使用し、OID for Certificate Template を使用して証明書拡張テンプレートを取得します。

 

デジタル署名オブジェクト

データにデジタル署名を行い、デジタル署名を確認する代わりに、次の方法を使用することをお勧めします。

Object 代替手段
SignedCode SignedCode オブジェクトは、[要件] セクションで指定されたオペレーティング システムで使用できます。 代わりに、プラットフォーム呼び出しサービス (PInvoke) を使用して Win32 API SignerSignExSignerTimeStampExWinVerifyTrust 関数を呼び出して、Authenticode デジタル署名でコンテンツに署名します。 PInvoke の詳細については、「 プラットフォーム呼び出しのチュートリアル」を参照してください。 P/Invoke を使用した .NET と CryptoAPI: パート 1P/Invoke による .NET と CryptoAPI:CAPICOM と P/Invoke を使用した .NET 暗号化の拡張のパート 2 サブセクションも役立つ場合があります。
SignedData SignedData オブジェクトは、[要件] セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography.Pkcs 名前空間で SignedCms クラスを使用します。
署名 署名者オブジェクトは、[要件] セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography.Pkcs 名前空間で CmsSigner クラスを使用します。
署名 署名者オブジェクトは、[要件] セクションで指定されたオペレーティング システムで使用できます。 代わりに、CmsSigner オブジェクトのコレクションを使用します。 詳細については、System.Security.Cryptography.Pkcs 名前空間の CmsSigner クラスを参照してください。

 

エンベロープされたデータ オブジェクト

プライバシーのためにエンベロープ データ メッセージを作成したり、エンベロープ メッセージ内のデータを復号化したりするには、次の代替手段を使用することをお勧めします。

Object 説明
EnvelopedData EnvelopedData オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography.Pkcs 名前空間で EnvelopedCms クラスを使用します。
Recipients Recipients オブジェクトは、[要件] セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography.Pkcs 名前空間で CmsRecipientCollection クラスを使用します。

 

データ暗号化オブジェクト

プライバシーのために任意のデータを暗号化し、暗号化されたデータを復号化する代わりに、次の方法をお勧めします。

Object 説明
EncryptedData EncryptedData オブジェクトは、[要件] セクションで指定したオペレーティング システムで使用できます。 代わりに、プラットフォーム呼び出しサービス (PInvoke) を使用して Win32 API 関数 CryptEncryptMessageCryptDecryptMessage を呼び出してメッセージを暗号化および復号化します。 PInvoke の詳細については、「 プラットフォーム呼び出しのチュートリアル」を参照してください。 P/Invoke を使用した .NET と CryptoAPI: パート 1P/Invoke による .NET と CryptoAPI:CAPICOM と P/Invoke を使用した .NET 暗号化の拡張のパート 2 サブセクションも役立つ場合があります。

 

補助オブジェクト

他のオブジェクトの既定の動作を変更したり、証明書、証明書ストア、メッセージを管理したりするには、次の方法をお勧めします。

Object 説明
アルゴリズム Algorithm オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、System.Security.Cryptography.Pkcs 名前空間で AlgorithmIdentifier クラスを使用します。
属性 Attribute オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、System.Security.Cryptography 名前空間で CryptographicAttributeObject クラスを使用します。
属性 Attributes オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、System.Security.Cryptography 名前空間で CryptographicAttributeObjectCollection クラスを使用します。
BasicConstraints BasicConstraints オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509BasicConstraintsExtension クラスを使用します。
EKU EKU オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509EnhancedKeyUsageExtension クラスを使用します。
Eku EKU オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509ExtensionCollection クラスを使用します。
EncodedData EncodedData オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、System.Security.Cryptography 名前空間で AsnEncodedData クラスを使用します。
ExtendedKeyUsage ExtendedKeyUsage オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509EnhancedKeyUsageExtension クラスを使用します。
HashedData HashedData オブジェクトは、「要件」セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography 名前空間で HashAlgorithm クラスを使用します。
KeyUsage KeyUsage オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、System.Security.Cryptography.X509Certificates 名前空間で X509EnhancedKeyUsageExtension クラスを使用します。
NoticeNumbers NoticeNumbers オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 詳細については、「 修飾子」を参照してください。
OID OID オブジェクトは、要件セクションで指定されたオペレーティング システムで使用できます。 代わりに、System.Security.Cryptography 名前空間で Oid クラスを使用します。
OID OID オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、System.Security.Cryptography 名前空間で OidCollection クラスを使用します。
PolicyInformation PolicyInformation オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、パラメーターとして OID を受け取るコンストラクターを呼び出して System.Security.Cryptography.X509Certificates 名前空間の X509Extension クラスを使用し、証明書ポリシーの OID を使用して証明書ポリシー拡張機能のポリシー情報を処理します。
修飾子 Qualifier オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、パラメーターとして OID を受け取るコンストラクターを呼び出して System.Security.Cryptography.X509Certificates 名前空間の X509Extensionクラスを使用し、証明書ポリシーの OID を使用して、証明書ポリシー拡張機能のポリシー情報の一部である修飾子を処理します。
修飾子 Qualifiers オブジェクトは、「要件」セクションで指定されたオペレーティング・システムで使用できます。 代わりに、パラメーターとして OID を受け取るコンストラクターを呼び出して System.Security.Cryptography.X509Certificates 名前空間の X509Extensionクラスを使用し、証明書ポリシーの OID を使用して、証明書ポリシー拡張機能のポリシー情報の一部である修飾子を処理します。
設定 代替手段はありません。
Utilities 代替手段はありません。