opencard.opt.applet
Class BasicAppletCardService
java.lang.Object
|
+--opencard.core.service.CardService
|
+--opencard.opt.applet.BasicAppletCardService
- Direct Known Subclasses:
- AppletProxy
- public class BasicAppletCardService
- extends CardService
This service offers methods to applications or proxies derived
from it, which send a given command APDU to the card applet
identified by the given application identifier and which return the
result APDU. All instances associated with the same physical card
share a common state object attached to the the used channel by the
first BasicAppletCardService instance. This state object,
an instance of CardState, keeps track of the currently
selected applet and is used by BasicAppletCardServices to
avoid unnecessary selection of applets.
- Since:
- OCF1.2
- Version:
- $Id: BasicAppletCardService.java,v 1.1 1999/11/02 18:06:44 damke Exp $
- See Also:
CardServiceScheduler,
CardChannel,
AppletID
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
BasicAppletCardService
public BasicAppletCardService()
ensureCardStateExists
protected void ensureCardStateExists(CardChannel channel)
- Ensures that a CardState object is available in the
channel through which this service is communicating with the
card.
- Parameters:
channel - The CardChannel object for which existence of
a CardState object shall be ensured.
getAppletSelector
protected AppletSelector getAppletSelector()
- Get the applet selector.
- Returns:
- A helper object that implements the "AppletSelector" interface.
getCardState
protected CardState getCardState(CardChannel channel)
- Gets the associated state object. We store the
CardState in the same way as the state of an applet
proxy or applet. This has the advantage that the state is
guaranteed to exist only once per card channel and thus per
card.
- Returns:
- The state object representing the state of the card.
initialize
protected void initialize(CardServiceScheduler scheduler,
SmartCard card,
boolean blocking)
throws CardServiceException
- Instantiates a BasicAppletCardService and tie it both
to its CardServiceScheduler and its using
SmartCard object.
- Parameters:
scheduler - The scheduler of this CardExecutiveCardService.card - The controlling SmartCard object.blocking - Specify the wait behavior for obtaining a CardChannel
from the CardServiceScheduler.- Overrides:
- initialize in class CardService
sendCommandAPDU
public ResponseAPDU sendCommandAPDU(CardChannel channel,
AppletID appletID,
CommandAPDU commandAPDU)
throws CardTerminalException,
CardServiceException
- Sends a CommandAPDU to the applet on the card that has
the given application identifier using the given channel.
- Parameters:
channel - channel to be used for sending APDUs to the smart cardappletID - application identifier of destination appletcommandAPDU - CommandAPDU to send- Returns:
- The resulting ResponseAPDU as
received from the card.
sendCommandAPDU
public ResponseAPDU sendCommandAPDU(AppletID appletID,
CommandAPDU commandAPDU)
throws CardTerminalException,
CardServiceException
- Sends a CommandAPDU to the applet on the card that has
the given application identifier.
- Parameters:
appletID - application identifier of destination appletcommandAPDU - CommandAPDU to send- Returns:
- The resulting ResponseAPDU as received from the card.
sendVerifiedAPDU
public ResponseAPDU sendVerifiedAPDU(CardChannel channel,
AppletID appletID,
CommandAPDU verificationAPDU,
CHVControl chvControl,
int timeout)
throws CardServiceException,
CardTerminalException
- Send a verify CHV command APDU to the card applet with the
given application identifier after filling in the password
obtained from the CHV dialog currently associated with this
card service.
- Parameters:
channel - The CardChannel to be used for
sending the command APDU.appletID - The application identifier of the applet
to which the verification APDU shall be sent.verificationAPDU - The command APDU for password verification
into which the password shall be inserted.chvControl - The CHV control to be used for password input.timeout - The timeout to be used.- Returns:
- The response APDU returned by the card as response
to the verify password command.
setAppletSelector
protected void setAppletSelector(AppletSelector s)
- Set the applet selector.
Subclasses may need to redefine the way applet selection
is performed. They can do that by specifying a class implementing
"AppletSelector" and call setAppletSelector with a new helper
object that will be used in place of the default ISO implementation.
|