X-Git-Url: https://git.saurik.com/apple/libinfo.git/blobdiff_plain/c29f2fccbf0d388644e29ea3e98c38a343688bd2..71fe13a241da37f6d1eb3e43ba9ef25e2f1bae99:/membership.subproj/membershipPriv.h?ds=sidebyside diff --git a/membership.subproj/membershipPriv.h b/membership.subproj/membershipPriv.h index 580b8db..348f78c 100644 --- a/membership.subproj/membershipPriv.h +++ b/membership.subproj/membershipPriv.h @@ -26,18 +26,45 @@ #include #include -int mbr_reset_cache(); -int mbr_user_name_to_uuid(const char* name, uuid_t uu); -int mbr_group_name_to_uuid(const char* name, uuid_t uu); -int mbr_check_membership_by_id(uuid_t user, gid_t group, int* ismember); -int mbr_check_service_membership(const uuid_t user, const char* servicename, int* ismember); - #define MBR_UU_STRING_SIZE 37 #define MBR_MAX_SID_STRING_SIZE 200 -int mbr_uuid_to_string(const uuid_t uu, char* string); -int mbr_string_to_uuid(const char* string, uuid_t uu); -int mbr_sid_to_string(const nt_sid_t* sid, char* string); -int mbr_string_to_sid(const char* string, nt_sid_t* sid); +#define SID_TYPE_USER 0 +#define SID_TYPE_GROUP 1 + +#define MBR_REC_TYPE_USER 1 +#define MBR_REC_TYPE_GROUP 2 + +/* only supported by mbr_identifier_translate for target type */ +#define ID_TYPE_UID_OR_GID 30 +#define ID_TYPE_NAME 31 +#define ID_TYPE_WINDOWS_FQN 32 + +__BEGIN_DECLS + +int mbr_reset_cache(); +int mbr_user_name_to_uuid(const char *name, uuid_t uu); +int mbr_group_name_to_uuid(const char *name, uuid_t uu); +int mbr_check_membership_by_id(uuid_t user, gid_t group, int *ismember); +int mbr_check_membership_refresh(const uuid_t user, uuid_t group, int *ismember); + +/* mbr_uuid_to_string should use uuid_unparse from uuid.h */ +int mbr_uuid_to_string(const uuid_t uu, char *string) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_8, __IPHONE_NA, __IPHONE_NA); + +/* mbr_string_to_uuid should use uuid_parse from uuid.h */ +int mbr_string_to_uuid(const char *string, uuid_t uu) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_8, __IPHONE_NA, __IPHONE_NA); + +int mbr_uuid_to_sid_type(const uuid_t uu, nt_sid_t *sid, int *id_type); +int mbr_set_identifier_ttl(int id_type, const void *identifier, size_t identifier_size, unsigned int seconds); + +/* new SPI to allow translation from any-to-any type, pass ID_TYPE_UID_OR_GID when translating to a UID */ +int mbr_identifier_translate(int id_type, const void *identifier, size_t identifier_size, int target_type, void **result, int *rec_type); + +/* + * groupid_type does not support ID_TYPE_GSS_EXPORT_NAME + */ +int mbr_check_membership_ext(int userid_type, const void *userid, size_t userid_size, int groupid_type, const void *groupid, int refresh, int *isMember); + +__END_DECLS #endif /* !_MEMBERSHIPPRIV_H_ */