Package org.kapott.hbci.smartcardio
Class SmartCardService
java.lang.Object
org.kapott.hbci.smartcardio.SmartCardService
- Direct Known Subclasses:
ChipTanCardService
,HBCICardService
Smartcard-Service fuer den DDVPCSC-Passport, basierend auf dem OCF-Code
aus HBCI4Java 2.5.8.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static enum
Kapselt die Features der Karte. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final void
check
(javax.smartcardio.ResponseAPDU response, byte[] returncodes) Prueft das Response auf die angegebenen Return-Codes.void
close()
Schliesst die Karte und resettet den Service.static <T extends SmartCardService>
TcreateInstance
(Class<? extends SmartCardService> type, String name) Erzeut eine neue Instanz des Card-Service fuer die angegebene Karte.protected final byte[]
Fuellt den String rechtsbuendig mit Leerzeichen auf die angegebene Laenge.protected final javax.smartcardio.Card
getCard()
Liefert die Instanz der Smartcard.protected final byte[]
protected final Map
<SmartCardService.Feature, Integer> Liefert die Map mit den verfuegbaren Features.protected final byte[]
getKeyInfo
(int idx) protected void
init
(javax.smartcardio.Card card) Initialisiert den Service mit der angegebenen Karte.protected final byte[]
internalAuthenticate
(int keynum, byte[] challenge) protected final void
putData
(int tag, byte[] data) protected byte[]
readBinary
(int offset, int length) protected final byte[]
readRecordBySFI
(int sfi, int idx) protected final byte[]
receive
(javax.smartcardio.CommandAPDU command) Sendet ein Kommando an den Kartenleser, prueft ob es erfolgreich ausgefuehrt wurde und liefert die Antwort zurueck.protected byte[]
receive
(javax.smartcardio.CommandAPDU command, byte[] returncodes) Sendet ein Kommando an den Kartenleser, prueft ob es erfolgreich ausgefuehrt wurde und liefert die Antwort zurueck.protected final void
selectFile
(int id) protected final void
selectSubFile
(int id) protected final void
send
(javax.smartcardio.CommandAPDU command) Sendet ein Kommando an den Kartenleser und prueft, ob es erfolgreich ausgefuehrt wurde.byte[]
Konvertiert den HEX-String zurueck in ein Byte-Array.protected final String
toHex
(byte[] bytes) Konvertiert die Bytes in HEX-Darstellung.protected final String
Konvertiert die Bytes in HEX-Darstellung.protected final void
updateRecordBySFI
(int sfi, int idx, byte[] data) protected final void
writeRecordBySFI
(int sfi, int idx, byte[] data)
-
Constructor Details
-
SmartCardService
public SmartCardService()
-
-
Method Details
-
createInstance
public static <T extends SmartCardService> T createInstance(Class<? extends SmartCardService> type, String name) Erzeut eine neue Instanz des Card-Service fuer die angegebene Karte.- Parameters:
type
- der Typ des zu erzeugenden Service.name
- optionale Angabe des Kartenlesernamens - noetig, wenn am Rechner mehrere Kartenleser angeschlossen sind.- Returns:
- die neue Instanz des Card-Service.
-
close
public void close()Schliesst die Karte und resettet den Service. -
init
protected void init(javax.smartcardio.Card card) Initialisiert den Service mit der angegebenen Karte.- Parameters:
card
- die Karte.
-
getFeatures
Liefert die Map mit den verfuegbaren Features.- Returns:
- die Map mit den verfuegbaren Features.
-
getCard
protected final javax.smartcardio.Card getCard()Liefert die Instanz der Smartcard.- Returns:
- die Instanz der Smartcard.
-
writeRecordBySFI
protected final void writeRecordBySFI(int sfi, int idx, byte[] data) - Parameters:
sfi
-idx
-data
-
-
updateRecordBySFI
protected final void updateRecordBySFI(int sfi, int idx, byte[] data) - Parameters:
sfi
-idx
-data
-
-
readRecordBySFI
protected final byte[] readRecordBySFI(int sfi, int idx) - Parameters:
sfi
-idx
-- Returns:
-
readBinary
protected byte[] readBinary(int offset, int length) - Parameters:
offset
-length
-- Returns:
-
selectFile
protected final void selectFile(int id) - Parameters:
id
-
-
selectSubFile
protected final void selectSubFile(int id) - Parameters:
id
-
-
getKeyInfo
protected final byte[] getKeyInfo(int idx) - Parameters:
idx
-- Returns:
-
putData
protected final void putData(int tag, byte[] data) - Parameters:
tag
-data
-
-
getChallenge
protected final byte[] getChallenge()- Returns:
-
internalAuthenticate
protected final byte[] internalAuthenticate(int keynum, byte[] challenge) - Parameters:
keynum
-challenge
-- Returns:
-
send
protected final void send(javax.smartcardio.CommandAPDU command) Sendet ein Kommando an den Kartenleser und prueft, ob es erfolgreich ausgefuehrt wurde.- Parameters:
command
- das Kommando.
-
receive
protected final byte[] receive(javax.smartcardio.CommandAPDU command) Sendet ein Kommando an den Kartenleser, prueft ob es erfolgreich ausgefuehrt wurde und liefert die Antwort zurueck.- Parameters:
command
- das Kommando.- Returns:
- die Antwort.
-
receive
protected byte[] receive(javax.smartcardio.CommandAPDU command, byte[] returncodes) Sendet ein Kommando an den Kartenleser, prueft ob es erfolgreich ausgefuehrt wurde und liefert die Antwort zurueck.- Parameters:
command
- das Kommando.returncodes
- zulaessige Return-Codes.- Returns:
- die Antwort.
-
check
protected final void check(javax.smartcardio.ResponseAPDU response, byte[] returncodes) Prueft das Response auf die angegebenen Return-Codes.- Parameters:
response
- das Response.returncodes
- zulaessige Return-Codes.
-
toHex
Konvertiert die Bytes in HEX-Darstellung.- Parameters:
bytes
-- Returns:
- String-Repraesentation.
-
toHex
Konvertiert die Bytes in HEX-Darstellung.- Parameters:
bytes
-sep
- Separator-Zeichen.- Returns:
- String-Repraesentation.
-
toBytes
Konvertiert den HEX-String zurueck in ein Byte-Array.- Parameters:
hex
- der Text in HEX-Schreibweise.- Returns:
- das Byte-Array.
-
expand
Fuellt den String rechtsbuendig mit Leerzeichen auf die angegebene Laenge.- Parameters:
st
- der String.len
- die Gesamtlaenge.- Returns:
- der codierte String mit Leerzeichen auf der rechten Seite.
-