summaryrefslogtreecommitdiff
path: root/doc/man
diff options
context:
space:
mode:
authorsangsu <sangsu.choi@samsung.com>2016-06-08 10:17:41 +0900
committersangsu <sangsu.choi@samsung.com>2016-06-08 10:18:15 +0900
commita39386a3afe2d7e0cc717a49f970f53d974fda53 (patch)
treed6deb781410d96006a58fcfcaa8f31ffcc139523 /doc/man
parentd2521ee04e00e1c060001d5d67c1cf0bd23ec260 (diff)
downloadlibtasn1-a39386a3afe2d7e0cc717a49f970f53d974fda53.tar.gz
libtasn1-a39386a3afe2d7e0cc717a49f970f53d974fda53.tar.bz2
libtasn1-a39386a3afe2d7e0cc717a49f970f53d974fda53.zip
Imported Upstream version 4.8upstream/4.8submit/upstream/20160613.071414
Change-Id: I25e57ece28b9ebb637a2b7356f57e11b7f2eb807 Signed-off-by: sangsu <sangsu.choi@samsung.com>
Diffstat (limited to 'doc/man')
-rw-r--r--doc/man/asn1_array2tree.347
-rw-r--r--doc/man/asn1_bit_der.351
-rw-r--r--doc/man/asn1_check_version.343
-rw-r--r--doc/man/asn1_copy_node.344
-rw-r--r--doc/man/asn1_create_element.346
-rw-r--r--doc/man/asn1_decode_simple_ber.349
-rw-r--r--doc/man/asn1_decode_simple_der.346
-rw-r--r--doc/man/asn1_delete_element.341
-rw-r--r--doc/man/asn1_delete_structure.339
-rw-r--r--doc/man/asn1_delete_structure2.341
-rw-r--r--doc/man/asn1_der_coding.353
-rw-r--r--doc/man/asn1_der_decoding.352
-rw-r--r--doc/man/asn1_der_decoding2.359
-rw-r--r--doc/man/asn1_der_decoding_element.357
-rw-r--r--doc/man/asn1_der_decoding_startEnd.362
-rw-r--r--doc/man/asn1_dup_node.340
-rw-r--r--doc/man/asn1_encode_simple_der.350
-rw-r--r--doc/man/asn1_expand_any_defined_by.346
-rw-r--r--doc/man/asn1_expand_octet_string.350
-rw-r--r--doc/man/asn1_find_node.342
-rw-r--r--doc/man/asn1_find_structure_from_oid.341
-rw-r--r--doc/man/asn1_get_bit_der.347
-rw-r--r--doc/man/asn1_get_length_ber.346
-rw-r--r--doc/man/asn1_get_length_der.343
-rw-r--r--doc/man/asn1_get_object_id_der.345
-rw-r--r--doc/man/asn1_get_octet_der.347
-rw-r--r--doc/man/asn1_get_tag_der.345
-rw-r--r--doc/man/asn1_length_der.343
-rw-r--r--doc/man/asn1_number_of_elements.343
-rw-r--r--doc/man/asn1_octet_der.349
-rw-r--r--doc/man/asn1_parser2array.357
-rw-r--r--doc/man/asn1_parser2tree.352
-rw-r--r--doc/man/asn1_perror.339
-rw-r--r--doc/man/asn1_print_structure.344
-rw-r--r--doc/man/asn1_read_node_value.340
-rw-r--r--doc/man/asn1_read_tag.347
-rw-r--r--doc/man/asn1_read_value.397
-rw-r--r--doc/man/asn1_read_value_type.399
-rw-r--r--doc/man/asn1_strerror.342
-rw-r--r--doc/man/asn1_write_value.3138
40 files changed, 2062 insertions, 0 deletions
diff --git a/doc/man/asn1_array2tree.3 b/doc/man/asn1_array2tree.3
new file mode 100644
index 0000000..90120e0
--- /dev/null
+++ b/doc/man/asn1_array2tree.3
@@ -0,0 +1,47 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_array2tree" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_array2tree \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_array2tree(const asn1_static_node * " array ", asn1_node * " definitions ", char * " errorDescription ");"
+.SH ARGUMENTS
+.IP "const asn1_static_node * array" 12
+specify the array that contains ASN.1 declarations
+.IP "asn1_node * definitions" 12
+return the pointer to the structure created by
+*ARRAY ASN.1 declarations
+.IP "char * errorDescription" 12
+return the error description.
+.SH "DESCRIPTION"
+Creates the structures needed to manage the ASN.1 definitions.
+ \fIarray\fP is a vector created by \fBasn1_parser2array()\fP.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if structure was created correctly,
+\fBASN1_ELEMENT_NOT_EMPTY\fP if * \fIdefinitions\fP not NULL,
+\fBASN1_IDENTIFIER_NOT_FOUND\fP if in the file there is an identifier
+that is not defined (see \fIerrorDescription\fP for more information),
+\fBASN1_ARRAY_ERROR\fP if the array pointed by \fIarray\fP is wrong.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_bit_der.3 b/doc/man/asn1_bit_der.3
new file mode 100644
index 0000000..9f1553f
--- /dev/null
+++ b/doc/man/asn1_bit_der.3
@@ -0,0 +1,51 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_bit_der" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_bit_der \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "void asn1_bit_der(const unsigned char * " str ", int " bit_len ", unsigned char * " der ", int * " der_len ");"
+.SH ARGUMENTS
+.IP "const unsigned char * str" 12
+BIT string.
+.IP "int bit_len" 12
+number of meaningful bits in STR.
+.IP "unsigned char * der" 12
+string returned.
+.IP "int * der_len" 12
+number of meaningful bytes of DER
+(der[0]..der[ans_len\-1]).
+.SH "DESCRIPTION"
+Creates a length\-value DER encoding for the input data
+as it would have been for a BIT STRING.
+The DER encoded data will be copied in \fIder\fP .
+
+Note that the BIT STRING tag is not included in the output.
+
+This function does not return any value because it is expected
+that \fIder_len\fP will contain enough bytes to store the string
+plus the DER encoding. The DER encoding size can be obtained using
+\fBasn1_length_der()\fP.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_check_version.3 b/doc/man/asn1_check_version.3
new file mode 100644
index 0000000..4d567af
--- /dev/null
+++ b/doc/man/asn1_check_version.3
@@ -0,0 +1,43 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_check_version" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_check_version \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "const char * asn1_check_version(const char * " req_version ");"
+.SH ARGUMENTS
+.IP "const char * req_version" 12
+Required version number, or \fBNULL\fP.
+.SH "DESCRIPTION"
+Check that the version of the library is at minimum the
+requested one and return the version string; return \fBNULL\fP if the
+condition is not satisfied. If a \fBNULL\fP is passed to this function,
+no check is done, but the version string is simply returned.
+
+See \fBASN1_VERSION\fP for a suitable \fIreq_version\fP string.
+.SH "RETURNS"
+Version string of run\-time library, or \fBNULL\fP if the
+run\-time library does not meet the required version number.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_copy_node.3 b/doc/man/asn1_copy_node.3
new file mode 100644
index 0000000..45dbb94
--- /dev/null
+++ b/doc/man/asn1_copy_node.3
@@ -0,0 +1,44 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_copy_node" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_copy_node \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_copy_node(asn1_node " dst ", const char * " dst_name ", asn1_node " src ", const char * " src_name ");"
+.SH ARGUMENTS
+.IP "asn1_node dst" 12
+Destination asn1 node.
+.IP "const char * dst_name" 12
+Field name in destination node.
+.IP "asn1_node src" 12
+Source asn1 node.
+.IP "const char * src_name" 12
+Field name in source node.
+.SH "DESCRIPTION"
+Create a deep copy of a asn1_node variable. That
+function requires \fIdst\fP to be expanded using \fBasn1_create_element()\fP.
+.SH "RETURNS"
+Return \fBASN1_SUCCESS\fP on success.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_create_element.3 b/doc/man/asn1_create_element.3
new file mode 100644
index 0000000..31ec7d6
--- /dev/null
+++ b/doc/man/asn1_create_element.3
@@ -0,0 +1,46 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_create_element" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_create_element \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_create_element(asn1_node " definitions ", const char * " source_name ", asn1_node * " element ");"
+.SH ARGUMENTS
+.IP "asn1_node definitions" 12
+pointer to the structure returned by "parser_asn1" function
+.IP "const char * source_name" 12
+the name of the type of the new structure (must be
+inside p_structure).
+.IP "asn1_node * element" 12
+pointer to the structure created.
+.SH "DESCRIPTION"
+Creates a structure of type \fIsource_name\fP . Example using
+"pkix.asn":
+
+rc = asn1_create_element(cert_def, "PKIX1.Certificate", certptr);
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if creation OK, \fBASN1_ELEMENT_NOT_FOUND\fP if
+ \fIsource_name\fP is not known.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_decode_simple_ber.3 b/doc/man/asn1_decode_simple_ber.3
new file mode 100644
index 0000000..ee34c13
--- /dev/null
+++ b/doc/man/asn1_decode_simple_ber.3
@@ -0,0 +1,49 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_decode_simple_ber" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_decode_simple_ber \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_decode_simple_ber(unsigned int " etype ", const unsigned char * " der ", unsigned int " _der_len ", unsigned char ** " str ", unsigned int * " str_len ", unsigned int * " ber_len ");"
+.SH ARGUMENTS
+.IP "unsigned int etype" 12
+The type of the string to be encoded (ASN1_ETYPE_)
+.IP "const unsigned char * der" 12
+the encoded string
+.IP "unsigned int _der_len" 12
+the bytes of the encoded string
+.IP "unsigned char ** str" 12
+a pointer to the data
+.IP "unsigned int * str_len" 12
+the length of the data
+.IP "unsigned int * ber_len" 12
+the total length occupied by BER (may be \fBNULL\fP)
+.SH "DESCRIPTION"
+Decodes a BER encoded type. The output is an allocated value
+of the data. This decodes BER STRINGS only. Other types are
+decoded as DER.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if successful or an error value.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_decode_simple_der.3 b/doc/man/asn1_decode_simple_der.3
new file mode 100644
index 0000000..4b2a831
--- /dev/null
+++ b/doc/man/asn1_decode_simple_der.3
@@ -0,0 +1,46 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_decode_simple_der" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_decode_simple_der \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_decode_simple_der(unsigned int " etype ", const unsigned char * " der ", unsigned int " _der_len ", const unsigned char ** " str ", unsigned int * " str_len ");"
+.SH ARGUMENTS
+.IP "unsigned int etype" 12
+The type of the string to be encoded (ASN1_ETYPE_)
+.IP "const unsigned char * der" 12
+the encoded string
+.IP "unsigned int _der_len" 12
+the bytes of the encoded string
+.IP "const unsigned char ** str" 12
+a pointer to the data
+.IP "unsigned int * str_len" 12
+the length of the data
+.SH "DESCRIPTION"
+Decodes a simple DER encoded type (e.g. a string, which is not constructed).
+The output is a pointer inside the \fIder\fP .
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if successful or an error value.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_delete_element.3 b/doc/man/asn1_delete_element.3
new file mode 100644
index 0000000..7925087
--- /dev/null
+++ b/doc/man/asn1_delete_element.3
@@ -0,0 +1,41 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_delete_element" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_delete_element \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_delete_element(asn1_node " structure ", const char * " element_name ");"
+.SH ARGUMENTS
+.IP "asn1_node structure" 12
+pointer to the structure that contains the element you
+want to delete.
+.IP "const char * element_name" 12
+element's name you want to delete.
+.SH "DESCRIPTION"
+Deletes the element named * \fIelement_name\fP inside * \fIstructure\fP .
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if successful, \fBASN1_ELEMENT_NOT_FOUND\fP if
+the \fIelement_name\fP was not found.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_delete_structure.3 b/doc/man/asn1_delete_structure.3
new file mode 100644
index 0000000..7b15c2a
--- /dev/null
+++ b/doc/man/asn1_delete_structure.3
@@ -0,0 +1,39 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_delete_structure" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_delete_structure \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_delete_structure(asn1_node * " structure ");"
+.SH ARGUMENTS
+.IP "asn1_node * structure" 12
+pointer to the structure that you want to delete.
+.SH "DESCRIPTION"
+Deletes the structure * \fIstructure\fP . At the end, * \fIstructure\fP is set
+to NULL.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if successful, \fBASN1_ELEMENT_NOT_FOUND\fP if
+* \fIstructure\fP was NULL.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_delete_structure2.3 b/doc/man/asn1_delete_structure2.3
new file mode 100644
index 0000000..c1e1b26
--- /dev/null
+++ b/doc/man/asn1_delete_structure2.3
@@ -0,0 +1,41 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_delete_structure2" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_delete_structure2 \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_delete_structure2(asn1_node * " structure ", unsigned int " flags ");"
+.SH ARGUMENTS
+.IP "asn1_node * structure" 12
+pointer to the structure that you want to delete.
+.IP "unsigned int flags" 12
+additional flags (see \fBASN1_DELETE_FLAG\fP)
+.SH "DESCRIPTION"
+Deletes the structure * \fIstructure\fP . At the end, * \fIstructure\fP is set
+to NULL.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if successful, \fBASN1_ELEMENT_NOT_FOUND\fP if
+* \fIstructure\fP was NULL.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_der_coding.3 b/doc/man/asn1_der_coding.3
new file mode 100644
index 0000000..7880f70
--- /dev/null
+++ b/doc/man/asn1_der_coding.3
@@ -0,0 +1,53 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_der_coding" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_der_coding \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_der_coding(asn1_node " element ", const char * " name ", void * " ider ", int * " len ", char * " ErrorDescription ");"
+.SH ARGUMENTS
+.IP "asn1_node element" 12
+pointer to an ASN1 element
+.IP "const char * name" 12
+the name of the structure you want to encode (it must be
+inside *POINTER).
+.IP "void * ider" 12
+vector that will contain the DER encoding. DER must be a
+pointer to memory cells already allocated.
+.IP "int * len" 12
+number of bytes of * \fIider\fP : \fIider\fP [0].. \fIider\fP [len\-1], Initialy
+holds the sizeof of der vector.
+.IP "char * ErrorDescription" 12
+return the error description or an empty
+string if success.
+.SH "DESCRIPTION"
+Creates the DER encoding for the NAME structure (inside *POINTER
+structure).
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if DER encoding OK, \fBASN1_ELEMENT_NOT_FOUND\fP
+if \fIname\fP is not a valid element, \fBASN1_VALUE_NOT_FOUND\fP if there
+is an element without a value, \fBASN1_MEM_ERROR\fP if the \fIider\fP vector isn't big enough and in this case \fIlen\fP will contain the
+length needed.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_der_decoding.3 b/doc/man/asn1_der_decoding.3
new file mode 100644
index 0000000..84cd185
--- /dev/null
+++ b/doc/man/asn1_der_decoding.3
@@ -0,0 +1,52 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_der_decoding" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_der_decoding \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_der_decoding(asn1_node * " element ", const void * " ider ", int " ider_len ", char * " errorDescription ");"
+.SH ARGUMENTS
+.IP "asn1_node * element" 12
+pointer to an ASN1 structure.
+.IP "const void * ider" 12
+vector that contains the DER encoding.
+.IP "int ider_len" 12
+number of bytes of * \fIider\fP : \fIider\fP [0].. \fIider\fP [len\-1].
+.IP "char * errorDescription" 12
+null\-terminated string contains details when an
+error occurred.
+.SH "DESCRIPTION"
+Fill the structure * \fIelement\fP with values of a DER encoding
+string. The structure must just be created with function
+\fBasn1_create_element()\fP.
+
+Note that the * \fIelement\fP variable is provided as a pointer for
+historical reasons.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if DER encoding OK, \fBASN1_ELEMENT_NOT_FOUND\fP
+if \fIELEMENT\fP is \fBNULL\fP, and \fBASN1_TAG_ERROR\fP or
+\fBASN1_DER_ERROR\fP if the der encoding doesn't match the structure
+name (* \fIELEMENT\fP deleted).
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_der_decoding2.3 b/doc/man/asn1_der_decoding2.3
new file mode 100644
index 0000000..d88bc21
--- /dev/null
+++ b/doc/man/asn1_der_decoding2.3
@@ -0,0 +1,59 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_der_decoding2" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_der_decoding2 \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_der_decoding2(asn1_node * " element ", const void * " ider ", int * " max_ider_len ", unsigned int " flags ", char * " errorDescription ");"
+.SH ARGUMENTS
+.IP "asn1_node * element" 12
+pointer to an ASN1 structure.
+.IP "const void * ider" 12
+vector that contains the DER encoding.
+.IP "int * max_ider_len" 12
+pointer to an integer giving the information about the
+maximal number of bytes occupied by * \fIider\fP . The real size of the DER
+encoding is returned through this pointer.
+.IP "unsigned int flags" 12
+flags controlling the behaviour of the function.
+.IP "char * errorDescription" 12
+null\-terminated string contains details when an
+error occurred.
+.SH "DESCRIPTION"
+Fill the structure * \fIelement\fP with values of a DER encoding string. The
+structure must just be created with function \fBasn1_create_element()\fP.
+
+If \fBASN1_DECODE_FLAG_ALLOW_PADDING\fP flag is set then the function will ignore
+padding after the decoded DER data. Upon a successful return the value of
+* \fImax_ider_len\fP will be set to the number of bytes decoded.
+
+If \fBASN1_DECODE_FLAG_STRICT_DER\fP flag is set then the function will
+not decode any BER\-encoded elements.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if DER encoding OK, \fBASN1_ELEMENT_NOT_FOUND\fP
+if \fIELEMENT\fP is \fBNULL\fP, and \fBASN1_TAG_ERROR\fP or
+\fBASN1_DER_ERROR\fP if the der encoding doesn't match the structure
+name (* \fIELEMENT\fP deleted).
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_der_decoding_element.3 b/doc/man/asn1_der_decoding_element.3
new file mode 100644
index 0000000..7c020de
--- /dev/null
+++ b/doc/man/asn1_der_decoding_element.3
@@ -0,0 +1,57 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_der_decoding_element" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_der_decoding_element \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_der_decoding_element(asn1_node * " structure ", const char * " elementName ", const void * " ider ", int " len ", char * " errorDescription ");"
+.SH ARGUMENTS
+.IP "asn1_node * structure" 12
+pointer to an ASN1 structure
+.IP "const char * elementName" 12
+name of the element to fill
+.IP "const void * ider" 12
+vector that contains the DER encoding of the whole structure.
+.IP "int len" 12
+number of bytes of *der: der[0]..der[len\-1]
+.IP "char * errorDescription" 12
+null\-terminated string contains details when an
+error occurred.
+.SH "DESCRIPTION"
+Fill the element named \fIELEMENTNAME\fP with values of a DER encoding
+string. The structure must just be created with function
+\fBasn1_create_element()\fP. The DER vector must contain the encoding
+string of the whole \fISTRUCTURE\fP . If an error occurs during the
+decoding procedure, the * \fISTRUCTURE\fP is deleted and set equal to
+\fBNULL\fP.
+
+This function is deprecated and may just be an alias to asn1_der_decoding
+in future versions. Use \fBasn1_der_decoding()\fP instead.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if DER encoding OK, \fBASN1_ELEMENT_NOT_FOUND\fP
+if ELEMENT is \fBNULL\fP or \fIelementName\fP == NULL, and
+\fBASN1_TAG_ERROR\fP or \fBASN1_DER_ERROR\fP if the der encoding doesn't
+match the structure \fIstructure\fP (*ELEMENT deleted).
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_der_decoding_startEnd.3 b/doc/man/asn1_der_decoding_startEnd.3
new file mode 100644
index 0000000..1974fa4
--- /dev/null
+++ b/doc/man/asn1_der_decoding_startEnd.3
@@ -0,0 +1,62 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_der_decoding_startEnd" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_der_decoding_startEnd \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_der_decoding_startEnd(asn1_node " element ", const void * " ider ", int " ider_len ", const char * " name_element ", int * " start ", int * " end ");"
+.SH ARGUMENTS
+.IP "asn1_node element" 12
+pointer to an ASN1 element
+.IP "const void * ider" 12
+vector that contains the DER encoding.
+.IP "int ider_len" 12
+number of bytes of * \fIider\fP : \fIider\fP [0].. \fIider\fP [len\-1]
+.IP "const char * name_element" 12
+an element of NAME structure.
+.IP "int * start" 12
+the position of the first byte of NAME_ELEMENT decoding
+( \fIider\fP [*start])
+.IP "int * end" 12
+the position of the last byte of NAME_ELEMENT decoding
+( \fIider\fP [*end])
+.SH "DESCRIPTION"
+Find the start and end point of an element in a DER encoding
+string. I mean that if you have a der encoding and you have already
+used the function \fBasn1_der_decoding()\fP to fill a structure, it may
+happen that you want to find the piece of string concerning an
+element of the structure.
+
+One example is the sequence "tbsCertificate" inside an X509
+certificate.
+
+Note that since libtasn1 3.7 the \fIider\fP and \fIider_len\fP parameters
+can be omitted, if the element is already decoded using \fBasn1_der_decoding()\fP.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if DER encoding OK, \fBASN1_ELEMENT_NOT_FOUND\fP
+if ELEMENT is \fBasn1_node\fP EMPTY or \fIname_element\fP is not a valid
+element, \fBASN1_TAG_ERROR\fP or \fBASN1_DER_ERROR\fP if the der encoding
+doesn't match the structure ELEMENT.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_dup_node.3 b/doc/man/asn1_dup_node.3
new file mode 100644
index 0000000..5a86b2e
--- /dev/null
+++ b/doc/man/asn1_dup_node.3
@@ -0,0 +1,40 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_dup_node" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_dup_node \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "asn1_node asn1_dup_node(asn1_node " src ", const char * " src_name ");"
+.SH ARGUMENTS
+.IP "asn1_node src" 12
+Source asn1 node.
+.IP "const char * src_name" 12
+Field name in source node.
+.SH "DESCRIPTION"
+Create a deep copy of a asn1_node variable. This function
+will return an exact copy of the provided structure.
+.SH "RETURNS"
+Return \fBNULL\fP on failure.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_encode_simple_der.3 b/doc/man/asn1_encode_simple_der.3
new file mode 100644
index 0000000..62c2a25
--- /dev/null
+++ b/doc/man/asn1_encode_simple_der.3
@@ -0,0 +1,50 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_encode_simple_der" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_encode_simple_der \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_encode_simple_der(unsigned int " etype ", const unsigned char * " str ", unsigned int " str_len ", unsigned char * " tl ", unsigned int * " tl_len ");"
+.SH ARGUMENTS
+.IP "unsigned int etype" 12
+The type of the string to be encoded (ASN1_ETYPE_)
+.IP "const unsigned char * str" 12
+the string data.
+.IP "unsigned int str_len" 12
+the string length
+.IP "unsigned char * tl" 12
+the encoded tag and length
+.IP "unsigned int * tl_len" 12
+the bytes of the \fItl\fP field
+.SH "DESCRIPTION"
+Creates the DER encoding for various simple ASN.1 types like strings etc.
+It stores the tag and length in \fItl\fP , which should have space for at least
+\fBASN1_MAX_TL_SIZE\fP bytes. Initially \fItl_len\fP should contain the size of \fItl\fP .
+
+The complete DER encoding should consist of the value in \fItl\fP appended
+with the provided \fIstr\fP .
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if successful or an error value.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_expand_any_defined_by.3 b/doc/man/asn1_expand_any_defined_by.3
new file mode 100644
index 0000000..aa0e79e
--- /dev/null
+++ b/doc/man/asn1_expand_any_defined_by.3
@@ -0,0 +1,46 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_expand_any_defined_by" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_expand_any_defined_by \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_expand_any_defined_by(asn1_node " definitions ", asn1_node * " element ");"
+.SH ARGUMENTS
+.IP "asn1_node definitions" 12
+ASN1 definitions
+.IP "asn1_node * element" 12
+pointer to an ASN1 structure
+.SH "DESCRIPTION"
+Expands every "ANY DEFINED BY" element of a structure created from
+a DER decoding process (asn1_der_decoding function). The element
+ANY must be defined by an OBJECT IDENTIFIER. The type used to
+expand the element ANY is the first one following the definition of
+the actual value of the OBJECT IDENTIFIER.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if Substitution OK, \fBASN1_ERROR_TYPE_ANY\fP if
+some "ANY DEFINED BY" element couldn't be expanded due to a
+problem in OBJECT_ID \-> TYPE association, or other error codes
+depending on DER decoding.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_expand_octet_string.3 b/doc/man/asn1_expand_octet_string.3
new file mode 100644
index 0000000..8cc34a7
--- /dev/null
+++ b/doc/man/asn1_expand_octet_string.3
@@ -0,0 +1,50 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_expand_octet_string" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_expand_octet_string \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_expand_octet_string(asn1_node " definitions ", asn1_node * " element ", const char * " octetName ", const char * " objectName ");"
+.SH ARGUMENTS
+.IP "asn1_node definitions" 12
+ASN1 definitions
+.IP "asn1_node * element" 12
+pointer to an ASN1 structure
+.IP "const char * octetName" 12
+name of the OCTECT STRING field to expand.
+.IP "const char * objectName" 12
+name of the OBJECT IDENTIFIER field to use to define
+the type for expansion.
+.SH "DESCRIPTION"
+Expands an "OCTET STRING" element of a structure created from a DER
+decoding process (the \fBasn1_der_decoding()\fP function). The type used
+for expansion is the first one following the definition of the
+actual value of the OBJECT IDENTIFIER indicated by OBJECTNAME.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if substitution OK, \fBASN1_ELEMENT_NOT_FOUND\fP
+if \fIobjectName\fP or \fIoctetName\fP are not correct,
+\fBASN1_VALUE_NOT_VALID\fP if it wasn't possible to find the type to
+use for expansion, or other errors depending on DER decoding.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_find_node.3 b/doc/man/asn1_find_node.3
new file mode 100644
index 0000000..eb61677
--- /dev/null
+++ b/doc/man/asn1_find_node.3
@@ -0,0 +1,42 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_find_node" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_find_node \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "asn1_node asn1_find_node(asn1_node " pointer ", const char * " name ");"
+.SH ARGUMENTS
+.IP "asn1_node pointer" 12
+NODE_ASN element pointer.
+.IP "const char * name" 12
+null terminated string with the element's name to find.
+.SH "DESCRIPTION"
+Searches for an element called \fIname\fP starting from \fIpointer\fP . The
+name is composed by differents identifiers separated by dots. When
+* \fIpointer\fP has a name, the first identifier must be the name of
+* \fIpointer\fP , otherwise it must be the name of one child of * \fIpointer\fP .
+.SH "RETURNS"
+the search result, or \fBNULL\fP if not found.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_find_structure_from_oid.3 b/doc/man/asn1_find_structure_from_oid.3
new file mode 100644
index 0000000..0e71339
--- /dev/null
+++ b/doc/man/asn1_find_structure_from_oid.3
@@ -0,0 +1,41 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_find_structure_from_oid" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_find_structure_from_oid \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "const char * asn1_find_structure_from_oid(asn1_node " definitions ", const char * " oidValue ");"
+.SH ARGUMENTS
+.IP "asn1_node definitions" 12
+ASN1 definitions
+.IP "const char * oidValue" 12
+value of the OID to search (e.g. "1.2.3.4").
+.SH "DESCRIPTION"
+Search the structure that is defined just after an OID definition.
+.SH "RETURNS"
+\fBNULL\fP when \fIoidValue\fP not found, otherwise the pointer to a
+constant string that contains the element name defined just after
+the OID.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_get_bit_der.3 b/doc/man/asn1_get_bit_der.3
new file mode 100644
index 0000000..9e60ea8
--- /dev/null
+++ b/doc/man/asn1_get_bit_der.3
@@ -0,0 +1,47 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_get_bit_der" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_get_bit_der \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_get_bit_der(const unsigned char * " der ", int " der_len ", int * " ret_len ", unsigned char * " str ", int " str_size ", int * " bit_len ");"
+.SH ARGUMENTS
+.IP "const unsigned char * der" 12
+DER data to decode containing the BIT SEQUENCE.
+.IP "int der_len" 12
+Length of DER data to decode.
+.IP "int * ret_len" 12
+Output variable containing the length of the DER data.
+.IP "unsigned char * str" 12
+Pre\-allocated output buffer to put decoded BIT SEQUENCE in.
+.IP "int str_size" 12
+Length of pre\-allocated output buffer.
+.IP "int * bit_len" 12
+Output variable containing the size of the BIT SEQUENCE.
+.SH "DESCRIPTION"
+Extract a BIT SEQUENCE from DER data.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP on success, or an error.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_get_length_ber.3 b/doc/man/asn1_get_length_ber.3
new file mode 100644
index 0000000..289ae44
--- /dev/null
+++ b/doc/man/asn1_get_length_ber.3
@@ -0,0 +1,46 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_get_length_ber" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_get_length_ber \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "long asn1_get_length_ber(const unsigned char * " ber ", int " ber_len ", int * " len ");"
+.SH ARGUMENTS
+.IP "const unsigned char * ber" 12
+BER data to decode.
+.IP "int ber_len" 12
+Length of BER data to decode.
+.IP "int * len" 12
+Output variable containing the length of the BER length field.
+.SH "DESCRIPTION"
+Extract a length field from BER data. The difference to
+\fBasn1_get_length_der()\fP is that this function will return a length
+even if the value has indefinite encoding.
+.SH "RETURNS"
+Return the decoded length value, or negative value when
+the value was too big.
+.SH "SINCE"
+2.0
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_get_length_der.3 b/doc/man/asn1_get_length_der.3
new file mode 100644
index 0000000..b2157af
--- /dev/null
+++ b/doc/man/asn1_get_length_der.3
@@ -0,0 +1,43 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_get_length_der" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_get_length_der \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "long asn1_get_length_der(const unsigned char * " der ", int " der_len ", int * " len ");"
+.SH ARGUMENTS
+.IP "const unsigned char * der" 12
+DER data to decode.
+.IP "int der_len" 12
+Length of DER data to decode.
+.IP "int * len" 12
+Output variable containing the length of the DER length field.
+.SH "DESCRIPTION"
+Extract a length field from DER data.
+.SH "RETURNS"
+Return the decoded length value, or \-1 on indefinite
+length, or \-2 when the value was too big to fit in a int, or \-4
+when the decoded length value plus \fIlen\fP would exceed \fIder_len\fP .
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_get_object_id_der.3 b/doc/man/asn1_get_object_id_der.3
new file mode 100644
index 0000000..fdef87a
--- /dev/null
+++ b/doc/man/asn1_get_object_id_der.3
@@ -0,0 +1,45 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_get_object_id_der" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_get_object_id_der \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_get_object_id_der(const unsigned char * " der ", int " der_len ", int * " ret_len ", char * " str ", int " str_size ");"
+.SH ARGUMENTS
+.IP "const unsigned char * der" 12
+DER data to decode containing the OBJECT IDENTIFIER
+.IP "int der_len" 12
+Length of DER data to decode.
+.IP "int * ret_len" 12
+Output variable containing the length of the DER data.
+.IP "char * str" 12
+Pre\-allocated output buffer to put the textual object id in.
+.IP "int str_size" 12
+Length of pre\-allocated output buffer.
+.SH "DESCRIPTION"
+Converts a DER encoded object identifier to its textual form.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP on success, or an error.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_get_octet_der.3 b/doc/man/asn1_get_octet_der.3
new file mode 100644
index 0000000..e142e52
--- /dev/null
+++ b/doc/man/asn1_get_octet_der.3
@@ -0,0 +1,47 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_get_octet_der" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_get_octet_der \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_get_octet_der(const unsigned char * " der ", int " der_len ", int * " ret_len ", unsigned char * " str ", int " str_size ", int * " str_len ");"
+.SH ARGUMENTS
+.IP "const unsigned char * der" 12
+DER data to decode containing the OCTET SEQUENCE.
+.IP "int der_len" 12
+Length of DER data to decode.
+.IP "int * ret_len" 12
+Output variable containing the length of the DER data.
+.IP "unsigned char * str" 12
+Pre\-allocated output buffer to put decoded OCTET SEQUENCE in.
+.IP "int str_size" 12
+Length of pre\-allocated output buffer.
+.IP "int * str_len" 12
+Output variable containing the length of the OCTET SEQUENCE.
+.SH "DESCRIPTION"
+Extract an OCTET SEQUENCE from DER data.
+.SH "RETURNS"
+Returns \fBASN1_SUCCESS\fP on success, or an error.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_get_tag_der.3 b/doc/man/asn1_get_tag_der.3
new file mode 100644
index 0000000..c39ca94
--- /dev/null
+++ b/doc/man/asn1_get_tag_der.3
@@ -0,0 +1,45 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_get_tag_der" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_get_tag_der \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_get_tag_der(const unsigned char * " der ", int " der_len ", unsigned char * " cls ", int * " len ", unsigned long * " tag ");"
+.SH ARGUMENTS
+.IP "const unsigned char * der" 12
+DER data to decode.
+.IP "int der_len" 12
+Length of DER data to decode.
+.IP "unsigned char * cls" 12
+Output variable containing decoded class.
+.IP "int * len" 12
+Output variable containing the length of the DER TAG data.
+.IP "unsigned long * tag" 12
+Output variable containing the decoded tag.
+.SH "DESCRIPTION"
+Decode the class and TAG from DER code.
+.SH "RETURNS"
+Returns \fBASN1_SUCCESS\fP on success, or an error.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_length_der.3 b/doc/man/asn1_length_der.3
new file mode 100644
index 0000000..6bae394
--- /dev/null
+++ b/doc/man/asn1_length_der.3
@@ -0,0 +1,43 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_length_der" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_length_der \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "void asn1_length_der(unsigned long int " len ", unsigned char * " der ", int * " der_len ");"
+.SH ARGUMENTS
+.IP "unsigned long int len" 12
+value to convert.
+.IP "unsigned char * der" 12
+buffer to hold the returned encoding (may be \fBNULL\fP).
+.IP "int * der_len" 12
+number of meaningful bytes of ANS (der[0]..der[der_len\-1]).
+.SH "DESCRIPTION"
+Creates the DER encoding of the provided length value.
+The \fIder\fP buffer must have enough room for the output. The maximum
+length this function will encode is \fBASN1_MAX_LENGTH_SIZE\fP.
+
+To know the size of the DER encoding use a \fBNULL\fP value for \fIder\fP .
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_number_of_elements.3 b/doc/man/asn1_number_of_elements.3
new file mode 100644
index 0000000..414d293
--- /dev/null
+++ b/doc/man/asn1_number_of_elements.3
@@ -0,0 +1,43 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_number_of_elements" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_number_of_elements \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_number_of_elements(asn1_node " element ", const char * " name ", int * " num ");"
+.SH ARGUMENTS
+.IP "asn1_node element" 12
+pointer to the root of an ASN1 structure.
+.IP "const char * name" 12
+the name of a sub\-structure of ROOT.
+.IP "int * num" 12
+pointer to an integer where the result will be stored
+.SH "DESCRIPTION"
+Counts the number of elements of a sub\-structure called NAME with
+names equal to "?1","?2", ...
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if successful, \fBASN1_ELEMENT_NOT_FOUND\fP if
+ \fIname\fP is not known, \fBASN1_GENERIC_ERROR\fP if pointer \fInum\fP is \fBNULL\fP.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_octet_der.3 b/doc/man/asn1_octet_der.3
new file mode 100644
index 0000000..1f40633
--- /dev/null
+++ b/doc/man/asn1_octet_der.3
@@ -0,0 +1,49 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_octet_der" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_octet_der \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "void asn1_octet_der(const unsigned char * " str ", int " str_len ", unsigned char * " der ", int * " der_len ");"
+.SH ARGUMENTS
+.IP "const unsigned char * str" 12
+the input data.
+.IP "int str_len" 12
+STR length (str[0]..str[*str_len\-1]).
+.IP "unsigned char * der" 12
+encoded string returned.
+.IP "int * der_len" 12
+number of meaningful bytes of DER (der[0]..der[der_len\-1]).
+.SH "DESCRIPTION"
+Creates a length\-value DER encoding for the input data.
+The DER encoding of the input data will be placed in the \fIder\fP variable.
+
+Note that the OCTET STRING tag is not included in the output.
+
+This function does not return any value because it is expected
+that \fIder_len\fP will contain enough bytes to store the string
+plus the DER encoding. The DER encoding size can be obtained using
+\fBasn1_length_der()\fP.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_parser2array.3 b/doc/man/asn1_parser2array.3
new file mode 100644
index 0000000..38929fc
--- /dev/null
+++ b/doc/man/asn1_parser2array.3
@@ -0,0 +1,57 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_parser2array" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_parser2array \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_parser2array(const char * " inputFileName ", const char * " outputFileName ", const char * " vectorName ", char * " error_desc ");"
+.SH ARGUMENTS
+.IP "const char * inputFileName" 12
+specify the path and the name of file that
+contains ASN.1 declarations.
+.IP "const char * outputFileName" 12
+specify the path and the name of file that will
+contain the C vector definition.
+.IP "const char * vectorName" 12
+specify the name of the C vector.
+.IP "char * error_desc" 12
+return the error description or an empty
+string if success.
+.SH "DESCRIPTION"
+Function that generates a C structure from an ASN1 file. Creates a
+file containing a C vector to use to manage the definitions
+included in \fIinputFileName\fP file. If \fIinputFileName\fP is
+"/aa/bb/xx.yy" and \fIoutputFileName\fP is \fBNULL\fP, the file created is
+"/aa/bb/xx_asn1_tab.c". If \fIvectorName\fP is \fBNULL\fP the vector name
+will be "xx_asn1_tab".
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if the file has a correct syntax and every
+identifier is known, \fBASN1_FILE_NOT_FOUND\fP if an error occured
+while opening \fIinputFileName\fP , \fBASN1_SYNTAX_ERROR\fP if the syntax is
+not correct, \fBASN1_IDENTIFIER_NOT_FOUND\fP if in the file there is
+an identifier that is not defined, \fBASN1_NAME_TOO_LONG\fP if in the
+file there is an identifier whith more than \fBASN1_MAX_NAME_SIZE\fP
+characters.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_parser2tree.3 b/doc/man/asn1_parser2tree.3
new file mode 100644
index 0000000..c29b411
--- /dev/null
+++ b/doc/man/asn1_parser2tree.3
@@ -0,0 +1,52 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_parser2tree" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_parser2tree \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_parser2tree(const char * " file ", asn1_node * " definitions ", char * " error_desc ");"
+.SH ARGUMENTS
+.IP "const char * file" 12
+specify the path and the name of file that contains
+ASN.1 declarations.
+.IP "asn1_node * definitions" 12
+return the pointer to the structure created from
+"file" ASN.1 declarations.
+.IP "char * error_desc" 12
+return the error description or an empty
+string if success.
+.SH "DESCRIPTION"
+Function used to start the parse algorithm. Creates the structures
+needed to manage the definitions included in \fIfile\fP file.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if the file has a correct syntax and every
+identifier is known, \fBASN1_ELEMENT_NOT_EMPTY\fP if \fIdefinitions\fP not
+\fBNULL\fP, \fBASN1_FILE_NOT_FOUND\fP if an error occured while
+opening \fIfile\fP , \fBASN1_SYNTAX_ERROR\fP if the syntax is not
+correct, \fBASN1_IDENTIFIER_NOT_FOUND\fP if in the file there is an
+identifier that is not defined, \fBASN1_NAME_TOO_LONG\fP if in the
+file there is an identifier whith more than \fBASN1_MAX_NAME_SIZE\fP
+characters.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_perror.3 b/doc/man/asn1_perror.3
new file mode 100644
index 0000000..7dd11ba
--- /dev/null
+++ b/doc/man/asn1_perror.3
@@ -0,0 +1,39 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_perror" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_perror \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "void asn1_perror(int " error ");"
+.SH ARGUMENTS
+.IP "int error" 12
+is an error returned by a libtasn1 function.
+.SH "DESCRIPTION"
+Prints a string to stderr with a description of an error. This
+function is like \fBperror()\fP. The only difference is that it accepts
+an error returned by a libtasn1 function.
+.SH "SINCE"
+1.6
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_print_structure.3 b/doc/man/asn1_print_structure.3
new file mode 100644
index 0000000..f259828
--- /dev/null
+++ b/doc/man/asn1_print_structure.3
@@ -0,0 +1,44 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_print_structure" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_print_structure \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "void asn1_print_structure(FILE * " out ", asn1_node " structure ", const char * " name ", int " mode ");"
+.SH ARGUMENTS
+.IP "FILE * out" 12
+pointer to the output file (e.g. stdout).
+.IP "asn1_node structure" 12
+pointer to the structure that you want to visit.
+.IP "const char * name" 12
+an element of the structure
+.IP "int mode" 12
+specify how much of the structure to print, can be
+\fBASN1_PRINT_NAME\fP, \fBASN1_PRINT_NAME_TYPE\fP,
+\fBASN1_PRINT_NAME_TYPE_VALUE\fP, or \fBASN1_PRINT_ALL\fP.
+.SH "DESCRIPTION"
+Prints on the \fIout\fP file descriptor the structure's tree starting
+from the \fIname\fP element inside the structure \fIstructure\fP .
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_read_node_value.3 b/doc/man/asn1_read_node_value.3
new file mode 100644
index 0000000..590d1ac
--- /dev/null
+++ b/doc/man/asn1_read_node_value.3
@@ -0,0 +1,40 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_read_node_value" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_read_node_value \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_read_node_value(asn1_node " node ", asn1_data_node_st * " data ");"
+.SH ARGUMENTS
+.IP "asn1_node node" 12
+pointer to a node.
+.IP "asn1_data_node_st * data" 12
+a point to a asn1_data_node_st
+.SH "DESCRIPTION"
+Returns the value a data node inside a asn1_node structure.
+The data returned should be handled as constant values.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if the node exists.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_read_tag.3 b/doc/man/asn1_read_tag.3
new file mode 100644
index 0000000..c9c967d
--- /dev/null
+++ b/doc/man/asn1_read_tag.3
@@ -0,0 +1,47 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_read_tag" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_read_tag \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_read_tag(asn1_node " root ", const char * " name ", int * " tagValue ", int * " classValue ");"
+.SH ARGUMENTS
+.IP "asn1_node root" 12
+pointer to a structure
+.IP "const char * name" 12
+the name of the element inside a structure.
+.IP "int * tagValue" 12
+variable that will contain the TAG value.
+.IP "int * classValue" 12
+variable that will specify the TAG type.
+.SH "DESCRIPTION"
+Returns the TAG and the CLASS of one element inside a structure.
+CLASS can have one of these constants: \fBASN1_CLASS_APPLICATION\fP,
+\fBASN1_CLASS_UNIVERSAL\fP, \fBASN1_CLASS_PRIVATE\fP or
+\fBASN1_CLASS_CONTEXT_SPECIFIC\fP.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if successful, \fBASN1_ELEMENT_NOT_FOUND\fP if
+ \fIname\fP is not a valid element.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_read_value.3 b/doc/man/asn1_read_value.3
new file mode 100644
index 0000000..49f8ce4
--- /dev/null
+++ b/doc/man/asn1_read_value.3
@@ -0,0 +1,97 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_read_value" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_read_value \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_read_value(asn1_node " root ", const char * " name ", void * " ivalue ", int * " len ");"
+.SH ARGUMENTS
+.IP "asn1_node root" 12
+pointer to a structure.
+.IP "const char * name" 12
+the name of the element inside a structure that you want to read.
+.IP "void * ivalue" 12
+vector that will contain the element's content, must be a
+pointer to memory cells already allocated (may be \fBNULL\fP).
+.IP "int * len" 12
+number of bytes of *value: value[0]..value[len\-1]. Initialy
+holds the sizeof value.
+.SH "DESCRIPTION"
+Returns the value of one element inside a structure.
+If an element is OPTIONAL and this returns
+\fBASN1_ELEMENT_NOT_FOUND\fP, it means that this element wasn't present
+in the der encoding that created the structure. The first element
+of a SEQUENCE_OF or SET_OF is named "?1". The second one "?2" and
+so on. If the \fIroot\fP provided is a node to specific sequence element,
+then the keyword "?CURRENT" is also acceptable and indicates the
+current sequence element of this node.
+
+Note that there can be valid values with length zero. In these case
+this function will succeed and \fIlen\fP will be zero.
+.SH "INTEGER"
+VALUE will contain a two's complement form integer.
+
+integer=\-1 \-> value[0]=0xFF , len=1.
+integer=1 \-> value[0]=0x01 , len=1.
+.SH "ENUMERATED"
+As INTEGER (but only with not negative numbers).
+.SH "BOOLEAN"
+VALUE will be the null terminated string "TRUE" or
+"FALSE" and LEN=5 or LEN=6.
+
+OBJECT IDENTIFIER: VALUE will be a null terminated string with
+each number separated by a dot (i.e. "1.2.3.543.1").
+
+LEN = strlen(VALUE)+1
+.SH "UTCTIME"
+VALUE will be a null terminated string in one of these
+formats: "YYMMDDhhmmss+hh'mm'" or "YYMMDDhhmmss\-hh'mm'".
+LEN=strlen(VALUE)+1.
+.SH "GENERALIZEDTIME"
+VALUE will be a null terminated string in the
+same format used to set the value.
+
+OCTET STRING: VALUE will contain the octet string and LEN will be
+the number of octets.
+.SH "GENERALSTRING"
+VALUE will contain the generalstring and LEN will
+be the number of octets.
+
+BIT STRING: VALUE will contain the bit string organized by bytes
+and LEN will be the number of bits.
+.SH "CHOICE"
+If NAME indicates a choice type, VALUE will specify the
+alternative selected.
+.SH "ANY"
+If NAME indicates an any type, VALUE will indicate the DER
+encoding of the structure actually used.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if value is returned,
+\fBASN1_ELEMENT_NOT_FOUND\fP if \fIname\fP is not a valid element,
+\fBASN1_VALUE_NOT_FOUND\fP if there isn't any value for the element
+selected, and \fBASN1_MEM_ERROR\fP if The value vector isn't big enough
+to store the result, and in this case \fIlen\fP will contain the number of
+bytes needed.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_read_value_type.3 b/doc/man/asn1_read_value_type.3
new file mode 100644
index 0000000..8cb2ec9
--- /dev/null
+++ b/doc/man/asn1_read_value_type.3
@@ -0,0 +1,99 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_read_value_type" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_read_value_type \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_read_value_type(asn1_node " root ", const char * " name ", void * " ivalue ", int * " len ", unsigned int * " etype ");"
+.SH ARGUMENTS
+.IP "asn1_node root" 12
+pointer to a structure.
+.IP "const char * name" 12
+the name of the element inside a structure that you want to read.
+.IP "void * ivalue" 12
+vector that will contain the element's content, must be a
+pointer to memory cells already allocated (may be \fBNULL\fP).
+.IP "int * len" 12
+number of bytes of *value: value[0]..value[len\-1]. Initialy
+holds the sizeof value.
+.IP "unsigned int * etype" 12
+The type of the value read (ASN1_ETYPE)
+.SH "DESCRIPTION"
+Returns the type and value of one element inside a structure.
+If an element is OPTIONAL and this returns
+\fBASN1_ELEMENT_NOT_FOUND\fP, it means that this element wasn't present
+in the der encoding that created the structure. The first element
+of a SEQUENCE_OF or SET_OF is named "?1". The second one "?2" and
+so on. If the \fIroot\fP provided is a node to specific sequence element,
+then the keyword "?CURRENT" is also acceptable and indicates the
+current sequence element of this node.
+
+Note that there can be valid values with length zero. In these case
+this function will succeed and \fIlen\fP will be zero.
+.SH "INTEGER"
+VALUE will contain a two's complement form integer.
+
+integer=\-1 \-> value[0]=0xFF , len=1.
+integer=1 \-> value[0]=0x01 , len=1.
+.SH "ENUMERATED"
+As INTEGER (but only with not negative numbers).
+.SH "BOOLEAN"
+VALUE will be the null terminated string "TRUE" or
+"FALSE" and LEN=5 or LEN=6.
+
+OBJECT IDENTIFIER: VALUE will be a null terminated string with
+each number separated by a dot (i.e. "1.2.3.543.1").
+
+LEN = strlen(VALUE)+1
+.SH "UTCTIME"
+VALUE will be a null terminated string in one of these
+formats: "YYMMDDhhmmss+hh'mm'" or "YYMMDDhhmmss\-hh'mm'".
+LEN=strlen(VALUE)+1.
+.SH "GENERALIZEDTIME"
+VALUE will be a null terminated string in the
+same format used to set the value.
+
+OCTET STRING: VALUE will contain the octet string and LEN will be
+the number of octets.
+.SH "GENERALSTRING"
+VALUE will contain the generalstring and LEN will
+be the number of octets.
+
+BIT STRING: VALUE will contain the bit string organized by bytes
+and LEN will be the number of bits.
+.SH "CHOICE"
+If NAME indicates a choice type, VALUE will specify the
+alternative selected.
+.SH "ANY"
+If NAME indicates an any type, VALUE will indicate the DER
+encoding of the structure actually used.
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if value is returned,
+\fBASN1_ELEMENT_NOT_FOUND\fP if \fIname\fP is not a valid element,
+\fBASN1_VALUE_NOT_FOUND\fP if there isn't any value for the element
+selected, and \fBASN1_MEM_ERROR\fP if The value vector isn't big enough
+to store the result, and in this case \fIlen\fP will contain the number of
+bytes needed.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_strerror.3 b/doc/man/asn1_strerror.3
new file mode 100644
index 0000000..9c33edd
--- /dev/null
+++ b/doc/man/asn1_strerror.3
@@ -0,0 +1,42 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_strerror" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_strerror \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "const char * asn1_strerror(int " error ");"
+.SH ARGUMENTS
+.IP "int error" 12
+is an error returned by a libtasn1 function.
+.SH "DESCRIPTION"
+Returns a string with a description of an error. This function is
+similar to strerror. The only difference is that it accepts an
+error (number) returned by a libtasn1 function.
+.SH "RETURNS"
+Pointer to static zero\-terminated string describing error
+code.
+.SH "SINCE"
+1.6
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP
diff --git a/doc/man/asn1_write_value.3 b/doc/man/asn1_write_value.3
new file mode 100644
index 0000000..bd35336
--- /dev/null
+++ b/doc/man/asn1_write_value.3
@@ -0,0 +1,138 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by gdoc.
+.TH "asn1_write_value" 3 "4.8" "libtasn1" "libtasn1"
+.SH NAME
+asn1_write_value \- API function
+.SH SYNOPSIS
+.B #include <libtasn1.h>
+.sp
+.BI "int asn1_write_value(asn1_node " node_root ", const char * " name ", const void * " ivalue ", int " len ");"
+.SH ARGUMENTS
+.IP "asn1_node node_root" 12
+pointer to a structure
+.IP "const char * name" 12
+the name of the element inside the structure that you want to set.
+.IP "const void * ivalue" 12
+vector used to specify the value to set. If len is >0,
+VALUE must be a two's complement form integer. if len=0 *VALUE
+must be a null terminated string with an integer value.
+.IP "int len" 12
+number of bytes of *value to use to set the value:
+value[0]..value[len\-1] or 0 if value is a null terminated string
+.SH "DESCRIPTION"
+Set the value of one element inside a structure.
+
+If an element is OPTIONAL and you want to delete it, you must use
+the value=NULL and len=0. Using "pkix.asn":
+
+result=asn1_write_value(cert, "tbsCertificate.issuerUniqueID",
+NULL, 0);
+
+Description for each type:
+.SH "INTEGER"
+VALUE must contain a two's complement form integer.
+
+value[0]=0xFF , len=1 \-> integer=\-1.
+value[0]=0xFF value[1]=0xFF , len=2 \-> integer=\-1.
+value[0]=0x01 , len=1 \-> integer= 1.
+value[0]=0x00 value[1]=0x01 , len=2 \-> integer= 1.
+value="123" , len=0 \-> integer= 123.
+.SH "ENUMERATED"
+As INTEGER (but only with not negative numbers).
+.SH "BOOLEAN"
+VALUE must be the null terminated string "TRUE" or
+"FALSE" and LEN != 0.
+
+value="TRUE" , len=1 \-> boolean=TRUE.
+value="FALSE" , len=1 \-> boolean=FALSE.
+
+OBJECT IDENTIFIER: VALUE must be a null terminated string with
+each number separated by a dot (e.g. "1.2.3.543.1"). LEN != 0.
+
+value="1 2 840 10040 4 3" , len=1 \-> OID=dsa\-with\-sha.
+.SH "UTCTIME"
+VALUE must be a null terminated string in one of these
+formats: "YYMMDDhhmmssZ", "YYMMDDhhmmssZ",
+"YYMMDDhhmmss+hh'mm'", "YYMMDDhhmmss\-hh'mm'",
+"YYMMDDhhmm+hh'mm'", or "YYMMDDhhmm\-hh'mm'". LEN != 0.
+
+value="9801011200Z" , len=1 \-> time=Jannuary 1st, 1998
+at 12h 00m Greenwich Mean Time
+.SH "GENERALIZEDTIME"
+VALUE must be in one of this format:
+"YYYYMMDDhhmmss.sZ", "YYYYMMDDhhmmss.sZ",
+"YYYYMMDDhhmmss.s+hh'mm'", "YYYYMMDDhhmmss.s\-hh'mm'",
+"YYYYMMDDhhmm+hh'mm'", or "YYYYMMDDhhmm\-hh'mm'" where ss.s
+indicates the seconds with any precision like "10.1" or "01.02".
+LEN != 0
+
+value="2001010112001.12\-0700" , len=1 \-> time=Jannuary
+1st, 2001 at 12h 00m 01.12s Pacific Daylight Time
+
+OCTET STRING: VALUE contains the octet string and LEN is the
+number of octets.
+
+value="$\backslash$x01$\backslash$x02$\backslash$x03" ,
+len=3 \-> three bytes octet string
+.SH "GENERALSTRING"
+VALUE contains the generalstring and LEN is the
+number of octets.
+
+value="$\backslash$x01$\backslash$x02$\backslash$x03" ,
+len=3 \-> three bytes generalstring
+
+BIT STRING: VALUE contains the bit string organized by bytes and
+LEN is the number of bits.
+
+value="$\backslash$xCF" , len=6 \-> bit string="110011" (six
+bits)
+.SH "CHOICE"
+if NAME indicates a choice type, VALUE must specify one of
+the alternatives with a null terminated string. LEN != 0. Using
+"pkix.asn"\:
+
+result=asn1_write_value(cert,
+"certificate1.tbsCertificate.subject", "rdnSequence",
+1);
+.SH "ANY"
+VALUE indicates the der encoding of a structure. LEN != 0.
+
+SEQUENCE OF: VALUE must be the null terminated string "NEW" and
+LEN != 0. With this instruction another element is appended in
+the sequence. The name of this element will be "?1" if it's the
+first one, "?2" for the second and so on.
+
+Using "pkix.asn"\:
+
+result=asn1_write_value(cert,
+"certificate1.tbsCertificate.subject.rdnSequence", "NEW", 1);
+
+SET OF: the same as SEQUENCE OF. Using "pkix.asn":
+
+result=asn1_write_value(cert,
+"tbsCertificate.subject.rdnSequence.?LAST", "NEW", 1);
+.SH "RETURNS"
+\fBASN1_SUCCESS\fP if the value was set,
+\fBASN1_ELEMENT_NOT_FOUND\fP if \fIname\fP is not a valid element, and
+\fBASN1_VALUE_NOT_VALID\fP if \fIivalue\fP has a wrong format.
+.SH COPYRIGHT
+Copyright \(co 2006-2015 Free Software Foundation, Inc..
+.br
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+.SH "SEE ALSO"
+The full documentation for
+.B libtasn1
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B libtasn1
+programs are properly installed at your site, the command
+.IP
+.B info libtasn1
+.PP
+should give you access to the complete manual.
+As an alternative you may obtain the manual from:
+.IP
+.B http://www.gnu.org/software/libtasn1/manual/
+.PP