communicate with javacard applet using CryptoTokenKit on iOS

Looking at the CryptoTokenKit function definitions e.g. TKSmartCardTokenSession or TKSmartCard for macOS, given below


/!

@abstract TKSmartCardTokenSession represents token session based on SmartCard token.

@discussion When implementing SmartCard token extension, subclass TKSmartCardTokenSession and implement TKTokenSessionDelegate on it. Use #token property to get access and send APDUs to the underlying SmartCard.

*/

__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0)

@interface TKSmartCardTokenSession : TKTokenSession


we are seeing that CryptoTokenKit in some way is supported on iOS, hence the "__IOS_AVAILABLE(10.0)". These interfaces are part of the CryptoTokenKit.framework for macOS where the developer can build an app for interacting with the JavaCard applets. Unfortunately, this framework is not present on iOS for public use. This has been the case from iOS9 to iOS 10, as Eskimo pointed out in his repy on this thread, https://forums.developer.apple.com/thread/48005


We also see that the new smartcard extension is supported on iOS10 by looking at the sample function defininiton above and the way the secure enclave token is implemented for iOS. The setoken.appex for iOS10 implements the smartcard extension interfaces such as

  • TKToken
  • TKTokenDriver
  • TKTokenSession


The question we have now are:

  1. Is it still the case that iOS 11 still does not have public API for interacting with JavaCard applets on a SIM card?
  2. Can iOS 10 or 11 recognize the sim slot as a smartcard reader? Suppose we insert a sim card with JavaCard applet on it, could we send apdu commands to it or is it possible to use Keychain API to read the credentials stored there, using the smartard extension technology?
  3. Is the underlaying implementation of CryptoTokenKit on iOS limited only to handling secure enclave co-processor cryptographic functionalities? And that there would be no functionalities to interact with JavaCard based applets on a sim card inserted into the sim slot?

Hi,


I would also like to interacting with JavaCard applets on SIM card.

Is there any update on this post with iOS 13 ?


Thanks

communicate with javacard applet using CryptoTokenKit on iOS
 
 
Q