Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerShell) ScMinidriver - Get Smartcard PropertiesSee more ScMinidriver ExamplesGets information about the smart card currently inserted in the reader (or USB token).
Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll" # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $scmd = New-Object Chilkat.ScMinidriver # Reader names (smart card readers or USB tokens) can be discovered # via PCSC List Readers or PCSC Find Smart Cards $readerName = "Alcor Micro USB Smart Card Reader 0" $success = $scmd.AcquireContext($readerName) if ($success -eq $false) { $($scmd.LastErrorText) exit } $json = New-Object Chilkat.JsonObject $json.EmitCompact = $false $success = $scmd.GetCardProperties($json) if ($success -eq $false) { $($scmd.LastErrorText) exit } $($json.Emit()) # Here is sample output: # See below for sample code to parse the JSON. # # NOTE: Not all smart cards support all properties. # The GetCardProperties method will return information for all properties supported by the card. # { # "bytesAvailable": 74752, # "containersAvailable": 18, # "maxKeyContainers": 20, # "capabilities": { # "fCertificateCompression": false, # "fKeyGen": true # }, # "keySizes": { # "minimumBitlen": 2048, # "defaultBitlen": 2048, # "maximumBitlen": 4096, # "incrementalBitlen": 1024 # }, # "readOnly": false, # "cacheMode": "global", # "supportsWinX509Enrollment": true, # "guid": "1201803d-03e6-772a-3d80-0112e6032a77", # "serial": "e6032a773d800112e6032a77", # "pins": [ # "user", # "admin", # "role3", # "role4" # ], # "pin": { # "user": { # "type": "regular", # "purpose": "primaryCard", # "changePermission": [ # "user" # ], # "unblockPermission": [ # "admin" # ], # "cachePolicy": "normal", # "policyInfo": "00000000", # "flags": "00000000", # "acceptPlainTextPin": true, # "generateSessionPin": false # }, # "admin": { # "type": "challenge/response", # "purpose": "administrator", # "changePermission": [ # "admin" # ], # "cachePolicy": "normal", # "policyInfo": "00000000", # "flags": "00000000" # }, # "role3": { # "type": "regular", # "purpose": "digitalSignature", # "changePermission": [ # "role3" # ], # "unblockPermission": [ # "role4" # ], # "cachePolicy": "alwaysPrompt", # "policyInfo": "00000000", # "flags": "00000000", # "acceptPlainTextPin": true, # "generateSessionPin": false # }, # "role4": { # "type": "regular", # "purpose": "unblockOnly", # "changePermission": [ # "role4" # ], # "cachePolicy": "normal", # "policyInfo": "00000000", # "flags": "00000000", # "acceptPlainTextPin": true, # "generateSessionPin": false # } # }, # "importSupport": [ # "plainText", # "rsaKeyest", # "eccKeyest", # "symmetric" # ], # "algorithms": [ # "AES" # ], # "paddingSchemes": [ # "block", # "pkcs1", # "pss", # "oaep" # ], # "chainingModes": [ # "ChainingModeCBC" # ] # } # Use this online tool to generate parsing code from sample JSON: # Generate Parsing Code from JSON $bytesAvailable = $json.IntOf("bytesAvailable") $containersAvailable = $json.IntOf("containersAvailable") $maxKeyContainers = $json.IntOf("maxKeyContainers") $capabilitiesFCertificateCompression = $json.BoolOf("capabilities.fCertificateCompression") $capabilitiesFKeyGen = $json.BoolOf("capabilities.fKeyGen") $keySizesMinimumBitlen = $json.IntOf("keySizes.minimumBitlen") $keySizesDefaultBitlen = $json.IntOf("keySizes.defaultBitlen") $keySizesMaximumBitlen = $json.IntOf("keySizes.maximumBitlen") $keySizesIncrementalBitlen = $json.IntOf("keySizes.incrementalBitlen") $readOnly = $json.BoolOf("readOnly") $cacheMode = $json.StringOf("cacheMode") $supportsWinX509Enrollment = $json.BoolOf("supportsWinX509Enrollment") $guid = $json.StringOf("guid") $serial = $json.StringOf("serial") $pinUserType = $json.StringOf("pin.user.type") $pinUserPurpose = $json.StringOf("pin.user.purpose") $pinUserCachePolicy = $json.StringOf("pin.user.cachePolicy") $pinUserPolicyInfo = $json.StringOf("pin.user.policyInfo") $pinUserFlags = $json.StringOf("pin.user.flags") $pinUserAcceptPlainTextPin = $json.BoolOf("pin.user.acceptPlainTextPin") $pinUserGenerateSessionPin = $json.BoolOf("pin.user.generateSessionPin") $pinAdminType = $json.StringOf("pin.admin.type") $pinAdminPurpose = $json.StringOf("pin.admin.purpose") $pinAdminCachePolicy = $json.StringOf("pin.admin.cachePolicy") $pinAdminPolicyInfo = $json.StringOf("pin.admin.policyInfo") $pinAdminFlags = $json.StringOf("pin.admin.flags") $pinRole3Type = $json.StringOf("pin.role3.type") $pinRole3Purpose = $json.StringOf("pin.role3.purpose") $pinRole3CachePolicy = $json.StringOf("pin.role3.cachePolicy") $pinRole3PolicyInfo = $json.StringOf("pin.role3.policyInfo") $pinRole3Flags = $json.StringOf("pin.role3.flags") $pinRole3AcceptPlainTextPin = $json.BoolOf("pin.role3.acceptPlainTextPin") $pinRole3GenerateSessionPin = $json.BoolOf("pin.role3.generateSessionPin") $pinRole4Type = $json.StringOf("pin.role4.type") $pinRole4Purpose = $json.StringOf("pin.role4.purpose") $pinRole4CachePolicy = $json.StringOf("pin.role4.cachePolicy") $pinRole4PolicyInfo = $json.StringOf("pin.role4.policyInfo") $pinRole4Flags = $json.StringOf("pin.role4.flags") $pinRole4AcceptPlainTextPin = $json.BoolOf("pin.role4.acceptPlainTextPin") $pinRole4GenerateSessionPin = $json.BoolOf("pin.role4.generateSessionPin") $i = 0 $count_i = $json.SizeOfArray("pins") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("pins[i]") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("pin.user.changePermission") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("pin.user.changePermission[i]") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("pin.user.unblockPermission") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("pin.user.unblockPermission[i]") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("pin.admin.changePermission") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("pin.admin.changePermission[i]") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("pin.role3.changePermission") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("pin.role3.changePermission[i]") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("pin.role3.unblockPermission") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("pin.role3.unblockPermission[i]") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("pin.role4.changePermission") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("pin.role4.changePermission[i]") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("importSupport") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("importSupport[i]") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("algorithms") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("algorithms[i]") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("paddingSchemes") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("paddingSchemes[i]") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("chainingModes") while ($i -lt $count_i) { $json.I = $i $strVal = $json.StringOf("chainingModes[i]") $i = $i + 1 } # Delete the context when finished with the card. $success = $scmd.DeleteContext() if ($success -eq $false) { $($scmd.LastErrorText) } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.