History

NFC: Define secure element IO API and commands

In order to send and receive ISO7816 APDUs to and from NFC embedded secure elements, we define a specific netlink command. On a typical SE use case, host applications will send very few APDUs (Less than 10) per transaction. This is why we decided to go for a simple netlink API. Defining another NFC socket protocol for such low traffic would have been overengineered.

Samuel Ortiz committed 13 years ago

Commit 72b70b61 parent b9c0c672 files · +9 −0Browse files

Showing the changes to include/uapi/linux (1 of 2 files). Show all

Unified · Split

include/uapi/linux/nfc.h+4−0
@@ -85,6 +85,7 @@ · 84 unmodified lines
8585 * a specific SE notifies us about the end of a transaction. The parameter
8686 * for this event is the application ID (AID).
8787 * @NFC_CMD_GET_SE: Dump all discovered secure elements from an NFC controller.
88+ * @NFC_CMD_SE_IO: Send/Receive APDUs to/from the selected secure element.
8889 */
8990 enum nfc_commands {
9091 NFC_CMD_UNSPEC,
@@ -114,6 +115,7 @@ enum nfc_commands { · 23 unmodified lines
114115 NFC_EVENT_SE_CONNECTIVITY,
115116 NFC_EVENT_SE_TRANSACTION,
116117 NFC_CMD_GET_SE,
118+ NFC_CMD_SE_IO,
117119 /* private: internal use only */
118120 __NFC_CMD_AFTER_LAST
119121 };
@@ -147,6 +149,7 @@ enum nfc_commands { · 27 unmodified lines
147149 * @NFC_ATTR_SE_INDEX: Secure element index
148150 * @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED)
149151 * @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status
152+ * @NFC_ATTR_APDU: Secure element APDU
150153 */
151154 enum nfc_attrs {
152155 NFC_ATTR_UNSPEC,
@@ -174,6 +177,7 @@ enum nfc_attrs { · 21 unmodified lines
174177 NFC_ATTR_SE_TYPE,
175178 NFC_ATTR_SE_AID,
176179 NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS,
180+ NFC_ATTR_SE_APDU,
177181 /* private: internal use only */
178182 __NFC_ATTR_AFTER_LAST
179183 };