Package uicc.toolkit
Interface ToolkitRegistry
-
public interface ToolkitRegistryTheToolkitRegistryinterface offers basic services and methods to allow any Toolkit Applet to register its configuration (supported events) during the install phase and possibly to change it during all the applet life time. Each Toolkit Applet will get a reference to its registry entry with the static methodgetEntryfrom theToolkitRegistrySystemclass The initial state of all the events is cleared. The registry entry object implementing theToolkitRegistryinterface is a permanent JCRE entry point objectAll updates performed on the
ToolkitRegistryare atomic. TheToolkitRegistryupdate operations are subject to atomic commit capacity limitations. If the commit capacity is exceeded, no update is performed and aTransactionExceptionexception is thrown.Note: the constants related to the events are defined in the
ToolkitConstantsinterface.- See Also:
ToolkitInterface,ToolkitRegistrySystem
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description byteallocateServiceIdentifier()Allocate a Service identifier that the applet can manage.
By calling this method the applet is registered to the EVENT_EVENT_ DOWNLOAD_LOCAL_CONNECTION of the allocated service.
The service identifier is allocated by the applet until it explicitly releases it.byteallocateTimer()Asks the CAT Runtime Environment to allocate a Timer that the applet can manage.voidchangeMenuEntry(byte id, byte[] menuEntry, short offset, short length, byte nextAction, boolean helpSupported, byte iconQualifier, short iconIdentifier)Changes the value of a menu entry.voidclearEvent(short event)Clears an event in the Toolkit Registry entry of the applet.voidderegisterFileEvent(short fileEvent, byte[] baFileList, short sOffset1, short sLength1, byte[] baADFAid, short sOffset2, byte bLength2)Deregister a ToolkitRegistry object from theEVENT_EXTERNAL_FILE_UPDATEfor a file list.voidderegisterFileEvent(short fileEvent, FileView aFileView)Deregister a ToolkitRegistry object from theEVENT_EXTERNAL_FILE_UPDATEfor a file.voiddisableMenuEntry(byte id)Disables a menu entry.voidenableMenuEntry(byte id)Enables a menu entry.shortgetPollInterval()Returns the number of seconds of the adjusted duration for the calling Toolkit Applet.byteinitMenuEntry(byte[] menuEntry, short offset, short length, byte nextAction, boolean helpSupported, byte iconQualifier, short iconIdentifier)Initialises the next menu entry allocated at loading.booleanisEventSet(short event)Allows to know if an event is set in the Toolkit Registry entry of the applet.voidregisterFileEvent(short fileEvent, byte[] baFileList, short sOffset1, short sLength1, byte[] baADFAid, short sOffset2, byte bLength2)Register a ToolkitRegistry object to theEVENT_EXTERNAL_FILE_UPDATEfor a file list.voidregisterFileEvent(short fileEvent, FileView aFileView)Register a ToolkitRegistry object to theEVENT_EXTERNAL_FILE_UPDATEfor a file.voidreleaseServiceIdentifier(byte serviceIdentifier)Release a Service Identifier that has been allocated to the calling applet.
The applet is deregistered of the EVENT_EVENT_ DOWNLOAD_LOCAL_CONNECTION for the indicated Service Identifier.voidreleaseTimer(byte timerIdentifier)Release a Timer that has been allocated to the calling applet.voidrequestPollInterval(short duration)Requests a duration for the EVENT_STATUS_COMMAND event of the registering Toolkit Applet.voidsetEvent(short event)Sets an event in the Toolkit Registry entry of the applet.voidsetEventList(short[] eventList, short offset, short length)Sets an event list in the Toolkit Registry entry of the applet.voidsetMenuEntryTextAttribute(byte id, byte[] textAttribute, short offset, short length)Sets the text attribute of a menu entry.
-
-
-
Method Detail
-
setEvent
void setEvent(short event) throws ToolkitException, javacard.framework.TransactionExceptionSets an event in the Toolkit Registry entry of the applet. No exception shall be thrown if the applet registers more than once to the same event.- Parameters:
event- value of the new event to register (between -32768 and 32767)- Throws:
ToolkitException- with the following reason codes:- EVENT_NOT_SUPPORTED if the event is not supported
- EVENT_TAR_NOT_DEFINED if the event requests a TAR and the applet has not at least one TAR value assigned.
- EVENT_ALREADY_REGISTERED if the event has already been registered (for limited event like Call Control)
- EVENT_NOT_ALLOWED if event is EVENT_MENU_SELECTION, EVENT_MENU_SELECTION_HELP_REQUEST, EVENT_TIMER_EXPIRATION, EVENT_STATUS_COMMAND, EVENT_EVENT_ DOWNLOAD_LOCAL_CONNECTION,EVENT_EXTERNAL_FILE_UPDATE,EVENT_REMOTE_FILE_UPDATE
javacard.framework.TransactionException- if the operation would cause the commit capacity to be exceeded
-
setEventList
void setEventList(short[] eventList, short offset, short length) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException, ToolkitException, javacard.framework.TransactionExceptionSets an event list in the Toolkit Registry entry of the applet. In case of any exception the state of the registry is unchanged.- Parameters:
eventList- buffer containing the list of the new events to registeroffset- offset in the eventlist buffer for event registrationlength- length in the eventlist buffer for event registration- Throws:
java.lang.NullPointerException- ifeventlistisnulljava.lang.ArrayIndexOutOfBoundsException- ifoffsetorlengthor both would cause access outside array boundsToolkitException- with the following reason codes:- EVENT_NOT_SUPPORTED if one event is not supported
- EVENT_TAR_NOT_DEFINED if the event requests a TAR and the applet has not at least one TAR value assigned.
- EVENT_ALREADY_REGISTERED if one event has already been registered (for limited event like Call Control)
- EVENT_NOT_ALLOWED if
eventListcontains EVENT_MENU_SELECTION, EVENT_MENU_SELECTION_HELP_REQUEST, EVENT_TIMER_EXPIRATION, EVENT_STATUS_COMMAND, EVENT_EVENT_ DOWNLOAD_LOCAL_CONNECTION,EVENT_EXTERNAL_FILE_UPDATE,EVENT_REMOTE_FILE_UPDATE
javacard.framework.TransactionException- if the operation would cause the commit capacity to be exceeded
-
clearEvent
void clearEvent(short event) throws ToolkitException, javacard.framework.TransactionExceptionClears an event in the Toolkit Registry entry of the applet.- Parameters:
event- the value of the event to unregister (between -32768 and 32767)- Throws:
ToolkitException- with the following reason codes:- EVENT_NOT_ALLOWED if event is EVENT_MENU_SELECTION, EVENT_MENU_SELECTION_HELP_REQUEST, EVENT_TIMER_EXPIRATION, EVENT_STATUS_COMMAND, EVENT_EVENT_ DOWNLOAD_LOCAL_CONNECTION
javacard.framework.TransactionException- Description of the Exception
-
isEventSet
boolean isEventSet(short event)
Allows to know if an event is set in the Toolkit Registry entry of the applet.- Parameters:
event- the value of the event (between -32768 and 32767)- Returns:
- true if the event is set in the Toolkit Registry entry of the applet, false otherwise
-
disableMenuEntry
void disableMenuEntry(byte id) throws ToolkitException, javacard.framework.TransactionExceptionDisables a menu entry. This method doesn't modify the registration state to the EVENT_MENU_SELECTION and EVENT_MENU_SELECTION_HELP_REQUEST. After invocation of this method, during the current card session, the CAT Runtime Environment shall dynamically update the menu stored in the Terminal.- Parameters:
id- the menu entry identifier supplied by theinitMenuEntry()method- Throws:
ToolkitException- with the following reason codes:- ENTRY_NOT_FOUND if the menu entry does not exist for this applet
javacard.framework.TransactionException- if the operation would cause the commit capacity to be exceeded
-
enableMenuEntry
void enableMenuEntry(byte id) throws ToolkitException, javacard.framework.TransactionExceptionEnables a menu entry. This method doesn't modify the registration state to the EVENT_MENU_SELECTION and EVENT_MENU_SELECTION_HELP_REQUEST. After invocation of this method, during the current card session, the CAT Runtime Environment shall dynamically update the menu stored in the Terminal.- Parameters:
id- the menu entry identifier supplied by theinitMenuEntry()method- Throws:
ToolkitException- with the following reason codes:- MENU_ENTRY_NOT_FOUND if the menu entry does not exist for this applet
javacard.framework.TransactionException- if the operation would cause the commit capacity to be exceeded
-
initMenuEntry
byte initMenuEntry(byte[] menuEntry, short offset, short length, byte nextAction, boolean helpSupported, byte iconQualifier, short iconIdentifier) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException, ToolkitException, javacard.framework.TransactionExceptionInitialises the next menu entry allocated at loading. The default state of the menu entry is 'enabled'. The value of thehelpSupportedboolean parameter defines the registration status of the applet to the event EVENT_MENU_SELECTION_HELP_REQUEST. The applet is registered to the EVENT_MENU_SELECTION. The icon identifier provided will be added to the icon identifier list of the item icon identifier list Comprehension TLV if all the applets registered to the EVENT_MENU_SELECTION provide it. The Icon list qualifier transmitted to the Terminal will be 'icon is not self explanatory' if one of the applet registered prefers this qualifier. This method shall be called by the applet in the same order than the order of the item parameters defined at the applet loading if the applet has several menu entries. The applet shall initialise all its loaded menu entries during its installation.- Parameters:
menuEntry- a reference on a byte array, containing the menu entry stringoffset- offset of the menu entry string in the bufferlength- length of the menu entry stringnextAction- a byte coding the next action indicator for the menu entry (or 0)helpSupported- equals true if help is available for the menu entryiconQualifier- the preferred value for the icon list qualifiericonIdentifier- the icon identifier for the menu entry (0 means no icon)- Returns:
- the identifier attached to the initialised menu entry
- Throws:
java.lang.NullPointerException- ifmenuEntryisnulljava.lang.ArrayIndexOutOfBoundsException- ifoffsetorlengthor both would cause access outside array boundsToolkitException- with the following reason codes:- REGISTRY_ERROR if the menu entry cannot be initialised (e.g. no more item data in applet loading parameter)
- ALLOWED_LENGTH_EXCEEDED if the menu entry string is bigger than the allocated space
javacard.framework.TransactionException- if the operation would cause the commit capacity to be exceeded
-
changeMenuEntry
void changeMenuEntry(byte id, byte[] menuEntry, short offset, short length, byte nextAction, boolean helpSupported, byte iconQualifier, short iconIdentifier) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException, ToolkitException, javacard.framework.TransactionExceptionChanges the value of a menu entry. The default state of the changed menu entry is 'enabled'. The value of thehelpSupportedboolean parameter defines the registration status of the EVENT_MENU_SELECTION_HELP_REQUEST event. The icon identifier provided will be added to the icon identifier list of the item icon identifier list Comprehension TLV if all the applets registered to the EVENT_MENU_SELECTION provide it. The Icon list qualifier transmitted to the Terminal will be 'icon is not self explanatory' if one of the applet registered prefers this qualifier. After the invocation of this method, during the current card session, the CAT Runtime Environment shall dynamically update the menu stored in the Terminal.- Parameters:
id- the menu entry identifier supplied by theinitMenuEntry()methodmenuEntry- a reference on a byte array, containing the menu entry stringoffset- the position of the menu entry string in the bufferlength- the length of the menu entry stringnextAction- a byte coding the next action indicator for the menu entry (or 0)helpSupported- equals true if help is available for the menu entryiconQualifier- the preferred value for the icon list qualifiericonIdentifier- the icon identifier for the menu entry (0 means no icon)- Throws:
java.lang.NullPointerException- ifmenuEntryisnulljava.lang.ArrayIndexOutOfBoundsException- ifoffsetorlengthor both would cause access outside array boundsToolkitException- with the following reason codes:- MENU_ENTRY_NOT_FOUND if the menu entry does not exist for this applet
- ALLOWED_LENGTH_EXCEEDED if the menu entry string is bigger than the allocated space
javacard.framework.TransactionException- if the operation would cause the commit capacity to be exceeded
-
allocateTimer
byte allocateTimer() throws ToolkitException, javacard.framework.TransactionExceptionAsks the CAT Runtime Environment to allocate a Timer that the applet can manage. By calling this method the applet is registered to the EVENT_TIMER_EXPIRATION of the allocated timer. The timer is allocated by the applet until it explicitly releases it. So it can then issue the Timer Management proactive command to start, stop or get the value of its allocated timer.- Returns:
- the identifier of the Timer allocated to the applet
- Throws:
ToolkitException- with the following reason codes:- NO_TIMER_AVAILABLE if all the timers are allocated or the maximum number of timers have been allocated to this applet
javacard.framework.TransactionException- if the operation would cause the commit capacity to be exceeded
-
releaseTimer
void releaseTimer(byte timerIdentifier) throws ToolkitException, javacard.framework.TransactionExceptionRelease a Timer that has been allocated to the calling applet. The applet is deregistered of the EVENT_TIMER_EXPIRATION for the indicated Timer Identifier.- Parameters:
timerIdentifier- the identifier of the Timer to be released- Throws:
ToolkitException- with the following reason codes:- INVALID_TIMER_ID if the
timerIdentifierdis not allocated to this applet.
- INVALID_TIMER_ID if the
javacard.framework.TransactionException- if the operation would cause the commit capacity to be exceeded
-
requestPollInterval
void requestPollInterval(short duration) throws ToolkitException, javacard.framework.TransactionExceptionRequests a duration for the EVENT_STATUS_COMMAND event of the registering Toolkit Applet. Due to different duration requested by other Toolkit Applets or due to restriction of the Terminal, the CAT Runtime Environment may adjust another duration. This method can be used at every time to request a new duration.- Parameters:
duration- specifies the number of seconds requested for proactive polling. The maximum value ofdurationis15300(255 minutes). Ifdurationis equal toPOLL_NO_DURATION, the calling applet deregisters fromEVENT_STATUS_COMMAND, and the CAT Runtime Environment shall issue aPOLLING_OFFproactive command when no more ToolkitApplets are regustered for this event or it shall issuePOLL_INTERVALLproactive command using the shortest duration among those requested by Applets registered to this event if different from the current system poll interval value. Ifdurationis equal toPOLL_SYSTEM_DURATION, the calling applet registers to theEVENT_STATUS_COMMANDand let the CAT Runtime Environment define the duration. If the method is invoked during the processing of the eventEVENT_POLL_INTERVAL_NEGOTIATIONand if the requested value is longer than the one suggested by the Terminal, then the requested value shall be ignored.- Throws:
ToolkitException- with the following reason codes:- REGISTRY_ERROR if
durationis greater than the maximum value.
- REGISTRY_ERROR if
javacard.framework.TransactionException- if the operation would cause the commit capacity to be exceeded
-
getPollInterval
short getPollInterval()
Returns the number of seconds of the adjusted duration for the calling Toolkit Applet. If the returned duration is equal toPOLL_NO_DURATION, the Toolkit Applet is not registered to EVENT_STATUS_COMMAND event. The returned duration may :- be a multiple of the real adjusted poll interval time at the Terminal.
- differ from the requested duration due to request of other toolkit applets or due to restrictions of the current Terminal.
- be the poll interval duration that was determined with the POLL INTERVAL NEGOTIATION mechanism
- be changed during the card session due requests from other Toolkit Applets
- not correspond to the elapsed time due to additional STATUS commands send by the Terminal.
- Returns:
- the number of seconds of the adjusted duration for the applet
-
allocateServiceIdentifier
byte allocateServiceIdentifier() throws ToolkitException, javacard.framework.TransactionExceptionAllocate a Service identifier that the applet can manage.
By calling this method the applet is registered to the EVENT_EVENT_ DOWNLOAD_LOCAL_CONNECTION of the allocated service.
The service identifier is allocated by the applet until it explicitly releases it. It can then issue the proactive command DECLARE SERVICE to add or delete a service to the terminal service database.- Returns:
- the identifier of the Service allocated to the applet
- Throws:
ToolkitException- with the following reason codes:- NO_SERVICE_ID_AVAILABLE if all the services are allocated or the maximum number of services Identifiers have been allocated to this applet
javacard.framework.TransactionException
-
releaseServiceIdentifier
void releaseServiceIdentifier(byte serviceIdentifier) throws ToolkitException, javacard.framework.TransactionExceptionRelease a Service Identifier that has been allocated to the calling applet.
The applet is deregistered of the EVENT_EVENT_ DOWNLOAD_LOCAL_CONNECTION for the indicated Service Identifier.- Parameters:
serviceIdentifier- the identifier of the Service to be released- Throws:
ToolkitException- with the following reason codes:- INVALID_SERVICE_ID if the
serviceIdentifieris not allocated to this Applet.
- INVALID_SERVICE_ID if the
javacard.framework.TransactionException
-
registerFileEvent
void registerFileEvent(short fileEvent, byte[] baFileList, short sOffset1, short sLength1, byte[] baADFAid, short sOffset2, byte bLength2) throws ToolkitException, java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException, javacard.framework.TransactionException, javacard.framework.SystemExceptionRegister a ToolkitRegistry object to theEVENT_EXTERNAL_FILE_UPDATEfor a file list.- Parameters:
fileEvent- Indicates the File event to be registeredbaFileList- array containing the file list. The baFileList shall be coded as the value part of the COMPREHENSION-TLV File List defined in TS 102 223 If the path provided indicates a dedicated file (DF), the Applet shall be triggered when an elementary file that is an immediate child of the DF is updated.sOffset1- offset in thebaFileListbuffer for event registrationsLength1- length in thebaFileListbuffer for event registrationbaADFAid- array containing the AID of the ADF. ThebaADFAidshall be coded as the value part of the COMPREHENSION-TLV AID defined in TS 102 223. IfbaADFAidisnullnull, it indicates that the file is located under the MF and not located under an ADF .sOffset2- offset in thebaADFAidbuffer for event registrationbLength2- length in thebaADFAidbuffer for event registration- Throws:
java.lang.NullPointerException- ifbaFileListisnulljava.lang.ArrayIndexOutOfBoundsException- ifsOffsetorsLengthor both would cause access outside array boundsjavacard.framework.TransactionException- if the operation would cause the commit capacity to be exceededjavacard.framework.SystemException- with the following reason code:SystemException.ILLEGAL_VALUEifbLength2is not in the range of 5 - 16 bytes.
ToolkitException- with the following reason code:EVENT_NOT_ALLOWEDif the event is one of the following events: EVENT_MENU_SELECTION, EVENT_MENU_SELECTION_HELP_REQUEST, EVENT_TIMER_EXPIRATION, EVENT_STATUS_COMMANDEVENT_NOT_SUPPORTEDif the event is not one of the following event: EVENT_EXTERNAL_FILE_UPDATE, EVENT_REMOTE_FILE_UPDATE.
UICCException- in case of errorCOMMAND_NOT_ALLOWEDif the referenced file is terminated
-
deregisterFileEvent
void deregisterFileEvent(short fileEvent, byte[] baFileList, short sOffset1, short sLength1, byte[] baADFAid, short sOffset2, byte bLength2) throws ToolkitException, java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException, javacard.framework.TransactionException, javacard.framework.SystemExceptionDeregister a ToolkitRegistry object from theEVENT_EXTERNAL_FILE_UPDATEfor a file list.- Parameters:
fileEvent- Indicates the File event to be deregisteredbaFileList- array containing the file list. ThebaFileListshall be coded as the value part of the COMPREHENSION-TLV File List defined in TS 102 223 If a file inbaFileListis a dedicated file the deregistration shall not affect the monitoring of an elementary file within the dedicated file that was individually registered. If a file inbaFileListis an elementary file the deregistration will not affect the monitoring of the parent dedicated file that was individually registered.sOffset1- offset in thebaFileListbuffer for event registrationsLength1- length in thebaFileListbuffer for event registrationbaADFAid- array containing the AID of the ADF. ThebaADFAidshall be coded as the value part of the COMPREHENSION-TLV AID defined in TS 102 223. IfbaADFAidisnull, it indicates that the file is located under the MF and not located under an ADF .sOffset2- offset in thebaADFAidbuffer for event registrationbLength2- length in thebaADFAidbuffer for event registration- Throws:
java.lang.NullPointerException- ifbaFileListisnulljava.lang.ArrayIndexOutOfBoundsException- ifsOffsetorsLengthor both would cause access outside array boundsjavacard.framework.TransactionException- if the operation would cause the commit capacity to be exceededjavacard.framework.SystemException- with the following reason codes:SystemException.ILLEGAL_VALUEifbLength2is not in the range of 5 � 16 bytes.
ToolkitException- with the following reason code:EVENT_NOT_ALLOWEDif the event is one of the following events: EVENT_MENU_SELECTION, EVENT_MENU_SELECTION_HELP_REQUEST, EVENT_TIMER_EXPIRATION, EVENT_STATUS_COMMANDEVENT_NOT_SUPPORTEDif the event is not one of the following event: EVENT_EXTERNAL_FILE_UPDATE, EVENT_REMOTE_FILE_UPDATE.
UICCException- in case of errorCOMMAND_NOT_ALLOWEDif the referenced file is terminated
-
registerFileEvent
void registerFileEvent(short fileEvent, FileView aFileView) throws ToolkitException, java.lang.NullPointerException, javacard.framework.TransactionExceptionRegister a ToolkitRegistry object to theEVENT_EXTERNAL_FILE_UPDATEfor a file.- Parameters:
fileEvent- Indicates the File event to be registeredaFileView- The FileView object's current file indicates the file to be monitored. If the current file is a dedicated file, the Applet shall be triggered when an elementary file that is an immediate child of the DF is updated. A later change in the FileView shall not modify the registration.- Throws:
java.lang.NullPointerException- ifaFileViewisnulljavacard.framework.TransactionException- if the operation would cause the commit capacity to be exceededToolkitException- with the following reason code:EVENT_NOT_ALLOWEDif the event is one of the following events: EVENT_MENU_SELECTION, EVENT_MENU_SELECTION_HELP_REQUEST, EVENT_TIMER_EXPIRATION, EVENT_STATUS_COMMANDEVENT_NOT_SUPPORTEDif the event is not one of the following event: EVENT_EXTERNAL_FILE_UPDATE, EVENT_REMOTE_FILE_UPDATE.
UICCException- in case of errorCOMMAND_NOT_ALLOWEDif the referenced file is terminated
-
deregisterFileEvent
void deregisterFileEvent(short fileEvent, FileView aFileView) throws ToolkitException, java.lang.NullPointerException, javacard.framework.TransactionExceptionDeregister a ToolkitRegistry object from theEVENT_EXTERNAL_FILE_UPDATEfor a file.- Parameters:
fileEvent- Indicates the File event to be deregisteredaFileView- The FileView object's current file indicates the file that is no longer monitored. If the current file is a dedicated file the deregistration shall not affect the monitoring of an elementary file within the dedicated file that was individually registered. If the current file is an elementary file the deregistration will not affect the monitoring of the parent dedicated file that was individually registered.- Throws:
java.lang.NullPointerException- ifaFileViewisnulljavacard.framework.TransactionException- if the operation would cause the commit capacity to be exceededToolkitException- with the following reason code:EVENT_NOT_ALLOWEDif the event is one of the following events: EVENT_MENU_SELECTION, EVENT_MENU_SELECTION_HELP_REQUEST, EVENT_TIMER_EXPIRATION, EVENT_STATUS_COMMANDEVENT_NOT_SUPPORTEDif the event is not one of the following event: EVENT_EXTERNAL_FILE_UPDATE, EVENT_REMOTE_FILE_UPDATE.
UICCException- in case of errorCOMMAND_NOT_ALLOWEDif the referenced file is terminated
-
setMenuEntryTextAttribute
void setMenuEntryTextAttribute(byte id, byte[] textAttribute, short offset, short length) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException, ToolkitException, javacard.framework.TransactionExceptionSets the text attribute of a menu entry. The text attribute provided will set the entry in the Text Attribute list of the Item text attribute list Comprehension TLV for the menu entry referenced by the parameterid. After the invocation of this method, during the current card session, the CAT Runtime Environment shall dynamically update the menu stored in the terminal.- Parameters:
id- the menu entry identifier supplied by theinitMenuEntry()methodtextAttribute- a reference on a byte array, containing the menu text attributeoffset- the position of the menu entry text attribute in the bufferlength- the length of the menu entry text attribute in the buffer- Throws:
java.lang.NullPointerException- iftextAttributeisnulljava.lang.ArrayIndexOutOfBoundsException- ifoffsetorlengthor both would cause access outside array boundsToolkitException- with the following reason codes:- MENU_ENTRY_NOT_FOUND if the menu entry does not exist for this applet
- BAD_INPUT_PARAMETER if the
lengthis different from 4
javacard.framework.TransactionException- if the operation would cause the commit capacity to be exceeded
-
-