116 enum { DOWN, UP, RIGHT } move;
134 return gpg_error (GPG_ERR_MODULE_NOT_FOUND);
140 while (root[k].stringvalue_off || root[k].type || root[k].name_off)
148 if (root[k].name_off)
150 if (root[k].stringvalue_off)
155 val = strtoul (strgtbl+root[k].stringvalue_off, NULL, 10);
160 strgtbl+root[k].stringvalue_off, 0);
168 else if (move == RIGHT)
173 if (root[k].flags.help_down)
175 else if (root[k].flags.help_right)
181 if (p_last == pointer)
200 if (p_last == pointer)
206 tree =
xtrymalloc (
sizeof *tree + strlen (mod_name));
static AsnNode find_up(AsnNode node)
static AsnNode set_right(AsnNode node, AsnNode right)
static AsnNode set_down(AsnNode node, AsnNode down)
void _ksba_asn_set_value(AsnNode node, enum asn_value_type vtype, const void *value, size_t len)
AsnNode _ksba_asn_new_node(node_type_t type)
int _ksba_asn_delete_structure(AsnNode root)
void _ksba_asn_set_name(AsnNode node, const char *name)
int _ksba_asn_expand_object_id(AsnNode node)
int _ksba_asn_change_integer_value(AsnNode node)
const static_asn * _ksba_asn_lookup_table(const char *name, const char **stringtbl)
#define GPG_ERR_INV_VALUE
gpg_error_t ksba_asn_create_tree(const char *mod_name, ksba_asn_tree_t *result)