opencard.opt.emv.mgmt
Class BasicEMVAppletAccess

java.lang.Object
  |
  +--opencard.core.service.CardService
        |
        +--opencard.opt.applet.mgmt.AbstractAppletAccessor
              |
              +--opencard.opt.emv.mgmt.BasicEMVAppletAccess

public class BasicEMVAppletAccess
extends AbstractAppletAccessor
implements AppletAccessCardService, opencard.core.OpenCardConstants, EMVTags

The BasicEMVAppletAccess provides an implementation of an AppletAccessCardService for EMV compliant cards supporting a T=1 protocol (T=0 is not implemented).

This class is derived from the abstract implementation AbstractAppletAccessor, which provides the more generic and card independent functionality. In order to support similar cards, with slightly changed command set, this class be be subclassed in order to get adopted implementations.

See Also:
AppletAccessCardService, AbstractAppletAccessor

Field Summary
static byte CLASS
           
static byte[] DIR_PATH
           
static byte READ_INS
           
static byte READ_LE
           
static byte READ_P2
           
static byte SELECT_INS
           
static byte SELECT_LE
           
static byte SELECT_P1
           
static byte SELECT_P2
           
static int SW_DATA_CORRUPTED
           
static int SW_FILEINVALIDATED
           
static int SW_FILENOTFOUND
           
static int SW_INCOMPATIBLE
           
static int SW_INCORRECT_CLA
           
static int SW_INCORRECT_INS
           
static int SW_INCORRECT_LC
           
static int SW_INCORRECT_P1P2
           
static int SW_MFCFILENOTFOUND
           
static int SW_NOTSUPPORTED
           
static int SW_OK
           
static int SW_RECORDNOTFOUND
           
static int SW_WRONG_LENGTH
           
static byte SW1_INCORRECT_LE
           
static byte SW1_INCORRECT_P1P2
           
static byte SW1_RESPONSE_PENDING
           
 
Constructor Summary
BasicEMVAppletAccess()
          Instantiate a BasicEMVAppletAccess object.
 
Method Summary
 void initialize(opencard.core.service.CardServiceScheduler scheduler, opencard.core.service.SmartCard smartcard, boolean blocking)
          Initializes this CardService and retrieves the Cards directory into a vector.
protected  java.util.Vector internalList(opencard.core.terminal.SlotChannel channel)
          Reads the applications info informations from the EMV Directory. Implements the abstract method of the superclass AbstractAppletAccess for EMV compliant cards.
 
Methods inherited from class opencard.opt.applet.mgmt.AbstractAppletAccessor
exists, getApplets, getAppletSelector, getInfo, list, selectApplet, setApplets, setAppletSelector
 
Methods inherited from class opencard.core.service.CardService
allocateCardChannel, getCard, getCardChannel, getCHVDialog, releaseCardChannel, setCardChannel, setCHVDialog
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS

public static final byte CLASS

SELECT_INS

public static final byte SELECT_INS

SELECT_P1

public static final byte SELECT_P1

SELECT_P2

public static final byte SELECT_P2

SELECT_LE

public static final byte SELECT_LE

READ_INS

public static final byte READ_INS

READ_P2

public static final byte READ_P2

READ_LE

public static final byte READ_LE

DIR_PATH

public static byte[] DIR_PATH

SW_OK

public static final int SW_OK

SW_WRONG_LENGTH

public static final int SW_WRONG_LENGTH

SW_INCORRECT_INS

public static final int SW_INCORRECT_INS

SW_INCORRECT_CLA

public static final int SW_INCORRECT_CLA

SW_INCORRECT_P1P2

public static final int SW_INCORRECT_P1P2

SW_INCORRECT_LC

public static final int SW_INCORRECT_LC

SW_DATA_CORRUPTED

public static final int SW_DATA_CORRUPTED

SW_INCOMPATIBLE

public static final int SW_INCOMPATIBLE

SW_NOTSUPPORTED

public static final int SW_NOTSUPPORTED

SW_FILENOTFOUND

public static final int SW_FILENOTFOUND

SW_MFCFILENOTFOUND

public static final int SW_MFCFILENOTFOUND

SW_RECORDNOTFOUND

public static final int SW_RECORDNOTFOUND

SW_FILEINVALIDATED

public static final int SW_FILEINVALIDATED

SW1_INCORRECT_P1P2

public static final byte SW1_INCORRECT_P1P2

SW1_RESPONSE_PENDING

public static final byte SW1_RESPONSE_PENDING

SW1_INCORRECT_LE

public static final byte SW1_INCORRECT_LE
Constructor Detail

BasicEMVAppletAccess

public BasicEMVAppletAccess()
                     throws opencard.core.service.CardServiceException
Instantiate a BasicEMVAppletAccess object.
Method Detail

initialize

public void initialize(opencard.core.service.CardServiceScheduler scheduler,
                       opencard.core.service.SmartCard smartcard,
                       boolean blocking)
                throws opencard.core.service.CardServiceException
Initializes this CardService and retrieves the Cards directory into a vector.
Parameters:
scheduler - where to allocate channels
smartcard - which smartcard to contact
blocking - whether operation shall be blocking
Throws:
opencard.core.service.CardServiceException - thrown, when Directory could not be read
Overrides:
initialize in class opencard.core.service.CardService

internalList

protected java.util.Vector internalList(opencard.core.terminal.SlotChannel channel)
                                 throws opencard.core.service.CardServiceException
Reads the applications info informations from the EMV Directory.

Implements the abstract method of the superclass AbstractAppletAccess for EMV compliant cards.

Returns:
An Vector of EMVAppletInfo Object representing the card-resident applets.
Throws:
opencard.core.service.CardServiceException - Thrown when the list cannot be presented.
Overrides:
internalList in class AbstractAppletAccessor