This command performs the functionality specified by
ETSI TS 102 484 [20] to manage APDU based secure channels.
P1 determines which sub procedure is required, the P2 parameter value meaning is specific to each P1 value. The command and response data are encapsulated in BER-TLV objects structured as defined in
clause 11.3 using tag
'73' for BER-TLV structured data and tag
'53' otherwise.
This command can chain successive blocks of command data, if present, with a maximum size of 255 bytes each, required for one operation using P2 to indicate the first/next block. The terminal performs the segmentation of the data, and the UICC the concatenation of the data. The first MANAGE SECURE CHANNEL APDU is sent with P2 indicating
"First block of command data". Following MANAGE SECURE CHANNEL APDUs are sent with P2 indicating
"Next block of command data". As long as the UICC has not received all segments of the command data it shall answer with SW1 SW2
'63 F1'. When all segments of the command data are received and if the command produces a response, the UICC shall answer with SW1 SW2
'62 F3'.
The command response data is retrieved from the UICC using one or more separate MANAGE SECURE CHANNEL APDUs with the same chaining mechanism as for the command data. The UICC performs the segmentation of the data, and the terminal the concatenation of the response data. The first MANAGE SECURE CHANNEL APDU is sent with P2 indicating
"First block of response data". Following MANAGE SECURE CHANNEL APDUs are sent with P2 indicating
"Next block of response data". As long as the UICC has not sent all segments of the response data it shall answer with SW1 SW2
'62 F1'. When all segments of the response data are sent, the UICC shall answer with SW1 SW2
'90 00'.
The following P1 values are defined:
Each sub procedure indicated by P1 is defined below.
The following P2 values are defined:
RFU bits in P1 and P2 shall be ignored by the UICC.
Clause 11.1.20.2 defines the MANAGE SECURE CHANNEL function and coding when P1 = 'Retrieve UICC Endpoints'.
This command allows the terminal to retrieve a list of secure channel endpoints from the UICC as defined in
ETSI TS 102 484 [20] and the maximum data container size available for the TRANSACT DATA command. In order to retrieve the end point information P2 is set to
"First block of response data" or in case of the response data longer than 255 bytes following blocks are retrieved be setting P2 to
"Next block of response data".
If this command is sent via any existing secure channel, then the endpoints returned shall be the end points that are currently available at the UICC end of this secure channel.
If there are endpoints available on the UICC, then an
"Endpoint information" TLV shall be present for each available
endpoint.
If the remaining Response is greater than 255 bytes then the next 255 bytes shall be returned and the SW1 SW2 shall be set to
"More data available".
If the remaining Response is less than or equal to 255 bytes then all of the bytes shall be returned and SW1 SW2 shall be set to
"normal ending of command".
Code |
Value |
CLA | As specified in clause 10.1.1 |
INS | As specified in clause 10.1.2 |
P1 | '00' |
P2 |
See Table 11.21b |
Lc | Not Present |
Data | Not Present |
Le | Length of expected response data |
Response data:
The UICC shall return the following data encapsulated in tag '73':
Description |
Tag |
Status |
UICC_ID TLV | '81' | M |
Endpoint information TLV | '82' | C |
Endpoint information TLV | '82' | C |
… | … | … |
Endpoint information TLV | '82' | C |
If no endpoints are available tag '82' is not returned. Multiple endpoints are indicated by multiple BER-TLV objects using tag '82'.
Byte(s) |
Description |
Value |
Length |
1 | Tag | '81' | 1 |
2 | Length | X | 1 |
3 to 3+X | UICC_ID | | X |
Coding of UICC_ID:
This shall be a unique value that identifies that UICC. This shall be the ICCID as defined for EFICCID.
Endpoint information TLV:
This TLV contains the identity and type for an available endpoint.
Byte(s) |
Description |
Value |
Length |
1 | Tag | '82' | 1 |
2 | Length | 7+X | 1 |
3 | Endpoint type | | 1 |
4 to 7 | Endpoint Secure channel capability | | 4 |
8 to 9 | Endpoint Port number | | 2 |
10 to 10+X | Endpoint identifier | | X |
Coding of Endpoint type value:
-
'01' = "Platform level secure channel endpoint".
-
'02' = "Application level secure channel endpoint".
Coding of Endpoint Secure channel capability value:
Byte 1:
Transport support
b8 |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
Meaning |
- | - | - | - | - | - | - | 1 | Accessible via APDU interface |
- | - | - | - | - | - | 1 | - | Accessible via USB IP interface |
- | - | - | - | - | 1 | - | - | Accessible via BIP IP interface |
X | X | X | X | X | - | - | - | RFU |
Byte 2:
Supported secure channel types
b8 |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
Meaning |
- | - | - | - | - | - | - | 1 | TLS |
- | - | - | - | - | - | 1 | - | Ipsec |
- | - | - | - | - | 1 | - | - | APDU secure channel |
- | - | - | - | 1 | - | - | - | Proprietary type known to both parties |
- | - | 0 | 0 | - | - | - | - | No information given |
- | - | 0 | 1 | - | - | - | - | Two connection Sas supported concurrently |
- | - | 1 | 0 | - | - | - | - | Three connection Sas supported concurrently |
- | - | 1 | 1 | - | - | - | - | Four connection Sas supported concurrently |
1 | - | - | - | - | - | - | - | Secure channel required for all communication to this endpoint |
- | X | - | - | - | - | - | - | RFU |
Byte 3:
Supported key agreement methods
b8 |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
Meaning |
- | - | - | - | - | - | - | 1 | Strong Preshared Keys - GBA |
- | - | - | - | - | - | 1 | - | Strong Preshared Keys - Proprietary Pre agreed keys |
- | - | - | - | - | 1 | - | - | Weak Preshared Keys - Proprietary Pre agreed keys |
- | - | - | - | 1 | - | - | - | Certificate exchange |
X | X | X | X | - | - | - | - | RFU |
Byte 4:
indicates the maximum data container size - this is the maximum container size that can be indicated in the Endpoint data container size BER-TLV in the MANAGE SECURE CHANNEL - Start Secure Channel for this endpoint. The coding is hexadecimal.
Coding of the Endpoint Port Number:
If the Endpoint Secure channel capability indicates support of TLS then the endpoint port number shall be the hex coded value of the TCP port to be used else this shall be set to 'FFFF'.
Coding of the Endpoint identifier value:
The endpoint identifier shall be the AID value of the application that hosts the endpoint. See
ETSI TS 101 220 [3].