In response to the MANAGE CHANNEL OPEN
command, the dispatcher follows this procedure:
If the origin channel is not open, an error is returned.
Determines whether the channel is open or closed. If the channel is open, an error is returned.
Opens the channel.
If the origin channel is 0
, the default applet (if there is one) is selected in the new channel.
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 |
---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
- |
|
|
|
|
:
CLA | INS | P1 | P2 | Lc | Data | Le | SW1 | SW2 | SW2 |
---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
- |
|
|
|
|
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.