Java™ Smart Card I/O APIThis 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
- 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
API ExampleA 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);
Class Summary Class Description ATRA Smart Card's answer-to-reset bytes. CardA Smart Card with which a connection has been established. CardChannelA logical channel connection to a Smart Card. CardPermissionA permission for Smart Card operations. CardTerminalA Smart Card terminal, sometimes referred to as a Smart Card Reader. CardTerminalsThe set of terminals supported by a TerminalFactory. CommandAPDUA command APDU following the structure defined in ISO/IEC 7816-4. ResponseAPDUA response APDU as defined in ISO/IEC 7816-4. TerminalFactoryA factory for CardTerminal objects. TerminalFactorySpiThe TerminalFactorySpi class defines the service provider interface.
Enum Summary Enum Description CardTerminals.StateEnumeration of attributes of a CardTerminal.
Exception Summary Exception Description CardExceptionException for errors that occur during communication with the Smart Card stack or the card itself. CardNotPresentExceptionException thrown when an application tries to establish a connection with a terminal that has no card present.