idname
X509_NAME *subject, *idname = NULL;
if ((idname = d2i_X509_NAME(NULL, &idptr, idlen)) == NULL)
if (X509_NAME_cmp(subject, idname) == 0)
X509_NAME_free(idname);
struct idname msg_types[] = {
struct idname sa_types[] = {
struct idname auth_types[] = {
struct idname enc_types[] = {
struct idname comp_types[] = {
struct idname flag_types[] = {
struct idname identity_types[] = {
struct idname flow_types[] = {
struct idname states[] = {
static struct idname *
lookup(struct idname *tab, u_int32_t id)
struct idname *entry;
lookup_name(struct idname *tab, u_int32_t id)
struct idname *entry;
struct idname *entry;
struct idname *entry;
static struct idname *lookup(struct idname *, u_int32_t);
static char *lookup_name(struct idname *, u_int32_t);
struct idname ext_types[] = {
RB_ENTRY(idname) entry;
idname_cmp(struct idname *a, struct idname *b)
RB_HEAD(idname_tree, idname);
RB_GENERATE_STATIC(idname_tree, idname, entry, idname_cmp)
idname_free(struct idname *idname)
if (idname == NULL)
free(idname->name);
free(idname);
struct idname *idname;
if ((idname = xcalloc(1, sizeof(*idname))) == NULL)
idname->id = id;
idname->name = xstrdup(name);
if (RB_INSERT(idname_tree, tree, idname) != NULL)
idname_free(idname);
struct idname idname, *found;
memset(&idname, 0, sizeof(idname));
idname.id = id;
if ((found = RB_FIND(idname_tree, tree, &idname)) != NULL)