com.dalsemi.onewire.jib.service
Class JiBAppletAccessCardService

java.lang.Object
  |
  +--opencard.core.service.CardService
        |
        +--com.dalsemi.onewire.jib.service.JiBAppletAccessCardService
All Implemented Interfaces:
opencard.opt.applet.mgmt.AppletAccessCardService, opencard.opt.service.CardServiceInterface
Direct Known Subclasses:
JiBAppletManagerCardService

public class JiBAppletAccessCardService
extends opencard.core.service.CardService
implements opencard.opt.applet.mgmt.AppletAccessCardService

The JiBAppletAccessCardService class implements calls for accessing card-resident applets.

This set of methods supports access to an applet directory and retrieves information like a list of applets, security domain, label, etc.. This information is returned in an AppletInfo object.

This interface is typically implemented for card technology handling multi-application management different (e.g. EMV compliant cards, JavaCards, ...)

See Also:
JiBAppletManagerCardService, JiBCardServiceFactory

Constructor Summary
JiBAppletAccessCardService()
           
 
Method Summary
 boolean exists(opencard.opt.applet.AppletID appletIdentifier)
          Check whether the card-resident applet with the specified AppletID exists on the card.
 opencard.opt.applet.AppletInfo getInfo(opencard.opt.applet.AppletID appletIdentifier)
          Reads the AppletInfo of a given applet ID from the card's list of applets.
 opencard.opt.applet.AppletInfo[] list()
          List the available card-resident applets on the smart card.
 void setCHVDialog(opencard.core.service.CHVDialog dialog)
          Provides an application-specific dialog for CHV input.
 
Methods inherited from class opencard.core.service.CardService
getCard, getCardChannel, getCHVDialog, setCardChannel
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface opencard.opt.service.CardServiceInterface
getCard
 

Constructor Detail

JiBAppletAccessCardService

public JiBAppletAccessCardService()
Method Detail

list

public opencard.opt.applet.AppletInfo[] list()
                                      throws opencard.core.service.CardServiceException,
                                             opencard.core.terminal.CardTerminalException
List the available card-resident applets on the smart card.

Specified by:
list in interface opencard.opt.applet.mgmt.AppletAccessCardService
Returns:
An array of AppletInfos of the card-resident applets.
Throws:
opencard.core.service.CardServiceException - Thrown when error occurs during execution of the operation.

exists

public boolean exists(opencard.opt.applet.AppletID appletIdentifier)
               throws opencard.core.service.CardServiceException,
                      opencard.core.terminal.CardTerminalException

Check whether the card-resident applet with the specified AppletID exists on the card.

On the Java Powered iButton, this is a very inefficient operation. To check if the applet exists, it should not be selected, because this changes the behaviour of the iButton (the newly selected applet recieves all APDU's). This implementation, then, makes a list of all available applet IDs and checks to see if any of them equals appletIdentifier.

Specified by:
exists in interface opencard.opt.applet.mgmt.AppletAccessCardService
Parameters:
applet - identifier The AppletID object referring to the applet whose existence we want to check.
Returns:
true if card-resident applet exists, otherwise return false.
Throws:
opencard.core.service.CardServiceException - Thrown when error occurs during execution of the operation.

getInfo

public opencard.opt.applet.AppletInfo getInfo(opencard.opt.applet.AppletID appletIdentifier)
                                       throws opencard.core.service.CardServiceException,
                                              opencard.core.terminal.CardTerminalException
Reads the AppletInfo of a given applet ID from the card's list of applets.

Specified by:
getInfo in interface opencard.opt.applet.mgmt.AppletAccessCardService
Parameters:
appletIdentifier - The AppletID object referring to the applet whose info we want to read.
Returns:
An AppletInfo of the applets. If no applet info was found for the given AppletID a null is returned
Throws:
opencard.core.service.CardServiceException - Thrown when error occurs during execution of the operation.

setCHVDialog

public void setCHVDialog(opencard.core.service.CHVDialog dialog)

Provides an application-specific dialog for CHV input. If an application does not set it's own dialog, a default dialog will be used if password input is required.

NOTE: This method is not implemented in the JiBAppletAccessCardService class.
Specified by:
setCHVDialog in interface opencard.opt.service.CardServiceInterface
Overrides:
setCHVDialog in class opencard.core.service.CardService
Parameters:
dialog - the dialog to use for querying a password or PIN