X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=include%2Fwimlib%2Fsecurity.h;h=f81bb04a64813570e761e6e05ffd557762cd0de6;hb=3a900017c59c26af398f9cf375719dbcda378fb8;hp=71ffb695b379d0cc98dd7a9605ea2c48dab08d13;hpb=c73468ab9d94f48a801008ea4fb15de6880c44e8;p=wimlib diff --git a/include/wimlib/security.h b/include/wimlib/security.h index 71ffb695..f81bb04a 100644 --- a/include/wimlib/security.h +++ b/include/wimlib/security.h @@ -1,15 +1,17 @@ #ifndef _WIMLIB_SECURITY_H #define _WIMLIB_SECURITY_H -#include "wimlib/rbtree.h" #include "wimlib/types.h" -/* Red-black tree that maps SHA1 message digests of security descriptors to - * security IDs, which are themselves indices into the table of security - * descriptors in the 'struct wim_security_data'. */ +struct wim_security_data; +struct avl_tree_node; + +/* Map from SHA1 message digests of security descriptors to security IDs, which + * are themselves indices into the table of security descriptors in the 'struct + * wim_security_data'. */ struct wim_sd_set { struct wim_security_data *sd; - struct rb_root rb_root; + struct avl_tree_node *root; int32_t orig_num_entries; }; @@ -34,7 +36,10 @@ struct wim_security_data { }; extern void -destroy_sd_set(struct wim_sd_set *sd_set, bool rollback); +rollback_new_security_descriptors(struct wim_sd_set *sd_set); + +extern void +destroy_sd_set(struct wim_sd_set *sd_set); extern int sd_set_add_sd(struct wim_sd_set *sd_set, const char descriptor[], @@ -47,12 +52,12 @@ extern struct wim_security_data * new_wim_security_data(void); extern int -read_wim_security_data(const u8 metadata_resource[], size_t - metadata_resource_len, struct wim_security_data **sd_p); +read_wim_security_data(const u8 *buf, size_t buf_len, + struct wim_security_data **sd_ret); extern u8 * -write_wim_security_data(const struct wim_security_data * restrict sd, u8 * - restrict p); +write_wim_security_data(const struct wim_security_data * restrict sd, + u8 * restrict p); extern void print_wim_security_data(const struct wim_security_data *sd);