@subheading asn1_array2tree
@anchor{asn1_array2tree}
@deftypefun {int} {asn1_array2tree} (const asn1_static_node * @var{array}, asn1_node * @var{definitions}, char * @var{errorDescription})
@var{array}: specify the array that contains ASN.1 declarations

@var{definitions}: return the pointer to the structure created by
*ARRAY ASN.1 declarations

@var{errorDescription}: return the error description.

Creates the structures needed to manage the ASN.1 definitions.
@code{array} is a vector created by @code{asn1_parser2array()}.

@strong{Returns:} @code{ASN1_SUCCESS} if structure was created correctly,
@code{ASN1_ELEMENT_NOT_EMPTY} if *@code{definitions} not NULL,
@code{ASN1_IDENTIFIER_NOT_FOUND} if in the file there is an identifier
that is not defined (see @code{errorDescription} for more information),
@code{ASN1_ARRAY_ERROR} if the array pointed by @code{array} is wrong.
@end deftypefun

@subheading asn1_delete_structure
@anchor{asn1_delete_structure}
@deftypefun {int} {asn1_delete_structure} (asn1_node * @var{structure})
@var{structure}: pointer to the structure that you want to delete.

Deletes the structure *@code{structure}.  At the end, *@code{structure} is set
to NULL.

@strong{Returns:} @code{ASN1_SUCCESS} if successful, @code{ASN1_ELEMENT_NOT_FOUND} if
*@code{structure} was NULL.
@end deftypefun

@subheading asn1_delete_element
@anchor{asn1_delete_element}
@deftypefun {int} {asn1_delete_element} (asn1_node @var{structure}, const char * @var{element_name})
@var{structure}: pointer to the structure that contains the element you
want to delete.

@var{element_name}: element's name you want to delete.

Deletes the element named *@code{element_name} inside *@code{structure}.

@strong{Returns:} @code{ASN1_SUCCESS} if successful, @code{ASN1_ELEMENT_NOT_FOUND} if
the @code{element_name} was not found.
@end deftypefun

@subheading asn1_create_element
@anchor{asn1_create_element}
@deftypefun {int} {asn1_create_element} (asn1_node @var{definitions}, const char * @var{source_name}, asn1_node * @var{element})
@var{definitions}: pointer to the structure returned by "parser_asn1" function

@var{source_name}: the name of the type of the new structure (must be
inside p_structure).

@var{element}: pointer to the structure created.

Creates a structure of type @code{source_name}.  Example using
"pkix.asn":

rc = asn1_create_element(cert_def, "PKIX1.Certificate", certptr);

@strong{Returns:} @code{ASN1_SUCCESS} if creation OK, @code{ASN1_ELEMENT_NOT_FOUND} if
@code{source_name} is not known.
@end deftypefun

@subheading asn1_print_structure
@anchor{asn1_print_structure}
@deftypefun {void} {asn1_print_structure} (FILE * @var{out}, asn1_node @var{structure}, const char * @var{name}, int @var{mode})
@var{out}: pointer to the output file (e.g. stdout).

@var{structure}: pointer to the structure that you want to visit.

@var{name}: an element of the structure

@var{mode}: specify how much of the structure to print, can be
@code{ASN1_PRINT_NAME}, @code{ASN1_PRINT_NAME_TYPE},
@code{ASN1_PRINT_NAME_TYPE_VALUE}, or @code{ASN1_PRINT_ALL}.

Prints on the @code{out} file descriptor the structure's tree starting
from the @code{name} element inside the structure @code{structure}.
@end deftypefun

@subheading asn1_number_of_elements
@anchor{asn1_number_of_elements}
@deftypefun {int} {asn1_number_of_elements} (asn1_node @var{element}, const char * @var{name}, int * @var{num})
@var{element}: pointer to the root of an ASN1 structure.

@var{name}: the name of a sub-structure of ROOT.

@var{num}: pointer to an integer where the result will be stored

Counts the number of elements of a sub-structure called NAME with
names equal to "?1","?2", ...

@strong{Returns:} @code{ASN1_SUCCESS} if successful, @code{ASN1_ELEMENT_NOT_FOUND} if
@code{name} is not known, @code{ASN1_GENERIC_ERROR} if pointer @code{num} is @code{NULL}.
@end deftypefun

@subheading asn1_find_structure_from_oid
@anchor{asn1_find_structure_from_oid}
@deftypefun {const char *} {asn1_find_structure_from_oid} (asn1_node @var{definitions}, const char * @var{oidValue})
@var{definitions}: ASN1 definitions

@var{oidValue}: value of the OID to search (e.g. "1.2.3.4").

Search the structure that is defined just after an OID definition.

@strong{Returns:} @code{NULL} when @code{oidValue} not found, otherwise the pointer to a
constant string that contains the element name defined just after
the OID.
@end deftypefun

@subheading asn1_copy_node
@anchor{asn1_copy_node}
@deftypefun {int} {asn1_copy_node} (asn1_node @var{dst}, const char * @var{dst_name}, asn1_node @var{src}, const char * @var{src_name})
@var{dst}: Destination asn1_node node.

@var{dst_name}: Field name in destination node.

@var{src}: Source asn1_node node.

@var{src_name}: Field name in source node.

Create a deep copy of a asn1_node variable.

@strong{Returns:} Return @code{ASN1_SUCCESS} on success.
@end deftypefun

