Site Tools

Sidebar

Smart Card Solution

User Manual

JavaCard API Samples

Java Card Specification

Knowledge Sharing

javacard:jcre:11.3.4.1_applet_instance_deletion

11.3.4.1 Applet Instance Deletion

The Java Card RE shall guarantee that applet instance deletion is not attempted and thereby deemed unsuccessful in the following cases:

  • An object owned by the applet instance is referenced from an object owned by another applet instance on the card.
  • An object owned by the applet instance is referenced from a static field on any package on the card.
  • An applet instance belonging to the context of the applet instance being deleted, is active on the card.

Otherwise, the Java Card RE shall delete the applet instance.

Note - The applet deletion attempt may fail due to security considerations or resource limitations.

The applet instance deletion operation must be atomic. If a reset or power fail occurs during the deletion process, it must result in either an unsuccessful applet instance deletion or a successfully completed applet instance deletion before any applet is selected on the card.

Following an unsuccessful applet instance deletion, the applet instance shall be selectable, and all objects owned by the applet shall remain unchanged. The functionality of all applet instances on the card remains the same as prior to the unsuccessful attempt.

Following a successful applet instance deletion, it shall not be possible to select that applet, and no object owned by the applet can be accessed by any applet currently on the card or by a new applet created in the future.

The resources used by the applet instance may be recovered for reuse.

The AID of the deleted applet instance may be reassigned to a new applet instance.

Multiple Applet Instance Deletion

The Java Card RE shall guarantee that multiple applet instance deletion is not attempted, and thereby deemed unsuccessful in the following cases:

  • An object owned by any of the applet instances being deleted is referenced from an object owned by an applet instance on the card which is not being deleted.
  • An object owned by any of the applet instances being deleted is referenced from a static field on a package on the card.
  • An applet instance belonging to the contexts of any of the applet instances being deleted is active on the card.

Otherwise, the Java Card RE shall delete the applet instances.

Note - The applet deletion attempt may fail due to security considerations or resource limitations.

The multiple applet instance deletion operation must be atomic. If a reset or power fail occurs during the deletion process, it must result in either an unsuccessful multiple applet instance deletion or a successfully completed multiple applet instance deletion before any applet is selected on the card.

Following an unsuccessful multiple applet instance deletion, all applet instances shall be selectable, and all objects owned by the applets shall remain unchanged. The functionality of all applet instances on the card remains the same as prior to the unsuccessful attempt.

Following a successful multiple applet instance deletion, it shall not be possible to select any of the deleted applets, and no object owned by the deleted applets can be accessed by any applet currently on the card or by a new applet created in the future.

The resources used by the applet instances may be recovered for reuse.

The AID of the deleted applet instances may be reassigned to new applet instances.

javacard/jcre/11.3.4.1_applet_instance_deletion.txt · Last modified: 2017/05/13 04:07 (external edit)