Postupy: Přístup k hardwarovým šifrovacím zařízením
Můžete použít třídu CspParameters k přístupu hardwarovým šifrovacím zařízením. Například můžete tuto třídu použít k integraci vaší aplikace s čipovou kartou, hardwarovým generátorem pseudonáhodných čísel nebo hardwarové implementaci konkrétního šifrovacího algoritmu.
Třída CspParameters vytvoří zprostředkovatele kryptografických služeb (CSP), který přistupuje ke správně nainstalovanému hardwarovému zařízení šifrování. Dostupnost zprostředkovatele kryptografických služeb můžete ověřit kontrolou následujícího klíče registru pomocí Editoru registru (Regedit.exe): HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider.
Podepsat data pomocí karty s klíčem
Vytvořte novou instanci třídy CspParameters přijímající typ integer poskytovatele a název poskytovatele do konstruktoru.
Předejte vhodné příznaky vlastnosti Flags nově vytvořenému objektu CspParameters. Například předejte příznak UseDefaultKeyContainer.
Vytvořte novou instanci třídy AsymmetricAlgorithm (například třídy RSACryptoServiceProvider), předejte objekt CspParameters do konstruktoru.
Podepište data pomocí jedné z metod Sign a ověřte vaše data pomocí jedné z metod Verify.
Generovat náhodné číslo pomocí hardwarového generátoru pseudonáhodných čísel
Vytvořte novou instanci třídy CspParameters přijímající typ integer poskytovatele a název poskytovatele do konstruktoru.
Vytvořte novou instanci RNGCryptoServiceProvider, předejte objekt CspParameters do konstruktoru.
Vytvořte náhodnou hodnotu pomocí metody GetBytes nebo GetNonZeroBytes.
Příklad
Následující příklad kódu ukazuje, jak lze podepsat data pomocí čipové karty. Příklad kódu vytvoří objekt CspParameters, který zpřístupňuje čipovou kartu a poté inicializuje objekt RSACryptoServiceProvider pomocí poskytovatele kryptografických služeb (CSP). Příklad kódu pak podepíše a ověří některá data.
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 );
}
Probíhá kompilace kódu
Zahrňte obory názvů System a System.Security.Cryptography.
Musíte mít čtečku čipových karet a ovladače nainstalované ve vašem počítači.
Musíte inicializovat objekt CspParameters pomocí informací, které jsou specifické pro vaši čtečku karet. Další informace naleznete v dokumentaci k vaší čtečce karet.
Viz také
Další zdroje
Historie změn
Datum |
Poslední dokumenty |
Důvod |
---|---|---|
Červenec 2010 |
Byl opraven název spustitelného souboru programu Editor registru. |
Názory zákazníků |