Class SmartCardIOTerminal

    • Constructor Detail

      • SmartCardIOTerminal

        public SmartCardIOTerminal​(java.lang.String name,
                                   java.lang.String type,
                                   java.lang.String address,
                                   javax.smartcardio.CardTerminal ct)
                            throws CardTerminalException
        Throws:
        CardTerminalException
    • Method Detail

      • internalFeatures

        protected java.util.Properties internalFeatures​(java.util.Properties features)
        Description copied from class: CardTerminal
        The CardTerminal internal features() method to be provided by the concrete implementation. This default implementation just returns the parameter provided. Concrete implementations should override this method.
        Overrides:
        internalFeatures in class CardTerminal
        Parameters:
        features - A Properties object that needs to be enhanced with the card terminal specific features.
        Returns:
        The enriched Properties object.
      • open

        public void open()
                  throws CardTerminalException
        Description copied from class: CardTerminal
        Initializes the CardTerminal. Implementations of this method must carry out all steps required to set the concrete terminal into a proper state. After invoking this method it should be possible to communicate with the terminal properly.
        Specified by:
        open in class CardTerminal
        Throws:
        CardTerminalException - thrown in case of initialization-errors (e.g. couldn't setup transfer protocol between CardTerminal and reader).
      • close

        public void close()
                   throws CardTerminalException
        Description copied from class: CardTerminal
        Closes the CardTerminal. Implementations of this method must carry out all steps required to close the concrete terminal and free resources held by it.
        Specified by:
        close in class CardTerminal
        Throws:
        CardTerminalException - thrown in case of initialization-errors (e.g. couldn't setup transfer protocol between CardTerminal and reader).
      • getCardID

        public CardID getCardID​(int slotID)
                         throws CardTerminalException
        Description copied from class: CardTerminal
        Return the answer-to-reset (ATR) response of the card inserted in slot slotID as a CardID. Before calling this method the caller should make sure that a card is present, otherwise null may be returned.

        This call should NOT block if no card is present.

        Specified by:
        getCardID in class CardTerminal
        Parameters:
        slotID - slot id.
        Returns:
        The ATR response in form of a CardID object or null if no card is present.
        Throws:
        CardTerminalException - Thrown in case of problems in the card terminal.
      • internalReset

        protected CardID internalReset​(int slot,
                                       int ms)
                                throws CardTerminalException
        Description copied from class: CardTerminal
        The internal reset method to be provided by the concrete implementation.
        Specified by:
        internalReset in class CardTerminal
        Parameters:
        slot - The slot number of the slot to be resetted.
        ms - To be ignored. If the card does not respond within the time specified for the protocol an exception should be thrown.
        Returns:
        The CardID of the card.
        Throws:
        CardTerminalException - thrown in case of errors during reset
      • internalReset

        protected CardID internalReset​(int slot,
                                       boolean warm)
                                throws CardTerminalException
        Description copied from class: CardTerminal
        The internal reset method may be overwritten by the actual implementation to support warm resets.
        Overrides:
        internalReset in class CardTerminal
        Parameters:
        slot - The slot number of the slot to be resetted.
        Returns:
        The CardID of the card.
        Throws:
        CardTerminalException - thrown in case of errors during reset
      • internalSendAPDU

        protected ResponseAPDU internalSendAPDU​(int slot,
                                                CommandAPDU capdu,
                                                int ms)
                                         throws CardTerminalException
        Description copied from class: CardTerminal
        The internalSendAPDU method to be provided by the concrete implementation.
        Specified by:
        internalSendAPDU in class CardTerminal
        Parameters:
        slot - The slot number of the slot to be resetted.
        capdu - The CommandAPDU to send.
        ms - To be ignored. If the card does not respond within the time specified for the protocol an exception should be thrown.
        Returns:
        A ResponseAPDU.
        Throws:
        CardTerminalException - thrown in case of errors in the CardTerminal (e.g. errors during data exchange)
      • isCardPresent

        public boolean isCardPresent​(int slotID)
                              throws CardTerminalException
        Description copied from class: CardTerminal
        Check whether there is a smart card present in a particular slot.
        Specified by:
        isCardPresent in class CardTerminal
        Parameters:
        slotID - slot to check for a card.
        Returns:
        True if there is a smart card inserted in the slot.
        Throws:
        CardTerminalException - thrown in case of problems getting the status from CardTerminal (or other serious problems in the terminal).
      • poll

        public void poll()
                  throws CardTerminalException
        Description copied from interface: Pollable
        Checks the status of the underlying terminal device. Must generate a CardTerminalEvent if a card is being inserted or removed by calling CardTerminal.cardInserted() or CardTerminal.cardRemoved(). Alternatively the terminal could perform status checks itsself, e.g. by handling interrupts. Implementation Note: the CardTerminalRegistry calls this method of all registered Pollable terminals periodically. So the implementation of this method should not carry out lengthy operations but return as quickly as possible.
        Specified by:
        poll in interface Pollable
        Throws:
        CardTerminalException - Thrown when error occurred in poll-mechanism.
      • sendVerifiedCommandAPDU

        public ResponseAPDU sendVerifiedCommandAPDU​(SlotChannel chann,
                                                    CommandAPDU capdu,
                                                    CHVControl vc)
                                             throws CardTerminalException
        Send a verified command APDU to the card. The verification will be performed with a class 3 card reader. The PIN has to be entered on the PIN pad. If the password encoding is of type CHVEncoder.PACE, then a PACE channel will be established
        Specified by:
        sendVerifiedCommandAPDU in interface VerifiedAPDUInterface
        Parameters:
        chann - the SlotChannel
        capdu - the CommandAPDU
        vc - the CHVControl
        Returns:
        The ResponseAPDU as received from the smart card.
        Throws:
        CardTerminalException - Thrown when an error condition occured.