JavaCard (erste Schritte): Difference between revisions
No edit summary |
|||
Line 86: | Line 86: | ||
==Erstellen einer eigenen Anwendung== |
==Erstellen einer eigenen Anwendung== |
||
TODO |
Revision as of 11:23, 6 October 2022
Erste Schritte: Installation einer Beispielanwendung
Hier erfolgt zunächst der erste Test der Funktionalität der SmartCard durch Installation eines Applets, das eine einfache Guthabenkarte implementiert, hier Simple Wallet[1].
Installiert und angesprochen kann die JavaCard mittels GlobalPlatformPro[2].
Installiert wird die Applikation durch:
java -jar gp.jar -install simplewallet.cap -default
Angesprochen wird die Karte durch APDU Kommandos. Vor jeder Operation wird das Simple Wallet Applet mit ihrer AID F000A0000E00
ausgewählt.
Das Guthaben kann beispielsweise mit dem Code B040000001[AMOUNT, 1 Bytes]
erhöht werden:
java -jar gp.jar -a "00A4040006F000A0000E0000" -a "B04000000105" -debug -verbose
Ausgabe:
GlobalPlatformPro v20.01.23-0-g5ad373b Running on Linux 5.15.0-48-generic amd64, Java 17.0.4 by Private Build # Detected readers from JNA2PCSC [*] REINER SCT cyberJack RFID basis 00 00 SCardConnect("REINER SCT cyberJack RFID basis 00 00", T=*) -> T=1, 3B80800101 SCardBeginTransaction("REINER SCT cyberJack RFID basis 00 00") Reader: REINER SCT cyberJack RFID basis 00 00 ATR: 3B80800101 More information about your card: http://smartcard-atr.appspot.com/parse?ATR=3B80800101 A>> T=1 (4+0006) 00A40400 06 F000A0000E00 00 A<< (0000+2) (33ms) 9000 A>> T=1 (4+0001) B0400000 01 05 A<< (0000+2) (25ms) 9000 A>> T=1 (4+0000) 00A40400 00 A<< (0018+2) (19ms) 6F108408A000000151000000A5049F6501FF 9000 [TRACE] GPSession - [6F] [TRACE] GPSession - [84] A000000151000000 [TRACE] GPSession - [A5] [TRACE] GPSession - [9F65] FF [DEBUG] GPSession - Auto-detected ISD: A000000151000000 SCardEndTransaction("REINER SCT cyberJack RFID basis 00 00") SCardDisconnect("REINER SCT cyberJack RFID basis 00 00", true) tx:23/rx:24
Und dann mit dem Code B050000002
ausgelesen werden:
java -jar gp.jar -a "00A4040006F000A0000E0000" -a "B050000002" -debug -verbose
Ausgabe:
GlobalPlatformPro v20.01.23-0-g5ad373b Running on Linux 5.15.0-48-generic amd64, Java 17.0.4 by Private Build # Detected readers from JNA2PCSC [*] REINER SCT cyberJack RFID basis 00 00 SCardConnect("REINER SCT cyberJack RFID basis 00 00", T=*) -> T=1, 3B80800101 SCardBeginTransaction("REINER SCT cyberJack RFID basis 00 00") Reader: REINER SCT cyberJack RFID basis 00 00 ATR: 3B80800101 More information about your card: http://smartcard-atr.appspot.com/parse?ATR=3B80800101 A>> T=1 (4+0006) 00A40400 06 F000A0000E00 00 A<< (0000+2) (28ms) 9000 A>> T=1 (4+0000) B0500000 02 A<< (0002+2) (15ms) 0005 9000 A>> T=1 (4+0000) 00A40400 00 A<< (0018+2) (23ms) 6F108408A000000151000000A5049F6501FF 9000 [TRACE] GPSession - [6F] [TRACE] GPSession - [84] A000000151000000 [TRACE] GPSession - [A5] [TRACE] GPSession - [9F65] FF [DEBUG] GPSession - Auto-detected ISD: A000000151000000 SCardEndTransaction("REINER SCT cyberJack RFID basis 00 00") SCardDisconnect("REINER SCT cyberJack RFID basis 00 00", true) tx:22/rx:26
Alternativ kann das Guthaben auch mit B030000001[AMOUNT, 1 Bytes]
reduziert werden. Die Antwort 0x9000
steht hier für "Erfolgreich".
Erstellen einer eigenen Anwendung
TODO