]> git.saurik.com Git - apple/security.git/blob - securityd/src/securityd.d
Security-57740.31.2.tar.gz
[apple/security.git] / securityd / src / securityd.d
1 /*
2 * DTrace provider for securityd
3 */
4
5
6 /*
7 * Work around 5194316
8 */
9 #define uint32_t unsigned
10
11
12 /*
13 * Types
14 */
15 typedef const void *DTHandle;
16 typedef uint32_t DTPort;
17 typedef uint32_t DTGuest;
18 typedef uint8_t bool;
19
20 /*
21 * The main static provider for securityd
22 */
23 provider securityd {
24 /*
25 * Overall operational events
26 */
27 probe installmode(); // configuring for system installation scenario
28 probe initialized(const char *bootstrapName);
29
30
31 /*
32 * Keychain activity (DbCommon status change)
33 */
34 probe keychain__create(DTHandle common, const char *name, DTHandle db);
35 probe keychain__make(DTHandle common, const char *name, DTHandle db);
36 probe keychain__join(DTHandle common, const char *name, DTHandle db);
37 probe keychain__unlock(DTHandle id, const char *name);
38 probe keychain__lock(DTHandle id, const char *name);
39 probe keychain__release(DTHandle id, const char *name);
40
41 /*
42 * Client management
43 */
44 probe client__new(DTHandle id, int pid, DTHandle session, const char *path, DTPort taskport, int uid, int gid, bool flipped);
45 probe client__release(DTHandle id, int pid);
46 probe client__connection__new(DTHandle id, DTPort port, DTHandle client);
47 probe client__connection__release(DTHandle id);
48
49 probe client__change_session(DTHandle id, DTHandle session);
50 probe client__reset__amnesia(DTHandle id);
51 probe client__reset__full(DTHandle id);
52
53 probe request__entry(const char *name, DTHandle connection, DTHandle process);
54 probe request__return(uint32_t osstatus);
55
56 /*
57 * Session management
58 */
59 probe session__create(DTHandle id, uint32_t sessionId, const void *auditInfo, uint32_t auditInfoLength);
60 probe session__kill(DTHandle id, uint32_t sessionId);
61 probe session__destroy(DTHandle id, uint32_t sessionId);
62
63 probe session__notify(uint64_t id, uint32_t flags, int uid);
64
65 /*
66 * Port-related events (internal interest only)
67 */
68 probe ports__dead__connection(DTPort port);
69 probe ports__dead__process(DTPort port);
70 probe ports__dead__session(DTPort port);
71 probe ports__dead__orphan(DTPort port);
72
73 /*
74 * Power management and tracking
75 */
76 probe power__sleep();
77 probe power__wake();
78 probe power__on();
79
80 /*
81 * Code Signing related
82 */
83 probe host__register(DTHandle proc, DTPort port);
84 probe host__proxy(DTHandle proc, DTPort port);
85 probe host__unregister(DTHandle proc);
86 probe guest__create(DTHandle proc, DTGuest host, DTGuest guest, uint32_t status, uint32_t flags, const char *path);
87 probe guest__cdhash(DTHandle proc, DTGuest guest, const void *hash, uint32_t length);
88 probe guest__destroy(DTHandle proc, DTGuest guest);
89 probe guest__change(DTHandle proc, DTGuest guest, uint32_t status);
90
91 /*
92 * Child management
93 */
94 probe child__dying(int pid);
95 probe child__checkin(int pid, DTPort servicePort);
96 probe child__stillborn(int pid);
97 probe child__ready(int pid);
98
99 /*
100 * Authorization
101 */
102 /* creation */
103 probe auth__create(DTHandle session, void *authref);
104 /* rule evaluation types */
105 probe auth__allow(DTHandle authref, const char *rule);
106 probe auth__deny(DTHandle authref, const char *rule);
107 probe auth__user(DTHandle authref, const char *rule);
108 probe auth__rules(DTHandle authref, const char *rule);
109 probe auth__kofn(DTHandle authref, const char *rule);
110 probe auth__mechrule(DTHandle authref, const char *rule);
111 probe auth__mech(DTHandle authref, const char *mechanism);
112 /* evaluation intermediate results */
113 probe auth__user__allowroot(DTHandle authref);
114 probe auth__user__allowsessionowner(DTHandle authref);
115 /* evaluation final result */
116 probe auth__evalright(DTHandle authref, const char *right, int32_t status);
117
118 /*
119 * Miscellaneous activity
120 */
121 probe shutdown__begin();
122 probe shutdown__count(int processesLeft, int dirtyCountLeft);
123 probe shutdown__now();
124
125 probe entropy__collect();
126 probe entropy__seed(const void *data, uint32_t count);
127 probe entropy__save(const char *path);
128
129 probe signal__received(int signal);
130 probe signal__handled(int signal);
131 };