Voici comment obtenir via PowerShell
:
Utilisation de Gemalto IDPrime SDK .NET
Add-Type -Path "C:\Program Files (x86)\Gemalto\NET Smartcard Framework SDK\v2.2.180\Libraries\On Card\Framework Libraries\v2.1.213.9175\SmartCard.dll"
Add-Type -Path "C:\Program Files (x86)\Gemalto\NET Smartcard Framework SDK\v2.2.180\bin\SmartCard.Runtime.dll"
$Reader = New-Object SmartCard.Transport.PCSC.SelectDialog
$Reader.ShowDialog() | Out-Null
$SmartCard = New-Object SmartCard.Accessor.CardAccessor($Reader.SelectedReader)
$SmartCardSN = [System.BitConverter]::ToString($SmartCard.GetSerialNumber())
Write-Host "Smartcard Serial Number: $SmartCardSN"
$SmartCard.Dispose()
$Reader.Dispose()
utilisant Gemalto IDPrime .NET PKCS # 11 Pilotes
Si vous souhaitez utiliser la bibliothèque PKCS11 , cela peut être fait comme suit. Toutefois, cette route est livré avec un AVERTISSEMENT car il retourne un hachage du numéro de série et non le numéro de série réel. Par Gemalto Documentation:
Le .NET bibliothèque PKCS # 11 effectue un hachage MD5 de la CSN fournie par le minidriver donnant un résultat de 16 octets.Comme la chaîne C_GetTokenInfo
n'a que 16 octets, elle peut afficher 16 caractères du résultat du hachage uniquement au format ASCII. Ces 16 caractères sont les 8 MSB (octets les plus à gauche) du résultat du hachage.
Exemple:
- PKCS .NET # 11 demandes de bibliothèque de la carte 12 octets numéro de série (CSN) de le fichier d'identification de la carte: 0x57 0x01 0x13 0x51 0x26 0xC7 0xD6 0x10 0x29 0x27 0xFF 0xFF
- PKCS # .NET 11 effectue un hachage MD5 sur la CSN qui donne un résultat de 16 octets: 0x05 0x00 0xCB 0x3D 0x76 0xD3 0xE9 0x4F 0x74 0x13 0x74 0x38 0xD8 0x8C 0xBF 0xB4
- le PKCS # 11 .NET transforme le hachage en un strine ASCII g.
- Enfin, il remplit le champ serialNumber de la structure TokenInfo (sur 16 octets) avec les 16 premiers caractères de la chaîne ASCII: "05CB003D76D3E94F" correspondant à la 8 MSB du hachage.
# www.pkcs11interop.net
Add-Type -Path "C:\SomeFolder\Pkcs11Interop.4.0.0\lib\net45\Pkcs11Interop.dll"
# Load Gemalto driver
# 1 = AppType.SingleThreaded
$pkcs11 = New-Object Net.Pkcs11Interop.HighLevelAPI.Pkcs11("C:\Program Files (x86)\Gemalto\DotNet PKCS11\gtop11dotnet64.dll",1)
# 0 = SlotsType.WithTokenPresent
$Slots = $pkcs11.GetSlotList(0)
$CardReader = $Slots[0] # Usually first slot
$CardReader.GetTokenInfo().SerialNumber
$CardReader.CloseAllSessions()
$pkcs11.Dispose()
Comment tester que notre apdu sur la carte .net gemalto fonctionne bien? nous l'avons testé en utilisant l'application serveur client, mais comment vérifier qu'il fonctionnera pour le système existant? – sms247