MANAGE CHANNEL OPEN

In response to the MANAGE CHANNEL OPEN command, the dispatcher follows this procedure:

  1. If the origin channel is not open, an error is returned.

  2. Determines whether the channel is open or closed. If the channel is open, an error is returned.

  3. Opens the channel.

  4. If the origin channel is 0, the default applet (if there is one) is selected in the new channel.

  5. If the origin channel is not 0, the selected applet on the origin channel becomes the selected applet in new channel.

This MANAGE CHANNEL OPEN command opens a new channel from channel encoded in Q:

CLA INS P1 P2 Lc Data Le Data SW1 SW2

0xQ

0x70

00

00

0

-

1

0x0R

0x90

00

:

CLA INS P1 P2 Lc Data Le SW1 SW2 SW2

0xQ

0x70

00

0xR

0

-

0

0x90

00

00

This command produces the following results:

  • If channel encoded in Q is the basic channel (channel 0), the card's default applet is selected on channel encoded in R. No applet is selected if no default applet is defined.

  • If channel encoded in Q is other than the basic channel (channels 1, 2, ...19), the selected applet on channel encoded in Q becomes the current applet selected on channel R.

  • The applet on channel encoded in R can either accept or reject selection.

This command returns an error under the following circumstances:

  • The applet does not implement the javacard.framework.MultiSelectable interface, when an attempt to select the applet in more than one channel takes place.

  • The applet rejects selection or throws exception.

  • No channel is available.

  • Channel encoded in Q is not open.