Difference between revisions of "Seld"

From iPhone Development Wiki
Jump to: navigation, search
m (Formatting.)
Line 35: Line 35:
 
* NFCardManagerAgent_XPC
 
* NFCardManagerAgent_XPC
  
 
+
= NFCardManagerAgent Supported XPC Commands =
== NFCardManagerAgent Supported XPC Commands ==
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 71: Line 70:
 
|}
 
|}
  
== SEDaemon Supported XPC Commands ==
+
= SEDaemon Supported XPC Commands =
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 102: Line 101:
 
|}
 
|}
  
== NFCardManagerAgent_XPC Supported XPC Commands ==
+
= NFCardManagerAgent_XPC Supported XPC Commands =
  
 
{| class="wikitable"
 
{| class="wikitable"

Revision as of 19:56, 2 January 2016

This is the "Secure Element Daemon" used to communicate with the secure element hardware on the device. It is interacted with 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 Object
0x0 - 0x8 throw "unknown command" error ???
0x10 [NFCardAgentManager getInfoCache] ??
0x11 [NFCardManagerAgent signChallenge:callback:] raw challenge data
0x12 [NFCardManagerAgent authorize:callback:] dict{Authtype=??, SSEHandle=??}
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 N/A
0x90 call [NFCardManagerAgent dumpAppData:callback:] ???
0x91 call [NFCardManagerAgent dumpRestrictedModeLogWithCallBack:] ???
>0x91 throw unknown command error N/A

SEDaemon Supported XPC Commands

ID Command Object
<0x20 [NFCardManagerApplet XPCConnection:didReceiveCommand] raw challenge data
0x20 [SEDaemon setDbgURL: dict{Authtype=??, SSEHandle=??}
0x21 [SEDaemon getStateInfo] ???
0x22 [SEDaemon getNextPushInfo] ???
0x23 ??? ???
0x24 [SEDaemon pushTopicList:] ???
0x25 [SEDaemon isWiredModeAvailable:] ???
0x26 updateRegionalRegistrationData ???
0x27 [SEDaemon sharedRegistry] ???
0x30 register event listenter ???
0x31 something else for event listening? ???
>0x31 [NFCardManagerApplet XPCConnection:didReceiveCommand] ???

NFCardManagerAgent_XPC Supported XPC Commands

ID Command Object
0x0 - 0x8 throw "unknown command" error ???
0x10 [NFCardAgentManager getInfoCache] ??
0x11 [NFCardManagerAgent signChallenge:callback:] raw challenge data
0x12 [NFCardManagerAgent authorize:callback:] dict{Authtype=??, SSEHandle=??}
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 N/A
0x90 call [NFCardManagerAgent dumpAppData:callback:] ???
0x91 call [NFCardManagerAgent dumpRestrictedModeLogWithCallBack:] ???
>0x91 throw unknown command error N/A