nfc_se_open_logical_channel_direct()
Create and obtain access to the logical channel for a specific Secure Element.
Synopsis:
#include <nfc/nfc_se_access.h>
NFC_API nfc_result_t nfc_se_open_logical_channel_direct(secure_element_id_type_t secureElementType, const uint8_t *pAID, size_t nLengthOfAIDInBytes, fcp_type_t fcpResponseType, uint32_t *phSESession, uint32_t *phSEChannel, int32_t *pResponseLen)
Arguments:
- secureElementType
-
The type of secure element that the channel should be created for; either UICC_SE_ID or EMBEDDED_SE_ID.
- pAID
-
The Application ID that the caller wants to open a channel with.
- nLengthOfAIDInBytes
-
The length of the pAID argument.
- fcpResponseType
-
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.
- phSESession
-
The session created to the secure element. The caller of this method is responsible for closing the session via the nfc_se_session_close_session() method.
- phSEChannel
-
The channel created to the secure element. The caller of this method is responsible for closing the channel via the nfc_se_channel_close_channel() method.
- pResponseLen
-
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 is 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.
Library:
libnfcDescription:
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.
Returns:
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_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.