Skip to content

Android APDU driver

pekkal edited this page Dec 20, 2016 · 21 revisions

Smart Card APDU-BIBO: "bytes in, bytes out" for Android AKA "MOPP-1"

Smart card access library (MIT license) for native Android Java applications. Provide a level of indirection ("API") for enumerating "readers" (USB-OTG, internal NFC, built-in SE, emulated soft-token, possibly BT and others) and "tokens" (smart cards that speak APDU-s) in a unified way via plugins through single interface, with UX focus on the error-prone and asynchronous contactless experience.

Result: preferably an interface not unlike IsoDep.transceive() with adequate asynchronous handling (but possibly consider mimicking "PCSC/Winscard/SCard*" and/or javax.smartcardio interfaces as well)

Readers to test (TODO: exact USB ID-s):

The goal is to be able to support any of the mentioned readers (preferably any CCID compatible reader) with the same open source codebase the same way as IsoDep interface works with any phone with a (compatible) NFC chip, avoiding a possible "driver app NASCAR problem". Existing vendor drivers come in the form of limited libraries with no source code, where API experience varies based on vendor, devices and interfaces. Some devices (BT, 3.5mm jack etc) are proprietary and unrealistic to support with 3rd party open source driver, but application developer should not be punished for it. Thus the support for plugging in proprietary libraries with a thin adaption layer.

MISC (apps etc)

NFC

USB-OTG-CCID

IPC

(AKA "MOPP-2")

TODO

PC/SC level relay

Clone this wiki locally