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 AuthorizationItemSet
* auth_items_get_item_set(auth_items_t
);
52 AUTH_WARN_RESULT AUTH_NONNULL_ALL
53 xpc_object_t
auth_items_export_xpc(auth_items_t
);
56 void auth_items_set_flags(auth_items_t
, const char *key
, uint32_t flags
);
59 void auth_items_clear_flags(auth_items_t
, const char *key
, uint32_t flags
);
61 AUTH_WARN_RESULT AUTH_NONNULL_ALL
62 uint32_t auth_items_get_flags(auth_items_t
, const char *key
);
65 bool auth_items_check_flags(auth_items_t
, const char *key
, uint32_t flags
);
68 void auth_items_set_key(auth_items_t
, const char *key
);
71 bool auth_items_exist(auth_items_t
, const char *key
);
74 void auth_items_remove(auth_items_t
, const char *key
);
77 void auth_items_remove_with_flags(auth_items_t
, uint32_t flags
);
80 void auth_items_clear(auth_items_t
);
83 void auth_items_copy(auth_items_t
, auth_items_t src
);
86 void auth_items_content_copy(auth_items_t items
, auth_items_t src
);
89 void auth_items_copy_xpc(auth_items_t
, const xpc_object_t src
);
92 void auth_items_copy_with_flags(auth_items_t
, auth_items_t src
, uint32_t flags
);
95 void auth_items_content_copy_with_flags(auth_items_t items
, auth_items_t src
, uint32_t flags
);
98 bool auth_items_iterate(auth_items_t
, auth_items_iterator_t iter
);
101 void auth_items_set_string(auth_items_t
, const char *key
, const char *value
);
103 AUTH_WARN_RESULT AUTH_NONNULL_ALL
104 const char * auth_items_get_string(auth_items_t
, const char *key
);
107 void auth_items_set_data(auth_items_t
, const char *key
, const void *value
, size_t len
);
109 AUTH_WARN_RESULT AUTH_NONNULL_ALL
110 const void * auth_items_get_data(auth_items_t
, const char *key
, size_t * len
);
112 AUTH_WARN_RESULT AUTH_NONNULL_ALL
113 const void * auth_items_get_data_with_flags(auth_items_t items
, const char *key
, size_t *len
, uint32_t flags
);
116 void auth_items_set_bool(auth_items_t
, const char *key
, bool value
);
118 AUTH_WARN_RESULT AUTH_NONNULL_ALL
119 bool auth_items_get_bool(auth_items_t
, const char *key
);
122 void auth_items_set_int(auth_items_t
, const char *key
, int32_t value
);
124 AUTH_WARN_RESULT AUTH_NONNULL_ALL
125 int32_t auth_items_get_int(auth_items_t
, const char *key
);
128 void auth_items_set_uint(auth_items_t
, const char *key
, uint32_t value
);
130 AUTH_WARN_RESULT AUTH_NONNULL_ALL
131 uint32_t auth_items_get_uint(auth_items_t
, const char *key
);
134 void auth_items_set_int64(auth_items_t
, const char *key
, int64_t value
);
136 AUTH_WARN_RESULT AUTH_NONNULL_ALL
137 int64_t auth_items_get_int64(auth_items_t
, const char *key
);
140 void auth_items_set_uint64(auth_items_t
, const char *key
, uint64_t value
);
142 AUTH_WARN_RESULT AUTH_NONNULL_ALL
143 uint64_t auth_items_get_uint64(auth_items_t
, const char *key
);
146 void auth_items_set_double(auth_items_t
, const char *key
, double value
);
148 AUTH_WARN_RESULT AUTH_NONNULL_ALL
149 double auth_items_get_double(auth_items_t
, const char *key
);
151 AUTH_WARN_RESULT AUTH_NONNULL_ALL
152 uint32_t auth_items_get_type(auth_items_t
, const char *key
);
154 AUTH_WARN_RESULT AUTH_NONNULL_ALL
155 size_t auth_items_get_length(auth_items_t
, const char *key
);
158 void auth_items_set_value(auth_items_t
, const char *key
, uint32_t type
, uint32_t flags
, const void *value
, size_t len
);
161 void auth_items_encrypt(auth_items_t items
, CFDataRef encryption_key
);
164 void auth_items_decrypt(auth_items_t items
, CFDataRef encryption_key
);
167 #pragma mark auth_rights_t
171 AUTH_WARN_RESULT AUTH_MALLOC AUTH_RETURNS_RETAINED
172 auth_rights_t
auth_rights_create(void);
174 AUTH_WARN_RESULT AUTH_MALLOC AUTH_RETURNS_RETAINED
175 auth_rights_t
auth_rights_create_with_xpc(const xpc_object_t data
);
177 AUTH_WARN_RESULT AUTH_NONNULL_ALL
178 xpc_object_t
auth_rights_export_xpc(auth_rights_t
);
181 void auth_rights_set_flags(auth_rights_t
, const char *key
, uint32_t flags
);
184 void auth_rights_clear_flags(auth_rights_t
, const char *key
, uint32_t flags
);
186 AUTH_WARN_RESULT AUTH_NONNULL_ALL
187 uint32_t auth_rights_get_flags(auth_rights_t
, const char *key
);
190 bool auth_rights_check_flags(auth_rights_t
, const char *key
, uint32_t flags
);
192 AUTH_WARN_RESULT AUTH_NONNULL_ALL
193 size_t auth_rights_get_count(auth_rights_t
);
196 void auth_rights_add(auth_rights_t
, const char *key
);
199 bool auth_rights_exist(auth_rights_t
, const char *key
);
202 void auth_rights_remove(auth_rights_t
, const char *key
);
205 void auth_rights_clear(auth_rights_t
);
208 bool auth_rights_iterate(auth_rights_t rights
, bool(^iter
)(const char * key
));
210 #if defined(__cplusplus)
214 #endif /* !_SECURITY_AUTH_ITEMS_H_ */