Create and obtain access to the logical channel.
NFC_API nfc_result_t nfc_se_session_open_logical_channel(uint32_t hSESession, const uint8_t *pAID, size_t nLengthOfAIDInBytes, fcp_type_t fcpResponseType, uint32_t *phSEChannel, int32_t *pLengthOfResponseInBytes)
The handle to the session.
The Application ID that the caller wants to open a channel with.
The length of the pAID argument.
The format of the FCP information requested from the Secure Element. The value of this argument must be one of the constants defined by fcp_type_t. Use OPEN_NO_FCP_INFO if you are not interested in the results.
The channel created to the secure element.
The length of the response data returned as a result of the open call. This argument is set to 0 if there is no data and -1 if the provided fctResponseType argument is unsupported by the reader which the session has been opened on. It may be NULL if OPEN_NO_FCP_INFO is supplied to the fcpResponseType argument. Use the nfc_se_channel_get_transmit_data() function to read the data received prior to any APDU exchanges.
After access is obtained, a logical connection is created to an applet on the secure element. Logical channels are defined in the ISO 7816-4 specification.
NFC_RESULT_SUCCESS if the session is retrieved successfully; or one of the following:
- NFC_RESULT_SERVICE_CONNECTION_ERROR: An attempt to connect to the NFC system has failed.
- NFC_RESULT_INVALID_PARAMETER: A parameter is invalid.
- NFC_RESULT_SE_INVALID_HANDLE: The hSESession is invalid.
- NFC_RESULT_SE_OUT_OF_LOGICAL_CHANNELS: No logical channels are available, because all channels are in use.
- NFC_RESULT_SE_AID_NOT_FOUND: The applet with the specified Application ID (AID) cannot be found.
- NFC_RESULT_SE_REQUEST_REJECTED: The request is rejected by the Access Control files (ACF) or some other security mechanism.