Seld

From iPhone Development Wiki
Revision as of 02:35, 1 October 2015 by Peterfillmore (talk | contribs)

This is the "Secure Element Daemon" used to communicate with the secure element hardware on the device. It is interacted with by the nfcd daemon using XPC.

SELD plist:

{
    EnablePressuredExit = 1;
    EnableTransactions = 1;
    ExitTimeOut = 40;
    Label = "com.apple.seld";
    MachServices =     {
        "com.apple.seld" = 1;
        "com.apple.seld.aps" = 1;
    };
    Program = "/usr/libexec/seld";
    RunAtLoad = 1;
    UserName = mobile;
}

ApplePay personalization is performed using EMV BER-TLV commands to the secure element.

Major objects in the seld binary are:

  • NFSecureElement(CertificateAuthority)
  • SEDaemon
  • NFSecureElement(ISO7816)
  • NFSecureElement
  • NFSecureElement(ContactlessRegistry)
  • NFSecureElementCache
  • NFSecureElementRemoteAdminAgent
  • NFSecureElementRemoteAdminRequest
  • NFSecureElementRemoteAdminRegistry
  • NFResponseAPDU
  • NFCardManagerAgent
  • NFCardManagerAgent_XPC


NFCardManagerAgent Supported XPC Commands

ID Command
0x0 - 0x8 throw "unknown command" error
0x11 [NFCardManagerAgent signChallenge:callback:]
0x12 [NFCardManagerAgent authorize:callback:]
0x13 [NFCardManagerAgent deauthorize]
0x14 [NFCardManagerAgent getApplications:]
0x15 [NFCardManagerAgent asActive:checkCache:callback:]
0x16 [NFCardManagerAgent markAllApplicationsForDelete]
0x17 [NFCardManagerAgent getActiveApplications:]
0x18 [NFCardManagerAgent getRestrictedMode:] 0x19-0x89 throw unknown command error 0x90 call [NFCardManagerAgent dumpAppData:callback:]
0x91 throw unknown command error
0x92 call [NFCardManagerAgent dumpRestrictedModeLogWithCallBack:]