const char *security_class_to_string(security_class_t tclass) { struct discover_class_node *node; tclass = unmap_class(tclass); node = get_class_cache_entry_value(tclass); if (node) return node->name; return NULL; }
access_vector_t string_to_av_perm(security_class_t tclass, const char *s) { struct discover_class_node *node; security_class_t kclass = unmap_class(tclass); node = get_class_cache_entry_value(kclass); if (node != NULL) { size_t i; for (i=0; i<MAXVECTORS && node->perms[i] != NULL; i++) if (strcmp(node->perms[i],s) == 0) return map_perm(tclass, 1<<i); } errno = EINVAL; return 0; }
const char *security_av_perm_to_string(security_class_t tclass, access_vector_t av) { struct discover_class_node *node; size_t i; av = unmap_perm(tclass, av); tclass = unmap_class(tclass); node = get_class_cache_entry_value(tclass); if (av && node) for (i = 0; i<MAXVECTORS; i++) if ((1<<i) & av) return node->perms[i]; return NULL; }