]>
Commit | Line | Data |
---|---|---|
427c49bc A |
1 | /* Copyright (c) 2012 Apple Inc. All rights reserved. */ |
2 | ||
3 | #ifndef _SECURITY_AUTH_ITEMS_H_ | |
4 | #define _SECURITY_AUTH_ITEMS_H_ | |
5 | ||
6 | #include <Security/Authorization.h> | |
7 | #include <xpc/xpc.h> | |
8 | ||
9 | #if defined(__cplusplus) | |
10 | extern "C" { | |
11 | #endif | |
12 | ||
13 | enum { | |
14 | AI_TYPE_UNKNOWN = 0, | |
15 | AI_TYPE_RIGHT, | |
16 | AI_TYPE_STRING, | |
17 | AI_TYPE_INT, | |
18 | AI_TYPE_UINT, | |
19 | AI_TYPE_INT64, | |
20 | AI_TYPE_UINT64, | |
21 | AI_TYPE_DOUBLE, | |
22 | AI_TYPE_BOOL, | |
23 | AI_TYPE_DATA | |
24 | }; | |
25 | ||
26 | #pragma mark - | |
27 | #pragma mark auth_items_t | |
28 | ||
29 | /* unordered items */ | |
30 | ||
31 | #ifdef __BLOCKS__ | |
32 | typedef bool (^auth_items_iterator_t)(const char *key); | |
33 | #endif /* __BLOCKS__ */ | |
34 | ||
35 | CFTypeID auth_items_get_type_id(void); | |
36 | ||
37 | AUTH_WARN_RESULT AUTH_MALLOC AUTH_RETURNS_RETAINED | |
38 | auth_items_t auth_items_create(void); | |
39 | ||
40 | AUTH_WARN_RESULT AUTH_MALLOC AUTH_NONNULL_ALL AUTH_RETURNS_RETAINED | |
41 | auth_items_t auth_items_create_with_xpc(const xpc_object_t data); | |
42 | ||
43 | AUTH_WARN_RESULT AUTH_MALLOC AUTH_NONNULL_ALL AUTH_RETURNS_RETAINED | |
44 | auth_items_t auth_items_create_copy(auth_items_t); | |
45 | ||
46 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
47 | size_t auth_items_get_count(auth_items_t); | |
48 | ||
49 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
50 | AuthorizationItemSet * auth_items_get_item_set(auth_items_t); | |
51 | ||
52 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
53 | xpc_object_t auth_items_export_xpc(auth_items_t); | |
54 | ||
55 | AUTH_NONNULL_ALL | |
56 | void auth_items_set_flags(auth_items_t, const char *key, uint32_t flags); | |
57 | ||
58 | AUTH_NONNULL_ALL | |
59 | void auth_items_clear_flags(auth_items_t, const char *key, uint32_t flags); | |
60 | ||
61 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
62 | uint32_t auth_items_get_flags(auth_items_t, const char *key); | |
63 | ||
64 | AUTH_NONNULL_ALL | |
65 | bool auth_items_check_flags(auth_items_t, const char *key, uint32_t flags); | |
66 | ||
67 | AUTH_NONNULL_ALL | |
68 | void auth_items_set_key(auth_items_t, const char *key); | |
69 | ||
70 | AUTH_NONNULL_ALL | |
71 | bool auth_items_exist(auth_items_t, const char *key); | |
72 | ||
73 | AUTH_NONNULL_ALL | |
74 | void auth_items_remove(auth_items_t, const char *key); | |
75 | ||
76 | AUTH_NONNULL_ALL | |
77 | void auth_items_remove_with_flags(auth_items_t, uint32_t flags); | |
78 | ||
79 | AUTH_NONNULL_ALL | |
80 | void auth_items_clear(auth_items_t); | |
81 | ||
82 | AUTH_NONNULL_ALL | |
83 | void auth_items_copy(auth_items_t, auth_items_t src); | |
84 | ||
85 | AUTH_NONNULL_ALL | |
86 | void auth_items_copy_xpc(auth_items_t, const xpc_object_t src); | |
87 | ||
88 | AUTH_NONNULL_ALL | |
89 | void auth_items_copy_with_flags(auth_items_t, auth_items_t src, uint32_t flags); | |
90 | ||
91 | AUTH_NONNULL_ALL | |
92 | bool auth_items_iterate(auth_items_t, auth_items_iterator_t iter); | |
93 | ||
94 | AUTH_NONNULL_ALL | |
95 | void auth_items_set_string(auth_items_t, const char *key, const char *value); | |
96 | ||
97 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
98 | const char * auth_items_get_string(auth_items_t, const char *key); | |
99 | ||
100 | AUTH_NONNULL_ALL | |
101 | void auth_items_set_data(auth_items_t, const char *key, const void *value, size_t len); | |
102 | ||
103 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
104 | const void * auth_items_get_data(auth_items_t, const char *key, size_t * len); | |
105 | ||
106 | AUTH_NONNULL_ALL | |
107 | void auth_items_set_bool(auth_items_t, const char *key, bool value); | |
108 | ||
109 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
110 | bool auth_items_get_bool(auth_items_t, const char *key); | |
111 | ||
112 | AUTH_NONNULL_ALL | |
113 | void auth_items_set_int(auth_items_t, const char *key, int32_t value); | |
114 | ||
115 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
116 | int32_t auth_items_get_int(auth_items_t, const char *key); | |
117 | ||
118 | AUTH_NONNULL_ALL | |
119 | void auth_items_set_uint(auth_items_t, const char *key, uint32_t value); | |
120 | ||
121 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
122 | uint32_t auth_items_get_uint(auth_items_t, const char *key); | |
123 | ||
124 | AUTH_NONNULL_ALL | |
125 | void auth_items_set_int64(auth_items_t, const char *key, int64_t value); | |
126 | ||
127 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
128 | int64_t auth_items_get_int64(auth_items_t, const char *key); | |
129 | ||
130 | AUTH_NONNULL_ALL | |
131 | void auth_items_set_uint64(auth_items_t, const char *key, uint64_t value); | |
132 | ||
133 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
134 | uint64_t auth_items_get_uint64(auth_items_t, const char *key); | |
135 | ||
136 | AUTH_NONNULL_ALL | |
137 | void auth_items_set_double(auth_items_t, const char *key, double value); | |
138 | ||
139 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
140 | double auth_items_get_double(auth_items_t, const char *key); | |
141 | ||
142 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
143 | uint32_t auth_items_get_type(auth_items_t, const char *key); | |
144 | ||
145 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
146 | size_t auth_items_get_length(auth_items_t, const char *key); | |
147 | ||
148 | AUTH_NONNULL_ALL | |
149 | void auth_items_set_value(auth_items_t, const char *key, uint32_t type, uint32_t flags, const void *value, size_t len); | |
150 | ||
151 | #pragma mark - | |
152 | #pragma mark auth_rights_t | |
153 | ||
154 | /* ordered items */ | |
155 | ||
156 | AUTH_WARN_RESULT AUTH_MALLOC AUTH_RETURNS_RETAINED | |
157 | auth_rights_t auth_rights_create(void); | |
158 | ||
159 | AUTH_WARN_RESULT AUTH_MALLOC AUTH_NONNULL_ALL AUTH_RETURNS_RETAINED | |
160 | auth_rights_t auth_rights_create_with_xpc(const xpc_object_t data); | |
161 | ||
162 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
163 | xpc_object_t auth_rights_export_xpc(auth_rights_t); | |
164 | ||
165 | AUTH_NONNULL_ALL | |
166 | void auth_rights_set_flags(auth_rights_t, const char *key, uint32_t flags); | |
167 | ||
168 | AUTH_NONNULL_ALL | |
169 | void auth_rights_clear_flags(auth_rights_t, const char *key, uint32_t flags); | |
170 | ||
171 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
172 | uint32_t auth_rights_get_flags(auth_rights_t, const char *key); | |
173 | ||
174 | AUTH_NONNULL_ALL | |
175 | bool auth_rights_check_flags(auth_rights_t, const char *key, uint32_t flags); | |
176 | ||
177 | AUTH_WARN_RESULT AUTH_NONNULL_ALL | |
178 | size_t auth_rights_get_count(auth_rights_t); | |
179 | ||
180 | AUTH_NONNULL_ALL | |
181 | void auth_rights_add(auth_rights_t, const char *key); | |
182 | ||
183 | AUTH_NONNULL_ALL | |
184 | bool auth_rights_exist(auth_rights_t, const char *key); | |
185 | ||
186 | AUTH_NONNULL_ALL | |
187 | void auth_rights_remove(auth_rights_t, const char *key); | |
188 | ||
189 | AUTH_NONNULL_ALL | |
190 | void auth_rights_clear(auth_rights_t); | |
191 | ||
192 | AUTH_NONNULL_ALL | |
193 | bool auth_rights_iterate(auth_rights_t rights, bool(^iter)(const char * key)); | |
194 | ||
195 | #if defined(__cplusplus) | |
196 | } | |
197 | #endif | |
198 | ||
199 | #endif /* !_SECURITY_AUTH_ITEMS_H_ */ |