javax.smartcardio |
Java™ Smart Card I/O API
This specification describes the Java Smart Card I/O API defined by
JSR 268.
It defines a Java API for communication with Smart Cards
using ISO/IEC 7816-4 APDUs. It thereby allows Java applications to interact with
applications running on the Smart Card, to store and retrieve data
on the card, etc.
The API is defined by classes in the package
javax.smartcardio . They can be classified as follows:
- Classes describing the corresponding Smart Card structures
-
ATR,
CommandAPDU,
ResponseAPDU
- Factory to obtain implementations
-
TerminalFactory
- Main classes for card and terminal functions
-
CardTerminals,
CardTerminal,
Card,
CardChannel
- Supporting permission and exception classes
-
CardPermission,
CardException,
CardNotPresentException
- Service provider interface, not accessed directly by applications
-
TerminalFactorySpi
API Example
A simple example of using the API is:
// show the list of available terminals
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals = factory.terminals().list();
System.out.println("Terminals: " + terminals);
// get the first terminal
CardTerminal terminal = terminals.get(0);
// establish a connection with the card
Card card = terminal.connect("T=0");
System.out.println("card: " + card);
CardChannel channel = card.getBasicChannel();
ResponseAPDU r = channel.transmit(new CommandAPDU(c1));
System.out.println("response: " + toString(r.getBytes()));
// disconnect
card.disconnect(false);
@version 1.6, 05/05/07
@since 1.6
@author Andreas Sterbenz
@author JSR 268 Expert Group
|
Java Source File Name | Type | Comment |
ATR.java | Class | A Smart Card's answer-to-reset bytes. |
Card.java | Class | A Smart Card with which a connection has been established. |
CardChannel.java | Class | A logical channel connection to a Smart Card. |
CardException.java | Class | Exception for errors that occur during communication with the
Smart Card stack or the card itself. |
CardNotPresentException.java | Class | Exception thrown when an application tries to establish a connection with a
terminal that has no card present. |
CardPermission.java | Class | A permission for Smart Card operations. |
CardTerminal.java | Class | A Smart Card terminal, sometimes refered to as a Smart Card Reader. |
CardTerminals.java | Class | The set of terminals supported by a TerminalFactory.
This class allows applications to enumerate the available CardTerminals,
obtain a specific CardTerminal, or wait for the insertion or removal of
cards.
This class is multi-threading safe and can be used by multiple
threads concurrently. |
CommandAPDU.java | Class | A command APDU following the structure defined in ISO/IEC 7816-4.
It consists of a four byte header and a conditional body of variable length.
This class does not attempt to verify that the APDU encodes a semantically
valid command.
Note that when the expected length of the response APDU is specified
in the
,
the actual length (Ne) must be specified, not its
encoded form (Le). |
ResponseAPDU.java | Class | A response APDU as defined in ISO/IEC 7816-4. |
TerminalFactory.java | Class | A factory for CardTerminal objects.
It allows an application to
- obtain a TerminalFactory by calling
one of the static factory methods in this class
(
or
).
|
TerminalFactorySpi.java | Class | The TerminalFactorySpi class defines the service provider interface.
Applications do not access this class directly, instead see
.
Service providers that want to write a new implementation should define
a concrete subclass of TerminalFactorySpi with a constructor that takes
an Object as parameter. |