Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
12.1
12.2
12.3
12.4
12.5
13.0
13.1
13.2
13.3
13.4
Statistic
FMM
Blog
Read file from smart card with APDU protocol.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
SmartCard | 8.5 | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes, on macOS and Windows | ❌ No |
Parameter | Description | Example |
---|---|---|
SmartCardContext | The smartcard context reference number. | $SmartCardContext |
FileID | The fileID of the file to retrieve. Given as hex string. |
"2F07" |
ResultType | How to return data. Can be JPEG, Hex or Base64. |
"Hex" |
Returns data or error.
4031 | ID RN |
4032 | SGN RN |
4033 | ID Address |
4034 | SGN Address |
4035 | ID Photo |
Read file from smartcard with APDU protocol:
Set Variable [ $result ; Value: MBS( "SmartCard.ReadFile"; $$SmartCard; Card::FileID) ]
If [ MBS("IsError") ]
Set Field [ Card::Status ; $result ]
Show Custom Dialog [ "Error" ; $result ]
Else
Set Field [ Card::FileData ; $result ]
Set Field [ Card::Status ; "OK " & Left ( $result ; 4 ) ]
#
Perform Script [ Specified: From list ; “Split” ; Parameter: ]
End If
Query name from Swiss health card:
# Initialize smart card:
Set Variable [ $$SmartCard ; Value: MBS( "SmartCard.Init" ) ]
If [ MBS("IsError") ]
Show Custom Dialog [ "Failed to initialize SmartCard" ; $$SmartCard ]
Exit Script [ Text Result: ]
End If
#
# Connect to a reader
Set Variable [ $reader ; Value: "Identiv SCR3310 uTrust 2700 R" ]
Set Variable [ $r ; Value: MBS( "SmartCard.Connect"; $$SmartCard; $Reader; "Shared"; "any" ) ]
If [ MBS("IsError") ]
Show Custom Dialog [ "Connect failed" ; $r ]
Exit Script [ Text Result: ]
End If
#
# Read file from smartcard with APDU protocol.
#
# Read record with name
Set Variable [ $result ; Value: MBS( "SmartCard.ReadFile"; $$SmartCard; "2F06") ]
If [ MBS("IsError") ]
Set Field [ Card::Status ; $result ]
Show Custom Dialog [ "Error" ; $result ]
Exit Script [ Text Result: ]
End If
# Pick result
Set Variable [ $filedata ; Value: $result ]
#
# Split in values
Set Variable [ $json ; Value: MBS("SmartCard.SplitValues"; $FileData) ]
# Get item 128, which is full name
Set Variable [ $name ; Value: JSONGetElement ( $json ; "128" ) ]
Set Variable [ $NameList ; Value: Substitute($name; ", "; ¶) ]
Set Variable [ $LastName ; Value: GetValue($nameList; 1) ]
Set Variable [ $FirstName ; Value: GetValue($nameList; 2) ]
#
Show Custom Dialog [ "Name" ; $FirstName & " " & $LastName ]
Set Variable [ $r ; Value: MBS( "SmartCard.Disconnect"; $$SmartCard; "Eject") ]
This function checks for a license.
Created 19th October 2018, last changed 6th December 2019