1 /* Copyright (c) 2012 Apple Inc. All Rights Reserved. */
3 #ifndef _SECURITY_AUTH_ITEMS_H_
4 #define _SECURITY_AUTH_ITEMS_H_
6 #include <Security/Authorization.h>
9 #if defined(__cplusplus)
27 #pragma mark auth_items_t
32 typedef bool (^auth_items_iterator_t
)(const char *key
);
33 #endif /* __BLOCKS__ */
35 CFTypeID
auth_items_get_type_id(void);
37 AUTH_WARN_RESULT AUTH_MALLOC AUTH_RETURNS_RETAINED
38 auth_items_t
auth_items_create(void);
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
);
43 AUTH_WARN_RESULT AUTH_MALLOC AUTH_NONNULL_ALL AUTH_RETURNS_RETAINED
44 auth_items_t
auth_items_create_copy(auth_items_t
);
46 AUTH_WARN_RESULT AUTH_NONNULL_ALL
47 size_t auth_items_get_count(auth_items_t
);
49 AUTH_WARN_RESULT AUTH_NONNULL_ALL
50 xpc_object_t
auth_items_export_xpc(auth_items_t
);
53 void auth_items_set_flags(auth_items_t
, const char *key
, uint32_t flags
);
56 void auth_items_clear_flags(auth_items_t
, const char *key
, uint32_t flags
);
58 AUTH_WARN_RESULT AUTH_NONNULL_ALL
59 uint32_t auth_items_get_flags(auth_items_t
, const char *key
);
62 bool auth_items_check_flags(auth_items_t
, const char *key
, uint32_t flags
);
65 void auth_items_set_key(auth_items_t
, const char *key
);
68 bool auth_items_exist(auth_items_t
, const char *key
);
71 void auth_items_remove(auth_items_t
, const char *key
);
74 void auth_items_remove_with_flags(auth_items_t
, uint32_t flags
);
77 void auth_items_clear(auth_items_t
);
80 void auth_items_copy(auth_items_t
, auth_items_t src
);
83 void auth_items_content_copy(auth_items_t items
, auth_items_t src
);
86 void auth_items_copy_xpc(auth_items_t
, const xpc_object_t src
);
89 void auth_items_copy_with_flags(auth_items_t
, auth_items_t src
, uint32_t flags
);
92 void auth_items_content_copy_with_flags(auth_items_t items
, auth_items_t src
, uint32_t flags
);
95 bool auth_items_iterate(auth_items_t
, auth_items_iterator_t iter
);
98 void auth_items_set_string(auth_items_t
, const char *key
, const char *value
);
100 AUTH_WARN_RESULT AUTH_NONNULL_ALL
101 const char * auth_items_get_string(auth_items_t
, const char *key
);
104 void auth_items_set_data(auth_items_t
, const char *key
, const void *value
, size_t len
);
106 AUTH_WARN_RESULT AUTH_NONNULL_ALL
107 const void * auth_items_get_data(auth_items_t
, const char *key
, size_t * len
);
109 AUTH_WARN_RESULT AUTH_NONNULL_ALL
110 const void * auth_items_get_data_with_flags(auth_items_t items
, const char *key
, size_t *len
, uint32_t flags
);
113 void auth_items_set_bool(auth_items_t
, const char *key
, bool value
);
115 AUTH_WARN_RESULT AUTH_NONNULL_ALL
116 bool auth_items_get_bool(auth_items_t
, const char *key
);
119 void auth_items_set_int(auth_items_t
, const char *key
, int32_t value
);
121 AUTH_WARN_RESULT AUTH_NONNULL_ALL
122 int32_t auth_items_get_int(auth_items_t
, const char *key
);
125 void auth_items_set_uint(auth_items_t
, const char *key
, uint32_t value
);
127 AUTH_WARN_RESULT AUTH_NONNULL_ALL
128 uint32_t auth_items_get_uint(auth_items_t
, const char *key
);
131 void auth_items_set_int64(auth_items_t
, const char *key
, int64_t value
);
133 AUTH_WARN_RESULT AUTH_NONNULL_ALL
134 int64_t auth_items_get_int64(auth_items_t
, const char *key
);
137 void auth_items_set_uint64(auth_items_t
, const char *key
, uint64_t value
);
139 AUTH_WARN_RESULT AUTH_NONNULL_ALL
140 uint64_t auth_items_get_uint64(auth_items_t
, const char *key
);
143 void auth_items_set_double(auth_items_t
, const char *key
, double value
);
145 AUTH_WARN_RESULT AUTH_NONNULL_ALL
146 double auth_items_get_double(auth_items_t
, const char *key
);
148 AUTH_WARN_RESULT AUTH_NONNULL_ALL
149 uint32_t auth_items_get_type(auth_items_t
, const char *key
);
151 AUTH_WARN_RESULT AUTH_NONNULL_ALL
152 size_t auth_items_get_length(auth_items_t
, const char *key
);
155 void auth_items_set_value(auth_items_t
, const char *key
, uint32_t type
, uint32_t flags
, const void *value
, size_t len
);
158 void auth_items_encrypt(auth_items_t items
, CFDataRef encryption_key
);
161 void auth_items_decrypt(auth_items_t items
, CFDataRef encryption_key
);
164 #pragma mark auth_rights_t
168 AUTH_WARN_RESULT AUTH_MALLOC AUTH_RETURNS_RETAINED
169 auth_rights_t
auth_rights_create(void);
171 AUTH_WARN_RESULT AUTH_MALLOC AUTH_RETURNS_RETAINED
172 auth_rights_t
auth_rights_create_with_xpc(const xpc_object_t data
);
174 AUTH_WARN_RESULT AUTH_NONNULL_ALL
175 xpc_object_t
auth_rights_export_xpc(auth_rights_t
);
178 void auth_rights_set_flags(auth_rights_t
, const char *key
, uint32_t flags
);
181 void auth_rights_clear_flags(auth_rights_t
, const char *key
, uint32_t flags
);
183 AUTH_WARN_RESULT AUTH_NONNULL_ALL
184 uint32_t auth_rights_get_flags(auth_rights_t
, const char *key
);
187 bool auth_rights_check_flags(auth_rights_t
, const char *key
, uint32_t flags
);
189 AUTH_WARN_RESULT AUTH_NONNULL_ALL
190 size_t auth_rights_get_count(auth_rights_t
);
193 void auth_rights_add(auth_rights_t
, const char *key
);
196 bool auth_rights_exist(auth_rights_t
, const char *key
);
199 void auth_rights_remove(auth_rights_t
, const char *key
);
202 void auth_rights_clear(auth_rights_t
);
205 bool auth_rights_iterate(auth_rights_t rights
, bool(^iter
)(const char * key
));
207 #if defined(__cplusplus)
211 #endif /* !_SECURITY_AUTH_ITEMS_H_ */