JavaCard (erste Schritte): Difference between revisions
(Created page with "==Erste Schritte: Installation einer Beispielanwendung== Hier erfolgt zunächst der erste Test der Funktionalität der SmartCard durch Installation eines Applets, das eine ei...") |
No edit summary |
||
Line 19: | Line 19: | ||
</code> |
</code> |
||
Ausgabe: |
|||
<code> |
|||
<pre> |
|||
GlobalPlatformPro v20.01.23-0-g5ad373b |
GlobalPlatformPro v20.01.23-0-g5ad373b |
||
Running on Linux 5.15.0-48-generic amd64, Java 17.0.4 by Private Build |
Running on Linux 5.15.0-48-generic amd64, Java 17.0.4 by Private Build |
||
Line 44: | Line 46: | ||
SCardEndTransaction("REINER SCT cyberJack RFID basis 00 00") |
SCardEndTransaction("REINER SCT cyberJack RFID basis 00 00") |
||
SCardDisconnect("REINER SCT cyberJack RFID basis 00 00", true) tx:23/rx:24 |
SCardDisconnect("REINER SCT cyberJack RFID basis 00 00", true) tx:23/rx:24 |
||
</ |
</pre> |
||
Und dann mit dem Code <code>B050000002</code> ausgelesen werden: |
Und dann mit dem Code <code>B050000002</code> ausgelesen werden: |
||
Line 52: | Line 54: | ||
</code> |
</code> |
||
Ausgabe: |
|||
<code> |
|||
<pre> |
|||
GlobalPlatformPro v20.01.23-0-g5ad373b |
GlobalPlatformPro v20.01.23-0-g5ad373b |
||
Running on Linux 5.15.0-48-generic amd64, Java 17.0.4 by Private Build |
Running on Linux 5.15.0-48-generic amd64, Java 17.0.4 by Private Build |
||
Line 77: | Line 81: | ||
SCardEndTransaction("REINER SCT cyberJack RFID basis 00 00") |
SCardEndTransaction("REINER SCT cyberJack RFID basis 00 00") |
||
SCardDisconnect("REINER SCT cyberJack RFID basis 00 00", true) tx:22/rx:26 |
SCardDisconnect("REINER SCT cyberJack RFID basis 00 00", true) tx:22/rx:26 |
||
</ |
</pre> |
||
Alternativ kann das Guthaben auch mit <code>B030000001[AMOUNT, 1 Bytes]</code> reduziert werden. Die Antwort <code>0x9000</code> steht hier für "Erfolgreich". |
Alternativ kann das Guthaben auch mit <code>B030000001[AMOUNT, 1 Bytes]</code> reduziert werden. Die Antwort <code>0x9000</code> steht hier für "Erfolgreich". |
Revision as of 11:22, 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".