Seld: Difference between revisions

From iPhone Development Wiki
No edit summary
m (Reverted edits by Uroboro (talk) to last revision by Peterfillmore)
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This is the "Secure Element Daemon" used to communicate with the secure element hardware on the device.
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.
It is interacted with the [[nfcd]] daemon using [[XPC]].


SELD plist:
SELD plist:
<source lang="javascript">
{
{
     EnablePressuredExit = 1;
     EnablePressuredExit = 1;
Line 16: Line 17:
     UserName = mobile;
     UserName = mobile;
}
}
</source>


ApplePay personalization is performed using EMV BER-TLV commands to the secure element.
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 ==
{| class="wikitable"
! 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 ==
{| class="wikitable"
! 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 ==
{| class="wikitable"
! 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
|-
|}

Latest revision as of 02:54, 11 April 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