X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5dd5f9ec28f304ca377c42fd7f711d6cf12b90e1..5c19dc3ae3bd8e40a9c028b0deddd50ff337692c:/OSX/authd/authitems.h diff --git a/OSX/authd/authitems.h b/OSX/authd/authitems.h new file mode 100644 index 00000000..94455b79 --- /dev/null +++ b/OSX/authd/authitems.h @@ -0,0 +1,199 @@ +/* Copyright (c) 2012 Apple Inc. All Rights Reserved. */ + +#ifndef _SECURITY_AUTH_ITEMS_H_ +#define _SECURITY_AUTH_ITEMS_H_ + +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +enum { + AI_TYPE_UNKNOWN = 0, + AI_TYPE_RIGHT, + AI_TYPE_STRING, + AI_TYPE_INT, + AI_TYPE_UINT, + AI_TYPE_INT64, + AI_TYPE_UINT64, + AI_TYPE_DOUBLE, + AI_TYPE_BOOL, + AI_TYPE_DATA +}; + +#pragma mark - +#pragma mark auth_items_t + +/* unordered items */ + +#ifdef __BLOCKS__ +typedef bool (^auth_items_iterator_t)(const char *key); +#endif /* __BLOCKS__ */ + +CFTypeID auth_items_get_type_id(void); + +AUTH_WARN_RESULT AUTH_MALLOC AUTH_RETURNS_RETAINED +auth_items_t auth_items_create(void); + +AUTH_WARN_RESULT AUTH_MALLOC AUTH_NONNULL_ALL AUTH_RETURNS_RETAINED +auth_items_t auth_items_create_with_xpc(const xpc_object_t data); + +AUTH_WARN_RESULT AUTH_MALLOC AUTH_NONNULL_ALL AUTH_RETURNS_RETAINED +auth_items_t auth_items_create_copy(auth_items_t); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +size_t auth_items_get_count(auth_items_t); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +AuthorizationItemSet * auth_items_get_item_set(auth_items_t); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +xpc_object_t auth_items_export_xpc(auth_items_t); + +AUTH_NONNULL_ALL +void auth_items_set_flags(auth_items_t, const char *key, uint32_t flags); + +AUTH_NONNULL_ALL +void auth_items_clear_flags(auth_items_t, const char *key, uint32_t flags); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +uint32_t auth_items_get_flags(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +bool auth_items_check_flags(auth_items_t, const char *key, uint32_t flags); + +AUTH_NONNULL_ALL +void auth_items_set_key(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +bool auth_items_exist(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +void auth_items_remove(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +void auth_items_remove_with_flags(auth_items_t, uint32_t flags); + +AUTH_NONNULL_ALL +void auth_items_clear(auth_items_t); + +AUTH_NONNULL_ALL +void auth_items_copy(auth_items_t, auth_items_t src); + +AUTH_NONNULL_ALL +void auth_items_copy_xpc(auth_items_t, const xpc_object_t src); + +AUTH_NONNULL_ALL +void auth_items_copy_with_flags(auth_items_t, auth_items_t src, uint32_t flags); + +AUTH_NONNULL_ALL +bool auth_items_iterate(auth_items_t, auth_items_iterator_t iter); + +AUTH_NONNULL_ALL +void auth_items_set_string(auth_items_t, const char *key, const char *value); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +const char * auth_items_get_string(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +void auth_items_set_data(auth_items_t, const char *key, const void *value, size_t len); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +const void * auth_items_get_data(auth_items_t, const char *key, size_t * len); + +AUTH_NONNULL_ALL +void auth_items_set_bool(auth_items_t, const char *key, bool value); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +bool auth_items_get_bool(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +void auth_items_set_int(auth_items_t, const char *key, int32_t value); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +int32_t auth_items_get_int(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +void auth_items_set_uint(auth_items_t, const char *key, uint32_t value); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +uint32_t auth_items_get_uint(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +void auth_items_set_int64(auth_items_t, const char *key, int64_t value); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +int64_t auth_items_get_int64(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +void auth_items_set_uint64(auth_items_t, const char *key, uint64_t value); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +uint64_t auth_items_get_uint64(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +void auth_items_set_double(auth_items_t, const char *key, double value); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +double auth_items_get_double(auth_items_t, const char *key); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +uint32_t auth_items_get_type(auth_items_t, const char *key); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +size_t auth_items_get_length(auth_items_t, const char *key); + +AUTH_NONNULL_ALL +void auth_items_set_value(auth_items_t, const char *key, uint32_t type, uint32_t flags, const void *value, size_t len); + +#pragma mark - +#pragma mark auth_rights_t + +/* ordered items */ + +AUTH_WARN_RESULT AUTH_MALLOC AUTH_RETURNS_RETAINED +auth_rights_t auth_rights_create(void); + +AUTH_WARN_RESULT AUTH_MALLOC AUTH_RETURNS_RETAINED +auth_rights_t auth_rights_create_with_xpc(const xpc_object_t data); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +xpc_object_t auth_rights_export_xpc(auth_rights_t); + +AUTH_NONNULL_ALL +void auth_rights_set_flags(auth_rights_t, const char *key, uint32_t flags); + +AUTH_NONNULL_ALL +void auth_rights_clear_flags(auth_rights_t, const char *key, uint32_t flags); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +uint32_t auth_rights_get_flags(auth_rights_t, const char *key); + +AUTH_NONNULL_ALL +bool auth_rights_check_flags(auth_rights_t, const char *key, uint32_t flags); + +AUTH_WARN_RESULT AUTH_NONNULL_ALL +size_t auth_rights_get_count(auth_rights_t); + +AUTH_NONNULL_ALL +void auth_rights_add(auth_rights_t, const char *key); + +AUTH_NONNULL_ALL +bool auth_rights_exist(auth_rights_t, const char *key); + +AUTH_NONNULL_ALL +void auth_rights_remove(auth_rights_t, const char *key); + +AUTH_NONNULL_ALL +void auth_rights_clear(auth_rights_t); + +AUTH_NONNULL_ALL +bool auth_rights_iterate(auth_rights_t rights, bool(^iter)(const char * key)); + +#if defined(__cplusplus) +} +#endif + +#endif /* !_SECURITY_AUTH_ITEMS_H_ */