????JFIF??x?x????'403WebShell
403Webshell
Server IP : 79.136.114.73  /  Your IP : 18.223.211.185
Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f
System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64
User : www-data ( 33)
PHP Version : 5.5.9-1ubuntu4.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/doc/libtasn1-6-dev/reference/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/doc/libtasn1-6-dev/reference/libtasn1-libtasn1.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GNU Libtasn1 API Reference Manual: libtasn1</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="GNU Libtasn1 API Reference Manual">
<link rel="up" href="intro.html" title="GNU Libtasn1 API Reference Manual">
<link rel="prev" href="intro.html" title="GNU Libtasn1 API Reference Manual">
<link rel="next" href="api-index-full.html" title="API Index">
<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
                  <a href="#libtasn1-libtasn1.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                  <a href="#libtasn1-libtasn1.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="intro.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="intro.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="libtasn1-libtasn1"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="libtasn1-libtasn1.top_of_page"></a>libtasn1</span></h2>
<p>libtasn1</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="libtasn1-libtasn1.functions"></a><h2>Functions</h2>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-parser2tree" title="asn1_parser2tree ()">asn1_parser2tree</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-parser2array" title="asn1_parser2array ()">asn1_parser2array</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-array2tree" title="asn1_array2tree ()">asn1_array2tree</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-print-structure" title="asn1_print_structure ()">asn1_print_structure</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-create-element" title="asn1_create_element ()">asn1_create_element</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-delete-structure" title="asn1_delete_structure ()">asn1_delete_structure</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-delete-structure2" title="asn1_delete_structure2 ()">asn1_delete_structure2</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-delete-element" title="asn1_delete_element ()">asn1_delete_element</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-write-value" title="asn1_write_value ()">asn1_write_value</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-read-value" title="asn1_read_value ()">asn1_read_value</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-read-value-type" title="asn1_read_value_type ()">asn1_read_value_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-read-node-value" title="asn1_read_node_value ()">asn1_read_node_value</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-number-of-elements" title="asn1_number_of_elements ()">asn1_number_of_elements</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-der-coding" title="asn1_der_coding ()">asn1_der_coding</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-der-decoding" title="asn1_der_decoding ()">asn1_der_decoding</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-der-decoding-element" title="asn1_der_decoding_element ()">asn1_der_decoding_element</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-der-decoding-startEnd" title="asn1_der_decoding_startEnd ()">asn1_der_decoding_startEnd</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-expand-any-defined-by" title="asn1_expand_any_defined_by ()">asn1_expand_any_defined_by</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-expand-octet-string" title="asn1_expand_octet_string ()">asn1_expand_octet_string</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-read-tag" title="asn1_read_tag ()">asn1_read_tag</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-find-structure-from-oid" title="asn1_find_structure_from_oid ()">asn1_find_structure_from_oid</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-check-version" title="asn1_check_version ()">asn1_check_version</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-strerror" title="asn1_strerror ()">asn1_strerror</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-perror" title="asn1_perror ()">asn1_perror</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-MAX-TL-SIZE:CAPS" title="ASN1_MAX_TL_SIZE">ASN1_MAX_TL_SIZE</a></td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">long</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-get-length-der" title="asn1_get_length_der ()">asn1_get_length_der</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">long</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-get-length-ber" title="asn1_get_length_ber ()">asn1_get_length_ber</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-length-der" title="asn1_length_der ()">asn1_length_der</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-decode-simple-der" title="asn1_decode_simple_der ()">asn1_decode_simple_der</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-encode-simple-der" title="asn1_encode_simple_der ()">asn1_encode_simple_der</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="returnvalue">asn1_node</span></a>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-find-node" title="asn1_find_node ()">asn1_find_node</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-copy-node" title="asn1_copy_node ()">asn1_copy_node</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-get-tag-der" title="asn1_get_tag_der ()">asn1_get_tag_der</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-octet-der" title="asn1_octet_der ()">asn1_octet_der</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-get-octet-der" title="asn1_get_octet_der ()">asn1_get_octet_der</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-bit-der" title="asn1_bit_der ()">asn1_bit_der</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="libtasn1-libtasn1.html#asn1-get-bit-der" title="asn1_get_bit_der ()">asn1_get_bit_der</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="libtasn1-libtasn1.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-API:CAPS" title="ASN1_API">ASN1_API</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-VERSION:CAPS" title="ASN1_VERSION">ASN1_VERSION</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS">ASN1_SUCCESS</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-FILE-NOT-FOUND:CAPS" title="ASN1_FILE_NOT_FOUND">ASN1_FILE_NOT_FOUND</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND">ASN1_ELEMENT_NOT_FOUND</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-IDENTIFIER-NOT-FOUND:CAPS" title="ASN1_IDENTIFIER_NOT_FOUND">ASN1_IDENTIFIER_NOT_FOUND</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-DER-ERROR:CAPS" title="ASN1_DER_ERROR">ASN1_DER_ERROR</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-VALUE-NOT-FOUND:CAPS" title="ASN1_VALUE_NOT_FOUND">ASN1_VALUE_NOT_FOUND</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-GENERIC-ERROR:CAPS" title="ASN1_GENERIC_ERROR">ASN1_GENERIC_ERROR</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-VALUE-NOT-VALID:CAPS" title="ASN1_VALUE_NOT_VALID">ASN1_VALUE_NOT_VALID</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-ERROR:CAPS" title="ASN1_TAG_ERROR">ASN1_TAG_ERROR</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-IMPLICIT:CAPS" title="ASN1_TAG_IMPLICIT">ASN1_TAG_IMPLICIT</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ERROR-TYPE-ANY:CAPS" title="ASN1_ERROR_TYPE_ANY">ASN1_ERROR_TYPE_ANY</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-SYNTAX-ERROR:CAPS" title="ASN1_SYNTAX_ERROR">ASN1_SYNTAX_ERROR</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-MEM-ERROR:CAPS" title="ASN1_MEM_ERROR">ASN1_MEM_ERROR</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-MEM-ALLOC-ERROR:CAPS" title="ASN1_MEM_ALLOC_ERROR">ASN1_MEM_ALLOC_ERROR</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-DER-OVERFLOW:CAPS" title="ASN1_DER_OVERFLOW">ASN1_DER_OVERFLOW</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-NAME-TOO-LONG:CAPS" title="ASN1_NAME_TOO_LONG">ASN1_NAME_TOO_LONG</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ARRAY-ERROR:CAPS" title="ASN1_ARRAY_ERROR">ASN1_ARRAY_ERROR</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-EMPTY:CAPS" title="ASN1_ELEMENT_NOT_EMPTY">ASN1_ELEMENT_NOT_EMPTY</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-PRINT-NAME:CAPS" title="ASN1_PRINT_NAME">ASN1_PRINT_NAME</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-PRINT-NAME-TYPE:CAPS" title="ASN1_PRINT_NAME_TYPE">ASN1_PRINT_NAME_TYPE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-PRINT-NAME-TYPE-VALUE:CAPS" title="ASN1_PRINT_NAME_TYPE_VALUE">ASN1_PRINT_NAME_TYPE_VALUE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-PRINT-ALL:CAPS" title="ASN1_PRINT_ALL">ASN1_PRINT_ALL</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-CLASS-UNIVERSAL:CAPS" title="ASN1_CLASS_UNIVERSAL">ASN1_CLASS_UNIVERSAL</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-CLASS-APPLICATION:CAPS" title="ASN1_CLASS_APPLICATION">ASN1_CLASS_APPLICATION</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-CLASS-CONTEXT-SPECIFIC:CAPS" title="ASN1_CLASS_CONTEXT_SPECIFIC">ASN1_CLASS_CONTEXT_SPECIFIC</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-CLASS-PRIVATE:CAPS" title="ASN1_CLASS_PRIVATE">ASN1_CLASS_PRIVATE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-CLASS-STRUCTURED:CAPS" title="ASN1_CLASS_STRUCTURED">ASN1_CLASS_STRUCTURED</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-BOOLEAN:CAPS" title="ASN1_TAG_BOOLEAN">ASN1_TAG_BOOLEAN</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-INTEGER:CAPS" title="ASN1_TAG_INTEGER">ASN1_TAG_INTEGER</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-SEQUENCE:CAPS" title="ASN1_TAG_SEQUENCE">ASN1_TAG_SEQUENCE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-SET:CAPS" title="ASN1_TAG_SET">ASN1_TAG_SET</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-OCTET-STRING:CAPS" title="ASN1_TAG_OCTET_STRING">ASN1_TAG_OCTET_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-BIT-STRING:CAPS" title="ASN1_TAG_BIT_STRING">ASN1_TAG_BIT_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-UTCTime" title="ASN1_TAG_UTCTime">ASN1_TAG_UTCTime</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-GENERALIZEDTime" title="ASN1_TAG_GENERALIZEDTime">ASN1_TAG_GENERALIZEDTime</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-OBJECT-ID:CAPS" title="ASN1_TAG_OBJECT_ID">ASN1_TAG_OBJECT_ID</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-ENUMERATED:CAPS" title="ASN1_TAG_ENUMERATED">ASN1_TAG_ENUMERATED</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-NULL:CAPS" title="ASN1_TAG_NULL">ASN1_TAG_NULL</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-GENERALSTRING:CAPS" title="ASN1_TAG_GENERALSTRING">ASN1_TAG_GENERALSTRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-NUMERIC-STRING:CAPS" title="ASN1_TAG_NUMERIC_STRING">ASN1_TAG_NUMERIC_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-IA5-STRING:CAPS" title="ASN1_TAG_IA5_STRING">ASN1_TAG_IA5_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-TELETEX-STRING:CAPS" title="ASN1_TAG_TELETEX_STRING">ASN1_TAG_TELETEX_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-PRINTABLE-STRING:CAPS" title="ASN1_TAG_PRINTABLE_STRING">ASN1_TAG_PRINTABLE_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-UNIVERSAL-STRING:CAPS" title="ASN1_TAG_UNIVERSAL_STRING">ASN1_TAG_UNIVERSAL_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-BMP-STRING:CAPS" title="ASN1_TAG_BMP_STRING">ASN1_TAG_BMP_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-UTF8-STRING:CAPS" title="ASN1_TAG_UTF8_STRING">ASN1_TAG_UTF8_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-VISIBLE-STRING:CAPS" title="ASN1_TAG_VISIBLE_STRING">ASN1_TAG_VISIBLE_STRING</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#asn1-node-st" title="asn1_node_st">asn1_node_st</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node">asn1_node</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-MAX-NAME-SIZE:CAPS" title="ASN1_MAX_NAME_SIZE">ASN1_MAX_NAME_SIZE</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#asn1-static-node" title="asn1_static_node">asn1_static_node</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-INVALID:CAPS" title="ASN1_ETYPE_INVALID">ASN1_ETYPE_INVALID</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-CONSTANT:CAPS" title="ASN1_ETYPE_CONSTANT">ASN1_ETYPE_CONSTANT</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-IDENTIFIER:CAPS" title="ASN1_ETYPE_IDENTIFIER">ASN1_ETYPE_IDENTIFIER</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-INTEGER:CAPS" title="ASN1_ETYPE_INTEGER">ASN1_ETYPE_INTEGER</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-BOOLEAN:CAPS" title="ASN1_ETYPE_BOOLEAN">ASN1_ETYPE_BOOLEAN</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-SEQUENCE:CAPS" title="ASN1_ETYPE_SEQUENCE">ASN1_ETYPE_SEQUENCE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-BIT-STRING:CAPS" title="ASN1_ETYPE_BIT_STRING">ASN1_ETYPE_BIT_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-OCTET-STRING:CAPS" title="ASN1_ETYPE_OCTET_STRING">ASN1_ETYPE_OCTET_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-TAG:CAPS" title="ASN1_ETYPE_TAG">ASN1_ETYPE_TAG</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-DEFAULT:CAPS" title="ASN1_ETYPE_DEFAULT">ASN1_ETYPE_DEFAULT</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-SIZE:CAPS" title="ASN1_ETYPE_SIZE">ASN1_ETYPE_SIZE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-SEQUENCE-OF:CAPS" title="ASN1_ETYPE_SEQUENCE_OF">ASN1_ETYPE_SEQUENCE_OF</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-OBJECT-ID:CAPS" title="ASN1_ETYPE_OBJECT_ID">ASN1_ETYPE_OBJECT_ID</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-ANY:CAPS" title="ASN1_ETYPE_ANY">ASN1_ETYPE_ANY</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-SET:CAPS" title="ASN1_ETYPE_SET">ASN1_ETYPE_SET</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-SET-OF:CAPS" title="ASN1_ETYPE_SET_OF">ASN1_ETYPE_SET_OF</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-DEFINITIONS:CAPS" title="ASN1_ETYPE_DEFINITIONS">ASN1_ETYPE_DEFINITIONS</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-CHOICE:CAPS" title="ASN1_ETYPE_CHOICE">ASN1_ETYPE_CHOICE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-IMPORTS:CAPS" title="ASN1_ETYPE_IMPORTS">ASN1_ETYPE_IMPORTS</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-NULL:CAPS" title="ASN1_ETYPE_NULL">ASN1_ETYPE_NULL</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-ENUMERATED:CAPS" title="ASN1_ETYPE_ENUMERATED">ASN1_ETYPE_ENUMERATED</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-GENERALSTRING:CAPS" title="ASN1_ETYPE_GENERALSTRING">ASN1_ETYPE_GENERALSTRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-NUMERIC-STRING:CAPS" title="ASN1_ETYPE_NUMERIC_STRING">ASN1_ETYPE_NUMERIC_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-IA5-STRING:CAPS" title="ASN1_ETYPE_IA5_STRING">ASN1_ETYPE_IA5_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-TELETEX-STRING:CAPS" title="ASN1_ETYPE_TELETEX_STRING">ASN1_ETYPE_TELETEX_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-PRINTABLE-STRING:CAPS" title="ASN1_ETYPE_PRINTABLE_STRING">ASN1_ETYPE_PRINTABLE_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-UNIVERSAL-STRING:CAPS" title="ASN1_ETYPE_UNIVERSAL_STRING">ASN1_ETYPE_UNIVERSAL_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-BMP-STRING:CAPS" title="ASN1_ETYPE_BMP_STRING">ASN1_ETYPE_BMP_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-UTF8-STRING:CAPS" title="ASN1_ETYPE_UTF8_STRING">ASN1_ETYPE_UTF8_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-VISIBLE-STRING:CAPS" title="ASN1_ETYPE_VISIBLE_STRING">ASN1_ETYPE_VISIBLE_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-UTC-TIME:CAPS" title="ASN1_ETYPE_UTC_TIME">ASN1_ETYPE_UTC_TIME</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ETYPE-GENERALIZED-TIME:CAPS" title="ASN1_ETYPE_GENERALIZED_TIME">ASN1_ETYPE_GENERALIZED_TIME</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-DELETE-FLAG-ZEROIZE:CAPS" title="ASN1_DELETE_FLAG_ZEROIZE">ASN1_DELETE_FLAG_ZEROIZE</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#asn1-data-node-st" title="asn1_data_node_st">asn1_data_node_st</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-MAX-ERROR-DESCRIPTION-SIZE:CAPS" title="ASN1_MAX_ERROR_DESCRIPTION_SIZE">ASN1_MAX_ERROR_DESCRIPTION_SIZE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-MAX-TAG-SIZE:CAPS" title="ASN1_MAX_TAG_SIZE">ASN1_MAX_TAG_SIZE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-MAX-LENGTH-SIZE:CAPS" title="ASN1_MAX_LENGTH_SIZE">ASN1_MAX_LENGTH_SIZE</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#asn1-retCode" title="asn1_retCode">asn1_retCode</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#node-asn-struct" title="node_asn_struct">node_asn_struct</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#node-asn" title="node_asn">node_asn</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TYPE:CAPS" title="ASN1_TYPE">ASN1_TYPE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-TYPE-EMPTY:CAPS" title="ASN1_TYPE_EMPTY">ASN1_TYPE_EMPTY</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#static-struct-asn" title="static_struct_asn">static_struct_asn</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-ARRAY-TYPE:CAPS" title="ASN1_ARRAY_TYPE">ASN1_ARRAY_TYPE</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#asn1-static-node-t" title="asn1_static_node_t">asn1_static_node_t</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#node-data-struct" title="node_data_struct">node_data_struct</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="libtasn1-libtasn1.html#ASN1-DATA-NODE:CAPS" title="ASN1_DATA_NODE">ASN1_DATA_NODE</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="libtasn1-libtasn1.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">
</pre>
</div>
<div class="refsect1">
<a name="libtasn1-libtasn1.description"></a><h2>Description</h2>
<p>
</p>
</div>
<div class="refsect1">
<a name="libtasn1-libtasn1.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="asn1-parser2tree"></a><h3>asn1_parser2tree ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_parser2tree (<em class="parameter"><code>const <span class="type">char</span> *file</code></em>,
                  <em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> *definitions</code></em>,
                  <em class="parameter"><code><span class="type">char</span> *error_desc</code></em>);</pre>
<p>Function used to start the parse algorithm.  Creates the structures
needed to manage the definitions included in <em class="parameter"><code>file</code></em>
 file.</p>
<div class="refsect3">
<a name="id-1.2.4.7.2.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>file</p></td>
<td class="parameter_description"><p>specify the path and the name of file that contains
ASN.1 declarations.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>definitions</p></td>
<td class="parameter_description"><p>return the pointer to the structure created from
"file" ASN.1 declarations.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error_desc</p></td>
<td class="parameter_description"><p>return the error description or an empty
string if success.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.2.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if the file has a correct syntax and every
identifier is known, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-EMPTY:CAPS" title="ASN1_ELEMENT_NOT_EMPTY"><code class="literal">ASN1_ELEMENT_NOT_EMPTY</code></a> if <em class="parameter"><code>definitions</code></em>
not
<code class="literal">NULL</code>, <a class="link" href="libtasn1-libtasn1.html#ASN1-FILE-NOT-FOUND:CAPS" title="ASN1_FILE_NOT_FOUND"><code class="literal">ASN1_FILE_NOT_FOUND</code></a> if an error occured while
opening <em class="parameter"><code>file</code></em>
, <a class="link" href="libtasn1-libtasn1.html#ASN1-SYNTAX-ERROR:CAPS" title="ASN1_SYNTAX_ERROR"><code class="literal">ASN1_SYNTAX_ERROR</code></a> if the syntax is not
correct, <a class="link" href="libtasn1-libtasn1.html#ASN1-IDENTIFIER-NOT-FOUND:CAPS" title="ASN1_IDENTIFIER_NOT_FOUND"><code class="literal">ASN1_IDENTIFIER_NOT_FOUND</code></a> if in the file there is an
identifier that is not defined, <a class="link" href="libtasn1-libtasn1.html#ASN1-NAME-TOO-LONG:CAPS" title="ASN1_NAME_TOO_LONG"><code class="literal">ASN1_NAME_TOO_LONG</code></a> if in the
file there is an identifier whith more than <a class="link" href="libtasn1-libtasn1.html#ASN1-MAX-NAME-SIZE:CAPS" title="ASN1_MAX_NAME_SIZE"><code class="literal">ASN1_MAX_NAME_SIZE</code></a>
characters.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-parser2array"></a><h3>asn1_parser2array ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_parser2array (<em class="parameter"><code>const <span class="type">char</span> *inputFileName</code></em>,
                   <em class="parameter"><code>const <span class="type">char</span> *outputFileName</code></em>,
                   <em class="parameter"><code>const <span class="type">char</span> *vectorName</code></em>,
                   <em class="parameter"><code><span class="type">char</span> *error_desc</code></em>);</pre>
<p>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 <em class="parameter"><code>inputFileName</code></em>
 file. If <em class="parameter"><code>inputFileName</code></em>
 is
"/aa/bb/xx.yy" and <em class="parameter"><code>outputFileName</code></em>
 is <code class="literal">NULL</code>, the file created is
"/aa/bb/xx_asn1_tab.c".  If <em class="parameter"><code>vectorName</code></em>
 is <code class="literal">NULL</code> the vector name
will be "xx_asn1_tab".</p>
<div class="refsect3">
<a name="id-1.2.4.7.3.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>inputFileName</p></td>
<td class="parameter_description"><p>specify the path and the name of file that
contains ASN.1 declarations.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>outputFileName</p></td>
<td class="parameter_description"><p>specify the path and the name of file that will
contain the C vector definition.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>vectorName</p></td>
<td class="parameter_description"><p>specify the name of the C vector.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error_desc</p></td>
<td class="parameter_description"><p>return the error description or an empty
string if success.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.3.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if the file has a correct syntax and every
identifier is known, <a class="link" href="libtasn1-libtasn1.html#ASN1-FILE-NOT-FOUND:CAPS" title="ASN1_FILE_NOT_FOUND"><code class="literal">ASN1_FILE_NOT_FOUND</code></a> if an error occured
while opening <em class="parameter"><code>inputFileName</code></em>
, <a class="link" href="libtasn1-libtasn1.html#ASN1-SYNTAX-ERROR:CAPS" title="ASN1_SYNTAX_ERROR"><code class="literal">ASN1_SYNTAX_ERROR</code></a> if the syntax is
not correct, <a class="link" href="libtasn1-libtasn1.html#ASN1-IDENTIFIER-NOT-FOUND:CAPS" title="ASN1_IDENTIFIER_NOT_FOUND"><code class="literal">ASN1_IDENTIFIER_NOT_FOUND</code></a> if in the file there is
an identifier that is not defined, <a class="link" href="libtasn1-libtasn1.html#ASN1-NAME-TOO-LONG:CAPS" title="ASN1_NAME_TOO_LONG"><code class="literal">ASN1_NAME_TOO_LONG</code></a> if in the
file there is an identifier whith more than <a class="link" href="libtasn1-libtasn1.html#ASN1-MAX-NAME-SIZE:CAPS" title="ASN1_MAX_NAME_SIZE"><code class="literal">ASN1_MAX_NAME_SIZE</code></a>
characters.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-array2tree"></a><h3>asn1_array2tree ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_array2tree (<em class="parameter"><code>const <a class="link" href="libtasn1-libtasn1.html#asn1-static-node" title="asn1_static_node"><span class="type">asn1_static_node</span></a> *array</code></em>,
                 <em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> *definitions</code></em>,
                 <em class="parameter"><code><span class="type">char</span> *errorDescription</code></em>);</pre>
<p>Creates the structures needed to manage the ASN.1 definitions.
<em class="parameter"><code>array</code></em>
 is a vector created by <a class="link" href="libtasn1-libtasn1.html#asn1-parser2array" title="asn1_parser2array ()"><code class="function">asn1_parser2array()</code></a>.</p>
<div class="refsect3">
<a name="id-1.2.4.7.4.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>array</p></td>
<td class="parameter_description"><p>specify the array that contains ASN.1 declarations</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>definitions</p></td>
<td class="parameter_description"><p>return the pointer to the structure created by
*ARRAY ASN.1 declarations</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>errorDescription</p></td>
<td class="parameter_description"><p>return the error description.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.4.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if structure was created correctly,
<a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-EMPTY:CAPS" title="ASN1_ELEMENT_NOT_EMPTY"><code class="literal">ASN1_ELEMENT_NOT_EMPTY</code></a> if *<em class="parameter"><code>definitions</code></em>
not NULL,
<a class="link" href="libtasn1-libtasn1.html#ASN1-IDENTIFIER-NOT-FOUND:CAPS" title="ASN1_IDENTIFIER_NOT_FOUND"><code class="literal">ASN1_IDENTIFIER_NOT_FOUND</code></a> if in the file there is an identifier
that is not defined (see <em class="parameter"><code>errorDescription</code></em>
for more information),
<a class="link" href="libtasn1-libtasn1.html#ASN1-ARRAY-ERROR:CAPS" title="ASN1_ARRAY_ERROR"><code class="literal">ASN1_ARRAY_ERROR</code></a> if the array pointed by <em class="parameter"><code>array</code></em>
is wrong.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-print-structure"></a><h3>asn1_print_structure ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
asn1_print_structure (<em class="parameter"><code><span class="type">FILE</span> *out</code></em>,
                      <em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> structure</code></em>,
                      <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
                      <em class="parameter"><code><span class="type">int</span> mode</code></em>);</pre>
<p>Prints on the <em class="parameter"><code>out</code></em>
 file descriptor the structure's tree starting
from the <em class="parameter"><code>name</code></em>
 element inside the structure <em class="parameter"><code>structure</code></em>
.</p>
<div class="refsect3">
<a name="id-1.2.4.7.5.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>out</p></td>
<td class="parameter_description"><p>pointer to the output file (e.g. stdout).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>structure</p></td>
<td class="parameter_description"><p>pointer to the structure that you want to visit.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>an element of the structure</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>mode</p></td>
<td class="parameter_description"><p>specify how much of the structure to print, can be
<a class="link" href="libtasn1-libtasn1.html#ASN1-PRINT-NAME:CAPS" title="ASN1_PRINT_NAME"><code class="literal">ASN1_PRINT_NAME</code></a>, <a class="link" href="libtasn1-libtasn1.html#ASN1-PRINT-NAME-TYPE:CAPS" title="ASN1_PRINT_NAME_TYPE"><code class="literal">ASN1_PRINT_NAME_TYPE</code></a>,
<a class="link" href="libtasn1-libtasn1.html#ASN1-PRINT-NAME-TYPE-VALUE:CAPS" title="ASN1_PRINT_NAME_TYPE_VALUE"><code class="literal">ASN1_PRINT_NAME_TYPE_VALUE</code></a>, or <a class="link" href="libtasn1-libtasn1.html#ASN1-PRINT-ALL:CAPS" title="ASN1_PRINT_ALL"><code class="literal">ASN1_PRINT_ALL</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-create-element"></a><h3>asn1_create_element ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_create_element (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> definitions</code></em>,
                     <em class="parameter"><code>const <span class="type">char</span> *source_name</code></em>,
                     <em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> *element</code></em>);</pre>
<p>Creates a structure of type <em class="parameter"><code>source_name</code></em>
.  Example using
 "pkix.asn":</p>
<p>rc = asn1_create_element(cert_def, "PKIX1.Certificate", certptr);</p>
<div class="refsect3">
<a name="id-1.2.4.7.6.6"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>definitions</p></td>
<td class="parameter_description"><p>pointer to the structure returned by "parser_asn1" function</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>source_name</p></td>
<td class="parameter_description"><p>the name of the type of the new structure (must be
inside p_structure).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>pointer to the structure created.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.6.7"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if creation OK, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a> if
<em class="parameter"><code>source_name</code></em>
is not known.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-delete-structure"></a><h3>asn1_delete_structure ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_delete_structure (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> *structure</code></em>);</pre>
<p>Deletes the structure *<em class="parameter"><code>structure</code></em>
.  At the end, *<em class="parameter"><code>structure</code></em>
 is set
to NULL.</p>
<div class="refsect3">
<a name="id-1.2.4.7.7.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>structure</p></td>
<td class="parameter_description"><p>pointer to the structure that you want to delete.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.7.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if successful, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a> if
*<em class="parameter"><code>structure</code></em>
was NULL.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-delete-structure2"></a><h3>asn1_delete_structure2 ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_delete_structure2 (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> *structure</code></em>,
                        <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
<p>Deletes the structure *<em class="parameter"><code>structure</code></em>
.  At the end, *<em class="parameter"><code>structure</code></em>
 is set
to NULL.</p>
<div class="refsect3">
<a name="id-1.2.4.7.8.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>structure</p></td>
<td class="parameter_description"><p>pointer to the structure that you want to delete.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>additional flags (see <code class="literal">ASN1_DELETE_FLAG</code>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.8.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if successful, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a> if
*<em class="parameter"><code>structure</code></em>
was NULL.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-delete-element"></a><h3>asn1_delete_element ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_delete_element (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> structure</code></em>,
                     <em class="parameter"><code>const <span class="type">char</span> *element_name</code></em>);</pre>
<p>Deletes the element named *<em class="parameter"><code>element_name</code></em>
 inside *<em class="parameter"><code>structure</code></em>
.</p>
<div class="refsect3">
<a name="id-1.2.4.7.9.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>structure</p></td>
<td class="parameter_description"><p>pointer to the structure that contains the element you
want to delete.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>element_name</p></td>
<td class="parameter_description"><p>element's name you want to delete.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.9.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if successful, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a> if
the <em class="parameter"><code>element_name</code></em>
was not found.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-write-value"></a><h3>asn1_write_value ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_write_value (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> node_root</code></em>,
                  <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
                  <em class="parameter"><code>const <span class="type">void</span> *ivalue</code></em>,
                  <em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
<p>Set the value of one element inside a structure.</p>
<p>If an element is OPTIONAL and you want to delete it, you must use
the value=NULL and len=0.  Using "pkix.asn":</p>
<p>result=asn1_write_value(cert, "tbsCertificate.issuerUniqueID",
NULL, 0);</p>
<p>Description for each type:</p>
<p>INTEGER: VALUE must contain a two's complement form integer.</p>
<p>           value[0]=0xFF ,               len=1 -&gt; integer=-1.
           value[0]=0xFF value[1]=0xFF , len=2 -&gt; integer=-1.
           value[0]=0x01 ,               len=1 -&gt; integer= 1.
           value[0]=0x00 value[1]=0x01 , len=2 -&gt; integer= 1.
           value="123"                 , len=0 -&gt; integer= 123.</p>
<p>ENUMERATED: As INTEGER (but only with not negative numbers).</p>
<p>BOOLEAN: VALUE must be the null terminated string "TRUE" or
  "FALSE" and LEN != 0.</p>
<p>           value="TRUE" , len=1 -&gt; boolean=TRUE.
           value="FALSE" , len=1 -&gt; boolean=FALSE.</p>
<p>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.</p>
<p>           value="1 2 840 10040 4 3" , len=1 -&gt; OID=dsa-with-sha.</p>
<p>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.</p>
<p>           value="9801011200Z" , len=1 -&gt; time=Jannuary 1st, 1998
           at 12h 00m Greenwich Mean Time</p>
<p>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</p>
<p>           value="2001010112001.12-0700" , len=1 -&gt; time=Jannuary
           1st, 2001 at 12h 00m 01.12s Pacific Daylight Time</p>
<p>OCTET STRING: VALUE contains the octet string and LEN is the
  number of octets.</p>
<p>           value="$\backslash$x01$\backslash$x02$\backslash$x03" ,
           len=3 -&gt; three bytes octet string</p>
<p>GeneralString: VALUE contains the generalstring and LEN is the
  number of octets.</p>
<p>           value="$\backslash$x01$\backslash$x02$\backslash$x03" ,
           len=3 -&gt; three bytes generalstring</p>
<p>BIT STRING: VALUE contains the bit string organized by bytes and
  LEN is the number of bits.</p>
<p>  value="$\backslash$xCF" , len=6 -&gt; bit string="110011" (six
  bits)</p>
<p>CHOICE: if NAME indicates a choice type, VALUE must specify one of
  the alternatives with a null terminated string. LEN != 0. Using
  "pkix.asn"\:</p>
<p>          result=asn1_write_value(cert,
          "certificate1.tbsCertificate.subject", "rdnSequence",
          1);</p>
<p>ANY: VALUE indicates the der encoding of a structure.  LEN != 0.</p>
<p>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.</p>
<p>  Using "pkix.asn"\:</p>
<p>  result=asn1_write_value(cert,
  "certificate1.tbsCertificate.subject.rdnSequence", "NEW", 1);</p>
<p>SET OF: the same as SEQUENCE OF.  Using "pkix.asn":</p>
<p>          result=asn1_write_value(cert,
          "tbsCertificate.subject.rdnSequence.?LAST", "NEW", 1);</p>
<div class="refsect3">
<a name="id-1.2.4.7.10.33"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>node_root</p></td>
<td class="parameter_description"><p>pointer to a structure</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of the element inside the structure that you want to set.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ivalue</p></td>
<td class="parameter_description"><p>vector used to specify the value to set. If len is &gt;0,
VALUE must be a two's complement form integer.  if len=0 *VALUE
must be a null terminated string with an integer value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>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</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.10.34"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if the value was set,
<a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a> if <em class="parameter"><code>name</code></em>
is not a valid element, and
<a class="link" href="libtasn1-libtasn1.html#ASN1-VALUE-NOT-VALID:CAPS" title="ASN1_VALUE_NOT_VALID"><code class="literal">ASN1_VALUE_NOT_VALID</code></a> if <em class="parameter"><code>ivalue</code></em>
has a wrong format.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-read-value"></a><h3>asn1_read_value ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_read_value (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> root</code></em>,
                 <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
                 <em class="parameter"><code><span class="type">void</span> *ivalue</code></em>,
                 <em class="parameter"><code><span class="type">int</span> *len</code></em>);</pre>
<p>Returns the value of one element inside a structure. 
If an element is OPTIONAL and this returns
<a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a>, 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.</p>
<p>Note that there can be valid values with length zero. In these case
this function will succeed and <em class="parameter"><code>len</code></em>
 will be zero.</p>
<p>INTEGER: VALUE will contain a two's complement form integer.</p>
<p>           integer=-1  -&gt; value[0]=0xFF , len=1.
           integer=1   -&gt; value[0]=0x01 , len=1.</p>
<p>ENUMERATED: As INTEGER (but only with not negative numbers).</p>
<p>BOOLEAN: VALUE will be the null terminated string "TRUE" or
  "FALSE" and LEN=5 or LEN=6.</p>
<p>OBJECT IDENTIFIER: VALUE will be a null terminated string with
  each number separated by a dot (i.e. "1.2.3.543.1").</p>
<p>                     LEN = strlen(VALUE)+1</p>
<p>UTCTime: VALUE will be a null terminated string in one of these
  formats: "YYMMDDhhmmss+hh'mm'" or "YYMMDDhhmmss-hh'mm'".
  LEN=strlen(VALUE)+1.</p>
<p>GeneralizedTime: VALUE will be a null terminated string in the
  same format used to set the value.</p>
<p>OCTET STRING: VALUE will contain the octet string and LEN will be
  the number of octets.</p>
<p>GeneralString: VALUE will contain the generalstring and LEN will
  be the number of octets.</p>
<p>BIT STRING: VALUE will contain the bit string organized by bytes
  and LEN will be the number of bits.</p>
<p>CHOICE: If NAME indicates a choice type, VALUE will specify the
  alternative selected.</p>
<p>ANY: If NAME indicates an any type, VALUE will indicate the DER
  encoding of the structure actually used.</p>
<div class="refsect3">
<a name="id-1.2.4.7.11.19"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>root</p></td>
<td class="parameter_description"><p>pointer to a structure.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of the element inside a structure that you want to read.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ivalue</p></td>
<td class="parameter_description"><p>vector that will contain the element's content, must be a
pointer to memory cells already allocated (may be <code class="literal">NULL</code>).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>number of bytes of *value: value[0]..value[len-1]. Initialy
holds the sizeof value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.11.20"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if value is returned,
<a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a> if <em class="parameter"><code>name</code></em>
is not a valid element,
<a class="link" href="libtasn1-libtasn1.html#ASN1-VALUE-NOT-FOUND:CAPS" title="ASN1_VALUE_NOT_FOUND"><code class="literal">ASN1_VALUE_NOT_FOUND</code></a> if there isn't any value for the element
selected, and <a class="link" href="libtasn1-libtasn1.html#ASN1-MEM-ERROR:CAPS" title="ASN1_MEM_ERROR"><code class="literal">ASN1_MEM_ERROR</code></a> if The value vector isn't big enough
to store the result, and in this case <em class="parameter"><code>len</code></em>
will contain the number of
bytes needed.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-read-value-type"></a><h3>asn1_read_value_type ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_read_value_type (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> root</code></em>,
                      <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
                      <em class="parameter"><code><span class="type">void</span> *ivalue</code></em>,
                      <em class="parameter"><code><span class="type">int</span> *len</code></em>,
                      <em class="parameter"><code>unsigned <span class="type">int</span> *etype</code></em>);</pre>
<p>Returns the value of one element inside a structure. 
If an element is OPTIONAL and this returns
<a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a>, 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.</p>
<p>Note that there can be valid values with length zero. In these case
this function will succeed and <em class="parameter"><code>len</code></em>
 will be zero.</p>
<p>INTEGER: VALUE will contain a two's complement form integer.</p>
<p>           integer=-1  -&gt; value[0]=0xFF , len=1.
           integer=1   -&gt; value[0]=0x01 , len=1.</p>
<p>ENUMERATED: As INTEGER (but only with not negative numbers).</p>
<p>BOOLEAN: VALUE will be the null terminated string "TRUE" or
  "FALSE" and LEN=5 or LEN=6.</p>
<p>OBJECT IDENTIFIER: VALUE will be a null terminated string with
  each number separated by a dot (i.e. "1.2.3.543.1").</p>
<p>                     LEN = strlen(VALUE)+1</p>
<p>UTCTime: VALUE will be a null terminated string in one of these
  formats: "YYMMDDhhmmss+hh'mm'" or "YYMMDDhhmmss-hh'mm'".
  LEN=strlen(VALUE)+1.</p>
<p>GeneralizedTime: VALUE will be a null terminated string in the
  same format used to set the value.</p>
<p>OCTET STRING: VALUE will contain the octet string and LEN will be
  the number of octets.</p>
<p>GeneralString: VALUE will contain the generalstring and LEN will
  be the number of octets.</p>
<p>BIT STRING: VALUE will contain the bit string organized by bytes
  and LEN will be the number of bits.</p>
<p>CHOICE: If NAME indicates a choice type, VALUE will specify the
  alternative selected.</p>
<p>ANY: If NAME indicates an any type, VALUE will indicate the DER
  encoding of the structure actually used.</p>
<div class="refsect3">
<a name="id-1.2.4.7.12.19"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>root</p></td>
<td class="parameter_description"><p>pointer to a structure.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of the element inside a structure that you want to read.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ivalue</p></td>
<td class="parameter_description"><p>vector that will contain the element's content, must be a
pointer to memory cells already allocated (may be <code class="literal">NULL</code>).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>number of bytes of *value: value[0]..value[len-1]. Initialy
holds the sizeof value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>etype</p></td>
<td class="parameter_description"><p>The type of the value read (ASN1_ETYPE)</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.12.20"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if value is returned,
<a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a> if <em class="parameter"><code>name</code></em>
is not a valid element,
<a class="link" href="libtasn1-libtasn1.html#ASN1-VALUE-NOT-FOUND:CAPS" title="ASN1_VALUE_NOT_FOUND"><code class="literal">ASN1_VALUE_NOT_FOUND</code></a> if there isn't any value for the element
selected, and <a class="link" href="libtasn1-libtasn1.html#ASN1-MEM-ERROR:CAPS" title="ASN1_MEM_ERROR"><code class="literal">ASN1_MEM_ERROR</code></a> if The value vector isn't big enough
to store the result, and in this case <em class="parameter"><code>len</code></em>
will contain the number of
bytes needed.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-read-node-value"></a><h3>asn1_read_node_value ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_read_node_value (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> node</code></em>,
                      <em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-data-node-st" title="asn1_data_node_st"><span class="type">asn1_data_node_st</span></a> *data</code></em>);</pre>
<p>Returns the value a data node inside a asn1_node structure.
The data returned should be handled as constant values.</p>
<div class="refsect3">
<a name="id-1.2.4.7.13.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>node</p></td>
<td class="parameter_description"><p>pointer to a node.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>a point to a asn1_data_node_st</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.13.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if the node exists.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-number-of-elements"></a><h3>asn1_number_of_elements ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_number_of_elements (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> element</code></em>,
                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
                         <em class="parameter"><code><span class="type">int</span> *num</code></em>);</pre>
<p>Counts the number of elements of a sub-structure called NAME with
names equal to "?1","?2", ...</p>
<div class="refsect3">
<a name="id-1.2.4.7.14.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>pointer to the root of an ASN1 structure.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of a sub-structure of ROOT.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>num</p></td>
<td class="parameter_description"><p>pointer to an integer where the result will be stored</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.14.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if successful, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a> if
<em class="parameter"><code>name</code></em>
is not known, <a class="link" href="libtasn1-libtasn1.html#ASN1-GENERIC-ERROR:CAPS" title="ASN1_GENERIC_ERROR"><code class="literal">ASN1_GENERIC_ERROR</code></a> if pointer <em class="parameter"><code>num</code></em>
is <code class="literal">NULL</code>.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-der-coding"></a><h3>asn1_der_coding ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_der_coding (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> element</code></em>,
                 <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
                 <em class="parameter"><code><span class="type">void</span> *ider</code></em>,
                 <em class="parameter"><code><span class="type">int</span> *len</code></em>,
                 <em class="parameter"><code><span class="type">char</span> *ErrorDescription</code></em>);</pre>
<p>Creates the DER encoding for the NAME structure (inside *POINTER
structure).</p>
<div class="refsect3">
<a name="id-1.2.4.7.15.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>pointer to an ASN1 element</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of the structure you want to encode (it must be
inside *POINTER).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ider</p></td>
<td class="parameter_description"><p>vector that will contain the DER encoding. DER must be a
pointer to memory cells already allocated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>number of bytes of *<em class="parameter"><code>ider</code></em>
: <em class="parameter"><code>ider</code></em>
[0]..<em class="parameter"><code>ider</code></em>
[len-1], Initialy
holds the sizeof of der vector.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ErrorDescription</p></td>
<td class="parameter_description"><p>return the error description or an empty
string if success.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.15.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if DER encoding OK, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a>
if <em class="parameter"><code>name</code></em>
is not a valid element, <a class="link" href="libtasn1-libtasn1.html#ASN1-VALUE-NOT-FOUND:CAPS" title="ASN1_VALUE_NOT_FOUND"><code class="literal">ASN1_VALUE_NOT_FOUND</code></a> if there
is an element without a value, <a class="link" href="libtasn1-libtasn1.html#ASN1-MEM-ERROR:CAPS" title="ASN1_MEM_ERROR"><code class="literal">ASN1_MEM_ERROR</code></a> if the <em class="parameter"><code>ider</code></em>
vector isn't big enough and in this case <em class="parameter"><code>len</code></em>
will contain the
length needed.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-der-decoding"></a><h3>asn1_der_decoding ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_der_decoding (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> *element</code></em>,
                   <em class="parameter"><code>const <span class="type">void</span> *ider</code></em>,
                   <em class="parameter"><code><span class="type">int</span> len</code></em>,
                   <em class="parameter"><code><span class="type">char</span> *errorDescription</code></em>);</pre>
<p>Fill the structure *<em class="parameter"><code>ELEMENT</code></em>
 with values of a DER encoding
string. The structure must just be created with function
<a class="link" href="libtasn1-libtasn1.html#asn1-create-element" title="asn1_create_element ()"><code class="function">asn1_create_element()</code></a>.  If an error occurs during the decoding
procedure, the *<em class="parameter"><code>ELEMENT</code></em>
 is deleted and set equal to
<code class="literal">NULL</code>.</p>
<div class="refsect3">
<a name="id-1.2.4.7.16.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>pointer to an ASN1 structure.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ider</p></td>
<td class="parameter_description"><p>vector that contains the DER encoding.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>errorDescription</p></td>
<td class="parameter_description"><p>null-terminated string contains details when an
error occurred.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.16.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if DER encoding OK, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a>
if <em class="parameter"><code>ELEMENT</code></em>
is <code class="literal">NULL</code>, and <a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-ERROR:CAPS" title="ASN1_TAG_ERROR"><code class="literal">ASN1_TAG_ERROR</code></a> or
<a class="link" href="libtasn1-libtasn1.html#ASN1-DER-ERROR:CAPS" title="ASN1_DER_ERROR"><code class="literal">ASN1_DER_ERROR</code></a> if the der encoding doesn't match the structure
name (*<em class="parameter"><code>ELEMENT</code></em>
deleted).</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-der-decoding-element"></a><h3>asn1_der_decoding_element ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_der_decoding_element (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> *structure</code></em>,
                           <em class="parameter"><code>const <span class="type">char</span> *elementName</code></em>,
                           <em class="parameter"><code>const <span class="type">void</span> *ider</code></em>,
                           <em class="parameter"><code><span class="type">int</span> len</code></em>,
                           <em class="parameter"><code><span class="type">char</span> *errorDescription</code></em>);</pre>
<p>Fill the element named <em class="parameter"><code>ELEMENTNAME</code></em>
 with values of a DER encoding
string.  The structure must just be created with function
<a class="link" href="libtasn1-libtasn1.html#asn1-create-element" title="asn1_create_element ()"><code class="function">asn1_create_element()</code></a>.  The DER vector must contain the encoding
string of the whole <em class="parameter"><code>STRUCTURE</code></em>
.  If an error occurs during the
decoding procedure, the *<em class="parameter"><code>STRUCTURE</code></em>
 is deleted and set equal to
<code class="literal">NULL</code>.</p>
<p>This function is deprecated and may just be an alias to asn1_der_decoding
in future versions. Use <a class="link" href="libtasn1-libtasn1.html#asn1-der-decoding" title="asn1_der_decoding ()"><code class="function">asn1_der_decoding()</code></a> instead.</p>
<div class="refsect3">
<a name="id-1.2.4.7.17.6"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>structure</p></td>
<td class="parameter_description"><p>pointer to an ASN1 structure</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>elementName</p></td>
<td class="parameter_description"><p>name of the element to fill</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ider</p></td>
<td class="parameter_description"><p>vector that contains the DER encoding of the whole structure.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>number of bytes of *der: der[0]..der[len-1]</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>errorDescription</p></td>
<td class="parameter_description"><p>null-terminated string contains details when an
error occurred.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.17.7"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if DER encoding OK, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a>
if ELEMENT is <code class="literal">NULL</code> or <em class="parameter"><code>elementName</code></em>
== NULL, and
<a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-ERROR:CAPS" title="ASN1_TAG_ERROR"><code class="literal">ASN1_TAG_ERROR</code></a> or <a class="link" href="libtasn1-libtasn1.html#ASN1-DER-ERROR:CAPS" title="ASN1_DER_ERROR"><code class="literal">ASN1_DER_ERROR</code></a> if the der encoding doesn't
match the structure <em class="parameter"><code>structure</code></em>
(*ELEMENT deleted).</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-der-decoding-startEnd"></a><h3>asn1_der_decoding_startEnd ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_der_decoding_startEnd (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> element</code></em>,
                            <em class="parameter"><code>const <span class="type">void</span> *ider</code></em>,
                            <em class="parameter"><code><span class="type">int</span> len</code></em>,
                            <em class="parameter"><code>const <span class="type">char</span> *name_element</code></em>,
                            <em class="parameter"><code><span class="type">int</span> *start</code></em>,
                            <em class="parameter"><code><span class="type">int</span> *end</code></em>);</pre>
<p>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 <a class="link" href="libtasn1-libtasn1.html#asn1-der-decoding" title="asn1_der_decoding ()"><code class="function">asn1_der_decoding()</code></a> to fill a structure, it may
happen that you want to find the piece of string concerning an
element of the structure.</p>
<p>One example is the sequence "tbsCertificate" inside an X509
certificate.</p>
<div class="refsect3">
<a name="id-1.2.4.7.18.6"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>pointer to an ASN1 element</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ider</p></td>
<td class="parameter_description"><p>vector that contains the DER encoding.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name_element</p></td>
<td class="parameter_description"><p>an element of NAME structure.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start</p></td>
<td class="parameter_description"><p>the position of the first byte of NAME_ELEMENT decoding
(<em class="parameter"><code>ider</code></em>
[*start])</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>end</p></td>
<td class="parameter_description"><p>the position of the last byte of NAME_ELEMENT decoding
(<em class="parameter"><code>ider</code></em>
[*end])</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.18.7"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if DER encoding OK, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a>
if ELEMENT is <a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><code class="literal">asn1_node</code></a> EMPTY or <em class="parameter"><code>name_element</code></em>
is not a valid
element, <a class="link" href="libtasn1-libtasn1.html#ASN1-TAG-ERROR:CAPS" title="ASN1_TAG_ERROR"><code class="literal">ASN1_TAG_ERROR</code></a> or <a class="link" href="libtasn1-libtasn1.html#ASN1-DER-ERROR:CAPS" title="ASN1_DER_ERROR"><code class="literal">ASN1_DER_ERROR</code></a> if the der encoding
doesn't match the structure ELEMENT.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-expand-any-defined-by"></a><h3>asn1_expand_any_defined_by ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_expand_any_defined_by (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> definitions</code></em>,
                            <em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> *element</code></em>);</pre>
<p>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.</p>
<div class="refsect3">
<a name="id-1.2.4.7.19.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>definitions</p></td>
<td class="parameter_description"><p>ASN1 definitions</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>pointer to an ASN1 structure</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.19.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if Substitution OK, <a class="link" href="libtasn1-libtasn1.html#ASN1-ERROR-TYPE-ANY:CAPS" title="ASN1_ERROR_TYPE_ANY"><code class="literal">ASN1_ERROR_TYPE_ANY</code></a> if
some "ANY DEFINED BY" element couldn't be expanded due to a
problem in OBJECT_ID -&gt; TYPE association, or other error codes
depending on DER decoding.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-expand-octet-string"></a><h3>asn1_expand_octet_string ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_expand_octet_string (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> definitions</code></em>,
                          <em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> *element</code></em>,
                          <em class="parameter"><code>const <span class="type">char</span> *octetName</code></em>,
                          <em class="parameter"><code>const <span class="type">char</span> *objectName</code></em>);</pre>
<p>Expands an "OCTET STRING" element of a structure created from a DER
decoding process (the <a class="link" href="libtasn1-libtasn1.html#asn1-der-decoding" title="asn1_der_decoding ()"><code class="function">asn1_der_decoding()</code></a> function).  The type used
for expansion is the first one following the definition of the
actual value of the OBJECT IDENTIFIER indicated by OBJECTNAME.</p>
<div class="refsect3">
<a name="id-1.2.4.7.20.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>definitions</p></td>
<td class="parameter_description"><p>ASN1 definitions</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>pointer to an ASN1 structure</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>octetName</p></td>
<td class="parameter_description"><p>name of the OCTECT STRING field to expand.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>objectName</p></td>
<td class="parameter_description"><p>name of the OBJECT IDENTIFIER field to use to define
the type for expansion.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.20.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if substitution OK, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a>
if <em class="parameter"><code>objectName</code></em>
or <em class="parameter"><code>octetName</code></em>
are not correct,
<a class="link" href="libtasn1-libtasn1.html#ASN1-VALUE-NOT-VALID:CAPS" title="ASN1_VALUE_NOT_VALID"><code class="literal">ASN1_VALUE_NOT_VALID</code></a> if it wasn't possible to find the type to
use for expansion, or other errors depending on DER decoding.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-read-tag"></a><h3>asn1_read_tag ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_read_tag (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> root</code></em>,
               <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
               <em class="parameter"><code><span class="type">int</span> *tagValue</code></em>,
               <em class="parameter"><code><span class="type">int</span> *classValue</code></em>);</pre>
<p>Returns the TAG and the CLASS of one element inside a structure.
CLASS can have one of these constants: <a class="link" href="libtasn1-libtasn1.html#ASN1-CLASS-APPLICATION:CAPS" title="ASN1_CLASS_APPLICATION"><code class="literal">ASN1_CLASS_APPLICATION</code></a>,
<a class="link" href="libtasn1-libtasn1.html#ASN1-CLASS-UNIVERSAL:CAPS" title="ASN1_CLASS_UNIVERSAL"><code class="literal">ASN1_CLASS_UNIVERSAL</code></a>, <a class="link" href="libtasn1-libtasn1.html#ASN1-CLASS-PRIVATE:CAPS" title="ASN1_CLASS_PRIVATE"><code class="literal">ASN1_CLASS_PRIVATE</code></a> or
<a class="link" href="libtasn1-libtasn1.html#ASN1-CLASS-CONTEXT-SPECIFIC:CAPS" title="ASN1_CLASS_CONTEXT_SPECIFIC"><code class="literal">ASN1_CLASS_CONTEXT_SPECIFIC</code></a>.</p>
<div class="refsect3">
<a name="id-1.2.4.7.21.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>root</p></td>
<td class="parameter_description"><p>pointer to a structure</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of the element inside a structure.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>tagValue</p></td>
<td class="parameter_description"><p>variable that will contain the TAG value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>classValue</p></td>
<td class="parameter_description"><p>variable that will specify the TAG type.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.21.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if successful, <a class="link" href="libtasn1-libtasn1.html#ASN1-ELEMENT-NOT-FOUND:CAPS" title="ASN1_ELEMENT_NOT_FOUND"><code class="literal">ASN1_ELEMENT_NOT_FOUND</code></a> if
<em class="parameter"><code>name</code></em>
is not a valid element.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-find-structure-from-oid"></a><h3>asn1_find_structure_from_oid ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
asn1_find_structure_from_oid (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> definitions</code></em>,
                              <em class="parameter"><code>const <span class="type">char</span> *oidValue</code></em>);</pre>
<p>Search the structure that is defined just after an OID definition.</p>
<div class="refsect3">
<a name="id-1.2.4.7.22.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>definitions</p></td>
<td class="parameter_description"><p>ASN1 definitions</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>oidValue</p></td>
<td class="parameter_description"><p>value of the OID to search (e.g. "1.2.3.4").</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.22.6"></a><h4>Returns</h4>
<p> <code class="literal">NULL</code> when <em class="parameter"><code>oidValue</code></em>
not found, otherwise the pointer to a
constant string that contains the element name defined just after
the OID.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-check-version"></a><h3>asn1_check_version ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
asn1_check_version (<em class="parameter"><code>const <span class="type">char</span> *req_version</code></em>);</pre>
<p>Check that the version of the library is at minimum the
requested one and return the version string; return <code class="literal">NULL</code> if the
condition is not satisfied.  If a <code class="literal">NULL</code> is passed to this function,
no check is done, but the version string is simply returned.</p>
<p>See <a class="link" href="libtasn1-libtasn1.html#ASN1-VERSION:CAPS" title="ASN1_VERSION"><code class="literal">ASN1_VERSION</code></a> for a suitable <em class="parameter"><code>req_version</code></em>
 string.</p>
<div class="refsect3">
<a name="id-1.2.4.7.23.6"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>req_version</p></td>
<td class="parameter_description"><p>Required version number, or <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.23.7"></a><h4>Returns</h4>
<p> Version string of run-time library, or <code class="literal">NULL</code> if the
run-time library does not meet the required version number.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-strerror"></a><h3>asn1_strerror ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
asn1_strerror (<em class="parameter"><code><span class="type">int</span> error</code></em>);</pre>
<p>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.</p>
<div class="refsect3">
<a name="id-1.2.4.7.24.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>is an error returned by a libtasn1 function.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.24.6"></a><h4>Returns</h4>
<p> Pointer to static zero-terminated string describing error
code.</p>
<p></p>
</div>
<p class="since">Since 1.6</p>
</div>
<hr>
<div class="refsect2">
<a name="asn1-perror"></a><h3>asn1_perror ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
asn1_perror (<em class="parameter"><code><span class="type">int</span> error</code></em>);</pre>
<p>Prints a string to stderr with a description of an error.  This
function is like <code class="function">perror()</code>.  The only difference is that it accepts
an error returned by a libtasn1 function.</p>
<div class="refsect3">
<a name="id-1.2.4.7.25.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>is an error returned by a libtasn1 function.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since 1.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-MAX-TL-SIZE:CAPS"></a><h3>ASN1_MAX_TL_SIZE</h3>
<pre class="programlisting">#define ASN1_MAX_TL_SIZE (ASN1_MAX_TAG_SIZE+ASN1_MAX_LENGTH_SIZE)
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="asn1-get-length-der"></a><h3>asn1_get_length_der ()</h3>
<pre class="programlisting"><span class="returnvalue">long</span>
asn1_get_length_der (<em class="parameter"><code>const unsigned <span class="type">char</span> *der</code></em>,
                     <em class="parameter"><code><span class="type">int</span> der_len</code></em>,
                     <em class="parameter"><code><span class="type">int</span> *len</code></em>);</pre>
<p>Extract a length field from DER data.</p>
<div class="refsect3">
<a name="id-1.2.4.7.27.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>der</p></td>
<td class="parameter_description"><p>DER data to decode.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der_len</p></td>
<td class="parameter_description"><p>Length of DER data to decode.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>Output variable containing the length of the DER length field.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.27.6"></a><h4>Returns</h4>
<p> 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 <em class="parameter"><code>len</code></em>
would exceed <em class="parameter"><code>der_len</code></em>
.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-get-length-ber"></a><h3>asn1_get_length_ber ()</h3>
<pre class="programlisting"><span class="returnvalue">long</span>
asn1_get_length_ber (<em class="parameter"><code>const unsigned <span class="type">char</span> *ber</code></em>,
                     <em class="parameter"><code><span class="type">int</span> ber_len</code></em>,
                     <em class="parameter"><code><span class="type">int</span> *len</code></em>);</pre>
<p>Extract a length field from BER data.  The difference to
<a class="link" href="libtasn1-libtasn1.html#asn1-get-length-der" title="asn1_get_length_der ()"><code class="function">asn1_get_length_der()</code></a> is that this function will return a length
even if the value has indefinite encoding.</p>
<div class="refsect3">
<a name="id-1.2.4.7.28.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>ber</p></td>
<td class="parameter_description"><p>BER data to decode.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ber_len</p></td>
<td class="parameter_description"><p>Length of BER data to decode.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>Output variable containing the length of the BER length field.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.28.6"></a><h4>Returns</h4>
<p> Return the decoded length value, or negative value when
the value was too big.</p>
<p></p>
</div>
<p class="since">Since 2.0</p>
</div>
<hr>
<div class="refsect2">
<a name="asn1-length-der"></a><h3>asn1_length_der ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
asn1_length_der (<em class="parameter"><code>unsigned long <span class="type">int</span> len</code></em>,
                 <em class="parameter"><code>unsigned <span class="type">char</span> *der</code></em>,
                 <em class="parameter"><code><span class="type">int</span> *der_len</code></em>);</pre>
<p>Creates the DER encoding of the provided length value.
The <em class="parameter"><code>der</code></em>
 buffer must have enough room for the output. The maximum
length this function will encode is <a class="link" href="libtasn1-libtasn1.html#ASN1-MAX-LENGTH-SIZE:CAPS" title="ASN1_MAX_LENGTH_SIZE"><code class="literal">ASN1_MAX_LENGTH_SIZE</code></a>.</p>
<p>To know the size of the DER encoding use a <code class="literal">NULL</code> value for <em class="parameter"><code>der</code></em>
.</p>
<div class="refsect3">
<a name="id-1.2.4.7.29.6"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>value to convert.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der</p></td>
<td class="parameter_description"><p>buffer to hold the returned encoding (may be <code class="literal">NULL</code>).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der_len</p></td>
<td class="parameter_description"><p>number of meaningful bytes of ANS (der[0]..der[der_len-1]).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-decode-simple-der"></a><h3>asn1_decode_simple_der ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_decode_simple_der (<em class="parameter"><code>unsigned <span class="type">int</span> etype</code></em>,
                        <em class="parameter"><code>const unsigned <span class="type">char</span> *der</code></em>,
                        <em class="parameter"><code>unsigned <span class="type">int</span> der_len</code></em>,
                        <em class="parameter"><code>const unsigned <span class="type">char</span> **str</code></em>,
                        <em class="parameter"><code>unsigned <span class="type">int</span> *str_len</code></em>);</pre>
<p>Decodes a simple DER encoded type (e.g. a string, which is not constructed).
The output is a pointer inside the <em class="parameter"><code>der</code></em>
.</p>
<div class="refsect3">
<a name="id-1.2.4.7.30.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>etype</p></td>
<td class="parameter_description"><p>The type of the string to be encoded (ASN1_ETYPE_)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der</p></td>
<td class="parameter_description"><p>the encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der_len</p></td>
<td class="parameter_description"><p>the bytes of the encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a pointer to the data</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str_len</p></td>
<td class="parameter_description"><p>the length of the data</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.30.6"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if successful or an error value.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-encode-simple-der"></a><h3>asn1_encode_simple_der ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_encode_simple_der (<em class="parameter"><code>unsigned <span class="type">int</span> etype</code></em>,
                        <em class="parameter"><code>const unsigned <span class="type">char</span> *str</code></em>,
                        <em class="parameter"><code>unsigned <span class="type">int</span> str_len</code></em>,
                        <em class="parameter"><code>unsigned <span class="type">char</span> *tl</code></em>,
                        <em class="parameter"><code>unsigned <span class="type">int</span> *tl_len</code></em>);</pre>
<p>Creates the DER encoding for various simple ASN.1 types like strings etc.
It stores the tag and length in <em class="parameter"><code>tl</code></em>
, which should have space for at least
<a class="link" href="libtasn1-libtasn1.html#ASN1-MAX-TL-SIZE:CAPS" title="ASN1_MAX_TL_SIZE"><code class="literal">ASN1_MAX_TL_SIZE</code></a> bytes. Initially <em class="parameter"><code>tl_len</code></em>
 should contain the size of <em class="parameter"><code>tl</code></em>
.</p>
<p>The complete DER encoding should consist of the value in <em class="parameter"><code>tl</code></em>
 appended
with the provided <em class="parameter"><code>str</code></em>
.</p>
<div class="refsect3">
<a name="id-1.2.4.7.31.6"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>etype</p></td>
<td class="parameter_description"><p>The type of the string to be encoded (ASN1_ETYPE_)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>the string data.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str_len</p></td>
<td class="parameter_description"><p>the string length</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>tl</p></td>
<td class="parameter_description"><p>the encoded tag and length</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>tl_len</p></td>
<td class="parameter_description"><p>the bytes of the <em class="parameter"><code>tl</code></em>
field</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.31.7"></a><h4>Returns</h4>
<p> <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> if successful or an error value.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-find-node"></a><h3>asn1_find_node ()</h3>
<pre class="programlisting"><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="returnvalue">asn1_node</span></a>
asn1_find_node (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> pointer</code></em>,
                <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
<p>Searches for an element called <em class="parameter"><code>name</code></em>
 starting from <em class="parameter"><code>pointer</code></em>
.  The
name is composed by differents identifiers separated by dots.  When
*<em class="parameter"><code>pointer</code></em>
 has a name, the first identifier must be the name of
*<em class="parameter"><code>pointer</code></em>
, otherwise it must be the name of one child of *<em class="parameter"><code>pointer</code></em>
.</p>
<div class="refsect3">
<a name="id-1.2.4.7.32.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pointer</p></td>
<td class="parameter_description"><p>NODE_ASN element pointer.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>null terminated string with the element's name to find.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.32.6"></a><h4>Returns</h4>
<p> the search result, or <code class="literal">NULL</code> if not found.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-copy-node"></a><h3>asn1_copy_node ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_copy_node (<em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> dst</code></em>,
                <em class="parameter"><code>const <span class="type">char</span> *dst_name</code></em>,
                <em class="parameter"><code><a class="link" href="libtasn1-libtasn1.html#asn1-node" title="asn1_node"><span class="type">asn1_node</span></a> src</code></em>,
                <em class="parameter"><code>const <span class="type">char</span> *src_name</code></em>);</pre>
<p>Create a deep copy of a asn1_node variable.</p>
<div class="refsect3">
<a name="id-1.2.4.7.33.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>dst</p></td>
<td class="parameter_description"><p>Destination asn1_node node.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dst_name</p></td>
<td class="parameter_description"><p>Field name in destination node.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src</p></td>
<td class="parameter_description"><p>Source asn1_node node.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src_name</p></td>
<td class="parameter_description"><p>Field name in source node.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.33.6"></a><h4>Returns</h4>
<p> Return <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> on success.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-get-tag-der"></a><h3>asn1_get_tag_der ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_get_tag_der (<em class="parameter"><code>const unsigned <span class="type">char</span> *der</code></em>,
                  <em class="parameter"><code><span class="type">int</span> der_len</code></em>,
                  <em class="parameter"><code>unsigned <span class="type">char</span> *cls</code></em>,
                  <em class="parameter"><code><span class="type">int</span> *len</code></em>,
                  <em class="parameter"><code>unsigned <span class="type">long</span> *tag</code></em>);</pre>
<p>Decode the class and TAG from DER code.</p>
<div class="refsect3">
<a name="id-1.2.4.7.34.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>der</p></td>
<td class="parameter_description"><p>DER data to decode.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der_len</p></td>
<td class="parameter_description"><p>Length of DER data to decode.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cls</p></td>
<td class="parameter_description"><p>Output variable containing decoded class.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>Output variable containing the length of the DER TAG data.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>tag</p></td>
<td class="parameter_description"><p>Output variable containing the decoded tag.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.34.6"></a><h4>Returns</h4>
<p> Returns <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> on success, or an error.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-octet-der"></a><h3>asn1_octet_der ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
asn1_octet_der (<em class="parameter"><code>const unsigned <span class="type">char</span> *str</code></em>,
                <em class="parameter"><code><span class="type">int</span> str_len</code></em>,
                <em class="parameter"><code>unsigned <span class="type">char</span> *der</code></em>,
                <em class="parameter"><code><span class="type">int</span> *der_len</code></em>);</pre>
<p>Creates a length-value DER encoding for the input data.
The DER encoding of the input data will be placed in the <em class="parameter"><code>der</code></em>
 variable.</p>
<p>Note that the OCTET STRING tag is not included in the output.</p>
<p>This function does not return any value because it is expected
that <em class="parameter"><code>der_len</code></em>
 will contain enough bytes to store the string
plus the DER encoding. The DER encoding size can be obtained using
<a class="link" href="libtasn1-libtasn1.html#asn1-length-der" title="asn1_length_der ()"><code class="function">asn1_length_der()</code></a>.</p>
<div class="refsect3">
<a name="id-1.2.4.7.35.7"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>the input data.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str_len</p></td>
<td class="parameter_description"><p>STR length (str[0]..str[*str_len-1]).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der</p></td>
<td class="parameter_description"><p>encoded string returned.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der_len</p></td>
<td class="parameter_description"><p>number of meaningful bytes of DER (der[0]..der[der_len-1]).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-get-octet-der"></a><h3>asn1_get_octet_der ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_get_octet_der (<em class="parameter"><code>const unsigned <span class="type">char</span> *der</code></em>,
                    <em class="parameter"><code><span class="type">int</span> der_len</code></em>,
                    <em class="parameter"><code><span class="type">int</span> *ret_len</code></em>,
                    <em class="parameter"><code>unsigned <span class="type">char</span> *str</code></em>,
                    <em class="parameter"><code><span class="type">int</span> str_size</code></em>,
                    <em class="parameter"><code><span class="type">int</span> *str_len</code></em>);</pre>
<p>Extract an OCTET SEQUENCE from DER data.</p>
<div class="refsect3">
<a name="id-1.2.4.7.36.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>der</p></td>
<td class="parameter_description"><p>DER data to decode containing the OCTET SEQUENCE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der_len</p></td>
<td class="parameter_description"><p>Length of DER data to decode.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ret_len</p></td>
<td class="parameter_description"><p>Output variable containing the length of the DER data.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>Pre-allocated output buffer to put decoded OCTET SEQUENCE in.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str_size</p></td>
<td class="parameter_description"><p>Length of pre-allocated output buffer.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str_len</p></td>
<td class="parameter_description"><p>Output variable containing the length of the OCTET SEQUENCE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.36.6"></a><h4>Returns</h4>
<p> Returns <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> on success, or an error.</p>
<p></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-bit-der"></a><h3>asn1_bit_der ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
asn1_bit_der (<em class="parameter"><code>const unsigned <span class="type">char</span> *str</code></em>,
              <em class="parameter"><code><span class="type">int</span> bit_len</code></em>,
              <em class="parameter"><code>unsigned <span class="type">char</span> *der</code></em>,
              <em class="parameter"><code><span class="type">int</span> *der_len</code></em>);</pre>
<p>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 <em class="parameter"><code>der</code></em>
.</p>
<p>Note that the BIT STRING tag is not included in the output.</p>
<p>This function does not return any value because it is expected
that <em class="parameter"><code>der_len</code></em>
 will contain enough bytes to store the string
plus the DER encoding. The DER encoding size can be obtained using
<a class="link" href="libtasn1-libtasn1.html#asn1-length-der" title="asn1_length_der ()"><code class="function">asn1_length_der()</code></a>.</p>
<div class="refsect3">
<a name="id-1.2.4.7.37.7"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>BIT string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>bit_len</p></td>
<td class="parameter_description"><p>number of meaningful bits in STR.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der</p></td>
<td class="parameter_description"><p>string returned.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der_len</p></td>
<td class="parameter_description"><p>number of meaningful bytes of DER
(der[0]..der[ans_len-1]).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="asn1-get-bit-der"></a><h3>asn1_get_bit_der ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
asn1_get_bit_der (<em class="parameter"><code>const unsigned <span class="type">char</span> *der</code></em>,
                  <em class="parameter"><code><span class="type">int</span> der_len</code></em>,
                  <em class="parameter"><code><span class="type">int</span> *ret_len</code></em>,
                  <em class="parameter"><code>unsigned <span class="type">char</span> *str</code></em>,
                  <em class="parameter"><code><span class="type">int</span> str_size</code></em>,
                  <em class="parameter"><code><span class="type">int</span> *bit_len</code></em>);</pre>
<p>Extract a BIT SEQUENCE from DER data.</p>
<div class="refsect3">
<a name="id-1.2.4.7.38.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>der</p></td>
<td class="parameter_description"><p>DER data to decode containing the BIT SEQUENCE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>der_len</p></td>
<td class="parameter_description"><p>Length of DER data to decode.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ret_len</p></td>
<td class="parameter_description"><p>Output variable containing the length of the DER data.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>Pre-allocated output buffer to put decoded BIT SEQUENCE in.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str_size</p></td>
<td class="parameter_description"><p>Length of pre-allocated output buffer.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>bit_len</p></td>
<td class="parameter_description"><p>Output variable containing the size of the BIT SEQUENCE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.4.7.38.6"></a><h4>Returns</h4>
<p> Return <a class="link" href="libtasn1-libtasn1.html#ASN1-SUCCESS:CAPS" title="ASN1_SUCCESS"><code class="literal">ASN1_SUCCESS</code></a> on success, or an error.</p>
<p></p>
</div>
</div>
</div>
<div class="refsect1">
<a name="libtasn1-libtasn1.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="ASN1-API:CAPS"></a><h3>ASN1_API</h3>
<pre class="programlisting">#define ASN1_API __attribute__((__visibility__("default")))
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-VERSION:CAPS"></a><h3>ASN1_VERSION</h3>
<pre class="programlisting">#define ASN1_VERSION "3.4"
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-SUCCESS:CAPS"></a><h3>ASN1_SUCCESS</h3>
<pre class="programlisting">#define ASN1_SUCCESS			0
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-FILE-NOT-FOUND:CAPS"></a><h3>ASN1_FILE_NOT_FOUND</h3>
<pre class="programlisting">#define ASN1_FILE_NOT_FOUND		1
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ELEMENT-NOT-FOUND:CAPS"></a><h3>ASN1_ELEMENT_NOT_FOUND</h3>
<pre class="programlisting">#define ASN1_ELEMENT_NOT_FOUND		2
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-IDENTIFIER-NOT-FOUND:CAPS"></a><h3>ASN1_IDENTIFIER_NOT_FOUND</h3>
<pre class="programlisting">#define ASN1_IDENTIFIER_NOT_FOUND 3
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-DER-ERROR:CAPS"></a><h3>ASN1_DER_ERROR</h3>
<pre class="programlisting">#define ASN1_DER_ERROR			4
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-VALUE-NOT-FOUND:CAPS"></a><h3>ASN1_VALUE_NOT_FOUND</h3>
<pre class="programlisting">#define ASN1_VALUE_NOT_FOUND		5
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-GENERIC-ERROR:CAPS"></a><h3>ASN1_GENERIC_ERROR</h3>
<pre class="programlisting">#define ASN1_GENERIC_ERROR		6
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-VALUE-NOT-VALID:CAPS"></a><h3>ASN1_VALUE_NOT_VALID</h3>
<pre class="programlisting">#define ASN1_VALUE_NOT_VALID		7
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-ERROR:CAPS"></a><h3>ASN1_TAG_ERROR</h3>
<pre class="programlisting">#define ASN1_TAG_ERROR			8
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-IMPLICIT:CAPS"></a><h3>ASN1_TAG_IMPLICIT</h3>
<pre class="programlisting">#define ASN1_TAG_IMPLICIT		9
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ERROR-TYPE-ANY:CAPS"></a><h3>ASN1_ERROR_TYPE_ANY</h3>
<pre class="programlisting">#define ASN1_ERROR_TYPE_ANY		10
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-SYNTAX-ERROR:CAPS"></a><h3>ASN1_SYNTAX_ERROR</h3>
<pre class="programlisting">#define ASN1_SYNTAX_ERROR		11
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-MEM-ERROR:CAPS"></a><h3>ASN1_MEM_ERROR</h3>
<pre class="programlisting">#define ASN1_MEM_ERROR			12
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-MEM-ALLOC-ERROR:CAPS"></a><h3>ASN1_MEM_ALLOC_ERROR</h3>
<pre class="programlisting">#define ASN1_MEM_ALLOC_ERROR		13
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-DER-OVERFLOW:CAPS"></a><h3>ASN1_DER_OVERFLOW</h3>
<pre class="programlisting">#define ASN1_DER_OVERFLOW		14
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-NAME-TOO-LONG:CAPS"></a><h3>ASN1_NAME_TOO_LONG</h3>
<pre class="programlisting">#define ASN1_NAME_TOO_LONG		15
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ARRAY-ERROR:CAPS"></a><h3>ASN1_ARRAY_ERROR</h3>
<pre class="programlisting">#define ASN1_ARRAY_ERROR		16
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ELEMENT-NOT-EMPTY:CAPS"></a><h3>ASN1_ELEMENT_NOT_EMPTY</h3>
<pre class="programlisting">#define ASN1_ELEMENT_NOT_EMPTY		17
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-PRINT-NAME:CAPS"></a><h3>ASN1_PRINT_NAME</h3>
<pre class="programlisting">#define ASN1_PRINT_NAME			1
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-PRINT-NAME-TYPE:CAPS"></a><h3>ASN1_PRINT_NAME_TYPE</h3>
<pre class="programlisting">#define ASN1_PRINT_NAME_TYPE		2
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-PRINT-NAME-TYPE-VALUE:CAPS"></a><h3>ASN1_PRINT_NAME_TYPE_VALUE</h3>
<pre class="programlisting">#define ASN1_PRINT_NAME_TYPE_VALUE 3
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-PRINT-ALL:CAPS"></a><h3>ASN1_PRINT_ALL</h3>
<pre class="programlisting">#define ASN1_PRINT_ALL			4
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-CLASS-UNIVERSAL:CAPS"></a><h3>ASN1_CLASS_UNIVERSAL</h3>
<pre class="programlisting">#define ASN1_CLASS_UNIVERSAL		0x00 /* old: 1 */
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-CLASS-APPLICATION:CAPS"></a><h3>ASN1_CLASS_APPLICATION</h3>
<pre class="programlisting">#define ASN1_CLASS_APPLICATION		0x40 /* old: 2 */
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-CLASS-CONTEXT-SPECIFIC:CAPS"></a><h3>ASN1_CLASS_CONTEXT_SPECIFIC</h3>
<pre class="programlisting">#define ASN1_CLASS_CONTEXT_SPECIFIC 0x80 /* old: 3 */
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-CLASS-PRIVATE:CAPS"></a><h3>ASN1_CLASS_PRIVATE</h3>
<pre class="programlisting">#define ASN1_CLASS_PRIVATE		0xC0 /* old: 4 */
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-CLASS-STRUCTURED:CAPS"></a><h3>ASN1_CLASS_STRUCTURED</h3>
<pre class="programlisting">#define ASN1_CLASS_STRUCTURED		0x20
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-BOOLEAN:CAPS"></a><h3>ASN1_TAG_BOOLEAN</h3>
<pre class="programlisting">#define ASN1_TAG_BOOLEAN		0x01
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-INTEGER:CAPS"></a><h3>ASN1_TAG_INTEGER</h3>
<pre class="programlisting">#define ASN1_TAG_INTEGER		0x02
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-SEQUENCE:CAPS"></a><h3>ASN1_TAG_SEQUENCE</h3>
<pre class="programlisting">#define ASN1_TAG_SEQUENCE		0x10
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-SET:CAPS"></a><h3>ASN1_TAG_SET</h3>
<pre class="programlisting">#define ASN1_TAG_SET			0x11
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-OCTET-STRING:CAPS"></a><h3>ASN1_TAG_OCTET_STRING</h3>
<pre class="programlisting">#define ASN1_TAG_OCTET_STRING		0x04
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-BIT-STRING:CAPS"></a><h3>ASN1_TAG_BIT_STRING</h3>
<pre class="programlisting">#define ASN1_TAG_BIT_STRING		0x03
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-UTCTime"></a><h3>ASN1_TAG_UTCTime</h3>
<pre class="programlisting">#define ASN1_TAG_UTCTime		0x17
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-GENERALIZEDTime"></a><h3>ASN1_TAG_GENERALIZEDTime</h3>
<pre class="programlisting">#define ASN1_TAG_GENERALIZEDTime 0x18
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-OBJECT-ID:CAPS"></a><h3>ASN1_TAG_OBJECT_ID</h3>
<pre class="programlisting">#define ASN1_TAG_OBJECT_ID		0x06
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-ENUMERATED:CAPS"></a><h3>ASN1_TAG_ENUMERATED</h3>
<pre class="programlisting">#define ASN1_TAG_ENUMERATED		0x0A
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-NULL:CAPS"></a><h3>ASN1_TAG_NULL</h3>
<pre class="programlisting">#define ASN1_TAG_NULL			0x05
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-GENERALSTRING:CAPS"></a><h3>ASN1_TAG_GENERALSTRING</h3>
<pre class="programlisting">#define ASN1_TAG_GENERALSTRING		0x1B
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-NUMERIC-STRING:CAPS"></a><h3>ASN1_TAG_NUMERIC_STRING</h3>
<pre class="programlisting">#define ASN1_TAG_NUMERIC_STRING		0x12
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-IA5-STRING:CAPS"></a><h3>ASN1_TAG_IA5_STRING</h3>
<pre class="programlisting">#define ASN1_TAG_IA5_STRING		0x16
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-TELETEX-STRING:CAPS"></a><h3>ASN1_TAG_TELETEX_STRING</h3>
<pre class="programlisting">#define ASN1_TAG_TELETEX_STRING		0x14
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-PRINTABLE-STRING:CAPS"></a><h3>ASN1_TAG_PRINTABLE_STRING</h3>
<pre class="programlisting">#define ASN1_TAG_PRINTABLE_STRING 0x13
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-UNIVERSAL-STRING:CAPS"></a><h3>ASN1_TAG_UNIVERSAL_STRING</h3>
<pre class="programlisting">#define ASN1_TAG_UNIVERSAL_STRING 0x1C
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-BMP-STRING:CAPS"></a><h3>ASN1_TAG_BMP_STRING</h3>
<pre class="programlisting">#define ASN1_TAG_BMP_STRING		0x1E
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-UTF8-STRING:CAPS"></a><h3>ASN1_TAG_UTF8_STRING</h3>
<pre class="programlisting">#define ASN1_TAG_UTF8_STRING		0x0C
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TAG-VISIBLE-STRING:CAPS"></a><h3>ASN1_TAG_VISIBLE_STRING</h3>
<pre class="programlisting">#define ASN1_TAG_VISIBLE_STRING		0x1A
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="asn1-node-st"></a><h3>asn1_node_st</h3>
<pre class="programlisting">  typedef struct asn1_node_st asn1_node_st;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="asn1-node"></a><h3>asn1_node</h3>
<pre class="programlisting">  typedef asn1_node_st *asn1_node;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-MAX-NAME-SIZE:CAPS"></a><h3>ASN1_MAX_NAME_SIZE</h3>
<pre class="programlisting">#define ASN1_MAX_NAME_SIZE 64
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="asn1-static-node"></a><h3>asn1_static_node</h3>
<pre class="programlisting">  typedef struct asn1_static_node_st asn1_static_node;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-INVALID:CAPS"></a><h3>ASN1_ETYPE_INVALID</h3>
<pre class="programlisting">#define ASN1_ETYPE_INVALID        0
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-CONSTANT:CAPS"></a><h3>ASN1_ETYPE_CONSTANT</h3>
<pre class="programlisting">#define ASN1_ETYPE_CONSTANT       1
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-IDENTIFIER:CAPS"></a><h3>ASN1_ETYPE_IDENTIFIER</h3>
<pre class="programlisting">#define ASN1_ETYPE_IDENTIFIER     2
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-INTEGER:CAPS"></a><h3>ASN1_ETYPE_INTEGER</h3>
<pre class="programlisting">#define ASN1_ETYPE_INTEGER        3
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-BOOLEAN:CAPS"></a><h3>ASN1_ETYPE_BOOLEAN</h3>
<pre class="programlisting">#define ASN1_ETYPE_BOOLEAN        4
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-SEQUENCE:CAPS"></a><h3>ASN1_ETYPE_SEQUENCE</h3>
<pre class="programlisting">#define ASN1_ETYPE_SEQUENCE       5
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-BIT-STRING:CAPS"></a><h3>ASN1_ETYPE_BIT_STRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_BIT_STRING     6
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-OCTET-STRING:CAPS"></a><h3>ASN1_ETYPE_OCTET_STRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_OCTET_STRING   7
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-TAG:CAPS"></a><h3>ASN1_ETYPE_TAG</h3>
<pre class="programlisting">#define ASN1_ETYPE_TAG            8
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-DEFAULT:CAPS"></a><h3>ASN1_ETYPE_DEFAULT</h3>
<pre class="programlisting">#define ASN1_ETYPE_DEFAULT        9
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-SIZE:CAPS"></a><h3>ASN1_ETYPE_SIZE</h3>
<pre class="programlisting">#define ASN1_ETYPE_SIZE          10
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-SEQUENCE-OF:CAPS"></a><h3>ASN1_ETYPE_SEQUENCE_OF</h3>
<pre class="programlisting">#define ASN1_ETYPE_SEQUENCE_OF   11
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-OBJECT-ID:CAPS"></a><h3>ASN1_ETYPE_OBJECT_ID</h3>
<pre class="programlisting">#define ASN1_ETYPE_OBJECT_ID     12
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-ANY:CAPS"></a><h3>ASN1_ETYPE_ANY</h3>
<pre class="programlisting">#define ASN1_ETYPE_ANY           13
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-SET:CAPS"></a><h3>ASN1_ETYPE_SET</h3>
<pre class="programlisting">#define ASN1_ETYPE_SET           14
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-SET-OF:CAPS"></a><h3>ASN1_ETYPE_SET_OF</h3>
<pre class="programlisting">#define ASN1_ETYPE_SET_OF        15
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-DEFINITIONS:CAPS"></a><h3>ASN1_ETYPE_DEFINITIONS</h3>
<pre class="programlisting">#define ASN1_ETYPE_DEFINITIONS   16
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-CHOICE:CAPS"></a><h3>ASN1_ETYPE_CHOICE</h3>
<pre class="programlisting">#define ASN1_ETYPE_CHOICE        18
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-IMPORTS:CAPS"></a><h3>ASN1_ETYPE_IMPORTS</h3>
<pre class="programlisting">#define ASN1_ETYPE_IMPORTS       19
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-NULL:CAPS"></a><h3>ASN1_ETYPE_NULL</h3>
<pre class="programlisting">#define ASN1_ETYPE_NULL          20
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-ENUMERATED:CAPS"></a><h3>ASN1_ETYPE_ENUMERATED</h3>
<pre class="programlisting">#define ASN1_ETYPE_ENUMERATED    21
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-GENERALSTRING:CAPS"></a><h3>ASN1_ETYPE_GENERALSTRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_GENERALSTRING 27
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-NUMERIC-STRING:CAPS"></a><h3>ASN1_ETYPE_NUMERIC_STRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_NUMERIC_STRING 28
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-IA5-STRING:CAPS"></a><h3>ASN1_ETYPE_IA5_STRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_IA5_STRING     29
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-TELETEX-STRING:CAPS"></a><h3>ASN1_ETYPE_TELETEX_STRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_TELETEX_STRING 30
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-PRINTABLE-STRING:CAPS"></a><h3>ASN1_ETYPE_PRINTABLE_STRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_PRINTABLE_STRING 31
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-UNIVERSAL-STRING:CAPS"></a><h3>ASN1_ETYPE_UNIVERSAL_STRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_UNIVERSAL_STRING 32
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-BMP-STRING:CAPS"></a><h3>ASN1_ETYPE_BMP_STRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_BMP_STRING     33
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-UTF8-STRING:CAPS"></a><h3>ASN1_ETYPE_UTF8_STRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_UTF8_STRING    34
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-VISIBLE-STRING:CAPS"></a><h3>ASN1_ETYPE_VISIBLE_STRING</h3>
<pre class="programlisting">#define ASN1_ETYPE_VISIBLE_STRING 35
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-UTC-TIME:CAPS"></a><h3>ASN1_ETYPE_UTC_TIME</h3>
<pre class="programlisting">#define ASN1_ETYPE_UTC_TIME       36
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ETYPE-GENERALIZED-TIME:CAPS"></a><h3>ASN1_ETYPE_GENERALIZED_TIME</h3>
<pre class="programlisting">#define ASN1_ETYPE_GENERALIZED_TIME 37
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-DELETE-FLAG-ZEROIZE:CAPS"></a><h3>ASN1_DELETE_FLAG_ZEROIZE</h3>
<pre class="programlisting">#define ASN1_DELETE_FLAG_ZEROIZE 1
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="asn1-data-node-st"></a><h3>asn1_data_node_st</h3>
<pre class="programlisting">  typedef struct asn1_data_node_st asn1_data_node_st;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-MAX-ERROR-DESCRIPTION-SIZE:CAPS"></a><h3>ASN1_MAX_ERROR_DESCRIPTION_SIZE</h3>
<pre class="programlisting">#define ASN1_MAX_ERROR_DESCRIPTION_SIZE 128
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-MAX-TAG-SIZE:CAPS"></a><h3>ASN1_MAX_TAG_SIZE</h3>
<pre class="programlisting">#define ASN1_MAX_TAG_SIZE 4
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-MAX-LENGTH-SIZE:CAPS"></a><h3>ASN1_MAX_LENGTH_SIZE</h3>
<pre class="programlisting">#define ASN1_MAX_LENGTH_SIZE 9
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="asn1-retCode"></a><h3>asn1_retCode</h3>
<pre class="programlisting">  typedef int asn1_retCode; /* type returned by libtasn1 functions */
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="node-asn-struct"></a><h3>node_asn_struct</h3>
<pre class="programlisting">#define node_asn_struct asn1_node_st
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="node-asn"></a><h3>node_asn</h3>
<pre class="programlisting">#define node_asn asn1_node_st
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TYPE:CAPS"></a><h3>ASN1_TYPE</h3>
<pre class="programlisting">#define ASN1_TYPE asn1_node
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-TYPE-EMPTY:CAPS"></a><h3>ASN1_TYPE_EMPTY</h3>
<pre class="programlisting">#define ASN1_TYPE_EMPTY NULL
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="static-struct-asn"></a><h3>static_struct_asn</h3>
<pre class="programlisting">#define static_struct_asn asn1_static_node_st
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-ARRAY-TYPE:CAPS"></a><h3>ASN1_ARRAY_TYPE</h3>
<pre class="programlisting">#define ASN1_ARRAY_TYPE asn1_static_node
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="asn1-static-node-t"></a><h3>asn1_static_node_t</h3>
<pre class="programlisting">#define asn1_static_node_t asn1_static_node
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="node-data-struct"></a><h3>node_data_struct</h3>
<pre class="programlisting">#define node_data_struct asn1_data_node_st
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="ASN1-DATA-NODE:CAPS"></a><h3>ASN1_DATA_NODE</h3>
<pre class="programlisting">#define ASN1_DATA_NODE asn1_data_node_st
</pre>
<p>
</p>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.20</div>
</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit