CspParameters クラス
暗号計算を実行する暗号サービス プロバイダ (CSP : Cryptographic Service Provider) に渡されるパラメータを格納します。このクラスは継承できません。
名前空間: System.Security.Cryptography
アセンブリ: mscorlib (mscorlib.dll 内)
構文
CspParameters クラスは、アンマネージ CAPI (Microsoft Cryptography API) から内部的に Microsoft 暗号化サービス プロバイダ (CSP) を使用するマネージ暗号化クラスに渡すことができるパラメータを表します。"CryptoServiceProvider" で終わる名前を持つクラスは、対応する CSP のマネージ コード ラッパーです。
次の処理を行うには、CspParameters クラスを使用します。
-
プロバイダの種類を ProviderType プロパティまたは ProviderName プロパティに渡して、特定の CSP を指定する場合。コンストラクタのオーバーロードを使用して CSP を指定することもできます。
-
暗号化キーを格納できるキー コンテナを作成する場合。キー コンテナを使用すると、最も安全に暗号化キーを永続化して悪意のあるサードパーティから保護できます。キー コンテナの作成の詳細については、「方法 : キー コンテナに非対称キーを格納する」を参照してください。
CspParameters クラスを使用してキー コンテナを作成し、そのコンテナにキーを保存するコード例を次に示します。
Imports System Imports System.IO Imports System.Security.Cryptography Public Class StoreKey Public Shared Sub Main() ' creates the CspParameters object and sets the key container name used to store the RSA key pair Dim cp As New CspParameters() cp.KeyContainerName = "MyKeyContainerName" ' instantiates the rsa instance accessing the key container MyKeyContainerName Dim rsa As New RSACryptoServiceProvider(cp) ' add the below line to delete the key entry in MyKeyContainerName ' rsa.PersistKeyInCsp = false; 'writes out the current key pair used in the rsa instance Console.WriteLine("Key is : " & rsa.ToXmlString(True)) End Sub 'Main End Class 'StoreKey
using System; using System.IO; using System.Security.Cryptography; public class StoreKey { public static void Main() { // creates the CspParameters object and sets the key container name used to store the RSA key pair CspParameters cp = new CspParameters(); cp.KeyContainerName = "MyKeyContainerName"; // instantiates the rsa instance accessing the key container MyKeyContainerName RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp); // add the below line to delete the key entry in MyKeyContainerName // rsa.PersistKeyInCsp = false; //writes out the current key pair used in the rsa instance Console.WriteLine("Key is : \n" + rsa.ToXmlString(true)); } }
using namespace System; using namespace System::IO; using namespace System::Security::Cryptography; int main() { // creates the CspParameters object and sets the key container name used to store the RSA key pair CspParameters^ cp = gcnew CspParameters; cp->KeyContainerName = "MyKeyContainerName"; // instantiates the rsa instance accessing the key container MyKeyContainerName RSACryptoServiceProvider^ rsa = gcnew RSACryptoServiceProvider( cp ); // add the below line to delete the key entry in MyKeyContainerName // rsa.PersistKeyInCsp = false; //writes out the current key pair used in the rsa instance Console::WriteLine( "Key is : \n{0}", rsa->ToXmlString( true ) ); }
import System.*; import System.IO.*; import System.Security.Cryptography.*; public class StoreKey { public static void main(String[] args) { // creates the CspParameters object and sets the key container name // used to store the RSA key pair CspParameters cp = new CspParameters(); cp.KeyContainerName = "MyKeyContainerName"; // instantiates the rsa instance accessing the key container // MyKeyContainerName RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp); // add the below line to delete the key entry in MyKeyContainerName // rsa.PersistKeyInCsp = false; //writes out the current key pair used in the rsa instance Console.WriteLine("Key is : \n" + rsa.ToXmlString(true)); } //main } //StoreKey
CspParameters クラスを使用してスマート カード暗号化サービス プロバイダを選択するコード例を次に示します。その後で、スマート カードを使用してデータに署名し、そのデータを検証します。
Imports System Imports System.Security.Cryptography Module SCSign Sub Main(ByVal args() As String) ' To idendify the Smart Card CryptoGraphic Providers on your ' computer, use the Microsoft Registry Editor (Regedit.exe). ' The available Smart Card CryptoGraphic Providers are listed ' in HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider. ' Create a new CspParameters object that identifies a ' Smart Card CryptoGraphic Provider. ' The 1st parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider Types. ' The 2nd parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider. Dim csp As New CspParameters(1, "Schlumberger Cryptographic Service Provider") csp.Flags = CspProviderFlags.UseDefaultKeyContainer ' Initialize an RSACryptoServiceProvider object using ' the CspParameters object. Dim rsa As New RSACryptoServiceProvider(csp) ' Create some data to sign. Dim data() As Byte = {0, 1, 2, 3, 4, 5, 6, 7} Console.WriteLine("Data : " + BitConverter.ToString(data)) ' Sign the data using the Smart Card CryptoGraphic Provider. Dim sig As Byte() = rsa.SignData(data, "SHA1") Console.WriteLine("Signature : " + BitConverter.ToString(sig)) ' Verify the data using the Smart Card CryptoGraphic Provider. Dim verified As Boolean = rsa.VerifyData(data, "SHA1", sig) Console.WriteLine("Verified") End Sub End Module
using System; using System.Security.Cryptography; namespace SmartCardSign { class SCSign { static void Main(string[] args) { // To idendify the Smart Card CryptoGraphic Providers on your // computer, use the Microsoft Registry Editor (Regedit.exe). // The available Smart Card CryptoGraphic Providers are listed // in HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider. // Create a new CspParameters object that identifies a // Smart Card CryptoGraphic Provider. // The 1st parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider Types. // The 2nd parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider. CspParameters csp = new CspParameters(1, "Schlumberger Cryptographic Service Provider"); csp.Flags = CspProviderFlags.UseDefaultKeyContainer; // Initialize an RSACryptoServiceProvider object using // the CspParameters object. RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp); // Create some data to sign. byte[] data = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 }; Console.WriteLine("Data : " + BitConverter.ToString(data)); // Sign the data using the Smart Card CryptoGraphic Provider. byte[] sig = rsa.SignData(data, "SHA1"); Console.WriteLine("Signature : " + BitConverter.ToString(sig)); // Verify the data using the Smart Card CryptoGraphic Provider. bool verified = rsa.VerifyData(data, "SHA1", sig); Console.WriteLine("Verified : " + verified); } } }
using namespace System; using namespace System::Security::Cryptography; int main() { // To idendify the Smart Card CryptoGraphic Providers on your // computer, use the Microsoft Registry Editor (Regedit.exe). // The available Smart Card CryptoGraphic Providers are listed // in HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider. // Create a new CspParameters object that identifies a // Smart Card CryptoGraphic Provider. // The 1st parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider Types. // The 2nd parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider. CspParameters^ csp = gcnew CspParameters( 1,L"Schlumberger Cryptographic Service Provider" ); csp->Flags = CspProviderFlags::UseDefaultKeyContainer; // Initialize an RSACryptoServiceProvider object using // the CspParameters object. RSACryptoServiceProvider^ rsa = gcnew RSACryptoServiceProvider( csp ); // Create some data to sign. array<Byte>^data = gcnew array<Byte>{ 0,1,2,3,4,5,6,7 }; Console::WriteLine( L"Data : {0}", BitConverter::ToString( data ) ); // Sign the data using the Smart Card CryptoGraphic Provider. array<Byte>^sig = rsa->SignData( data, L"SHA1" ); Console::WriteLine( L"Signature : {0}", BitConverter::ToString( sig ) ); // Verify the data using the Smart Card CryptoGraphic Provider. bool verified = rsa->VerifyData( data, L"SHA1", sig ); Console::WriteLine( L"Verified : {0}", verified ); }
System.Security.Cryptography.CspParameters
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- CspParameters クラスのページへのリンク