m (Reverted edits by Uroboro (talk) to last revision by Peterfillmore) |
|||
(7 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 | It is interacted with the [[nfcd]] daemon using [[XPC]]. | ||
SELD plist: | SELD plist: | ||
Line 39: | Line 39: | ||
{| class="wikitable" | {| class="wikitable" | ||
! ID !! Command | ! ID !! Command !! Object | ||
|- | |- | ||
| 0x0 - 0x8 || throw "unknown command" error | | 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 |