Synopsis
#define LIBTASN1_VERSION
#define MAX_NAME_SIZE
#define MAX_ERROR_DESCRIPTION_SIZE
typedef asn1_retCode;
#define ASN1_SUCCESS
#define ASN1_FILE_NOT_FOUND
#define ASN1_ELEMENT_NOT_FOUND
#define ASN1_IDENTIFIER_NOT_FOUND
#define ASN1_DER_ERROR
#define ASN1_VALUE_NOT_FOUND
#define ASN1_GENERIC_ERROR
#define ASN1_VALUE_NOT_VALID
#define ASN1_TAG_ERROR
#define ASN1_TAG_IMPLICIT
#define ASN1_ERROR_TYPE_ANY
#define ASN1_SYNTAX_ERROR
#define ASN1_MEM_ERROR
#define ASN1_MEM_ALLOC_ERROR
#define ASN1_DER_OVERFLOW
#define ASN1_NAME_TOO_LONG
#define ASN1_ARRAY_ERROR
#define ASN1_ELEMENT_NOT_EMPTY
#define ASN1_PRINT_NAME
#define ASN1_PRINT_NAME_TYPE
#define ASN1_PRINT_NAME_TYPE_VALUE
#define ASN1_PRINT_ALL
#define ASN1_CLASS_UNIVERSAL
#define ASN1_CLASS_APPLICATION
#define ASN1_CLASS_CONTEXT_SPECIFIC
#define ASN1_CLASS_PRIVATE
#define ASN1_CLASS_STRUCTURED
#define ASN1_TAG_BOOLEAN
#define ASN1_TAG_INTEGER
#define ASN1_TAG_SEQUENCE
#define ASN1_TAG_SET
#define ASN1_TAG_OCTET_STRING
#define ASN1_TAG_BIT_STRING
#define ASN1_TAG_UTCTime
#define ASN1_TAG_GENERALIZEDTime
#define ASN1_TAG_OBJECT_ID
#define ASN1_TAG_ENUMERATED
#define ASN1_TAG_NULL
#define ASN1_TAG_GENERALSTRING
typedef node_asn;
typedef ASN1_TYPE;
#define ASN1_TYPE_EMPTY
typedef ASN1_ARRAY_TYPE;
asn1_retCode asn1_parser2tree (const char *file_name,
ASN1_TYPE *definitions,
char *errorDescription);
asn1_retCode asn1_parser2array (const char *inputFileName,
const char *outputFileName,
const char *vectorName,
char *errorDescription);
asn1_retCode asn1_array2tree (const ASN1_ARRAY_TYPE *array,
ASN1_TYPE *definitions,
char *errorDescription);
void asn1_print_structure (FILE *out,
ASN1_TYPE structure,
const char *name,
int mode);
asn1_retCode asn1_create_element (ASN1_TYPE definitions,
const char *source_name,
ASN1_TYPE *element);
asn1_retCode asn1_delete_structure (ASN1_TYPE *structure);
asn1_retCode asn1_delete_element (ASN1_TYPE structure,
const char *element_name);
asn1_retCode asn1_write_value (ASN1_TYPE node_root,
const char *name,
const void *ivalue,
int len);
asn1_retCode asn1_read_value (ASN1_TYPE root,
const char *name,
void *ivalue,
int *len);
asn1_retCode asn1_number_of_elements (ASN1_TYPE element,
const char *name,
int *num);
asn1_retCode asn1_der_coding (ASN1_TYPE element,
const char *name,
void *ider,
int *len,
char *ErrorDescription);
asn1_retCode asn1_der_decoding (ASN1_TYPE *element,
const void *ider,
int len,
char *errorDescription);
asn1_retCode asn1_der_decoding_element (ASN1_TYPE *structure,
const char *elementName,
const void *ider,
int len,
char *errorDescription);
asn1_retCode asn1_der_decoding_startEnd (ASN1_TYPE element,
const void *ider,
int len,
const char *name_element,
int *start,
int *end);
asn1_retCode asn1_expand_any_defined_by (ASN1_TYPE definitions,
ASN1_TYPE *element);
asn1_retCode asn1_expand_octet_string (ASN1_TYPE definitions,
ASN1_TYPE *element,
const char *octetName,
const char *objectName);
asn1_retCode asn1_read_tag (node_asn *root,
const char *name,
int *tagValue,
int *classValue);
const char* asn1_find_structure_from_oid (ASN1_TYPE definitions,
const char *oidValue);
const char* asn1_check_version (const char *req_version);
const char* libtasn1_strerror (asn1_retCode error);
void libtasn1_perror (asn1_retCode error);
int asn1_get_tag_der (unsigned char *der,
int der_len,
unsigned char *cls,
int *len,
unsigned long *tag);
void asn1_octet_der (unsigned char *str,
int str_len,
unsigned char *der,
int *der_len);
asn1_retCode asn1_get_octet_der (unsigned char *der,
int der_len,
int *ret_len,
unsigned char *str,
int str_size,
int *str_len);
void asn1_bit_der (unsigned char *str,
int bit_len,
unsigned char *der,
int *der_len);
asn1_retCode asn1_get_bit_der (unsigned char *der,
int der_len,
int *ret_len,
unsigned char *str,
int str_size,
int *bit_len);
void asn1_length_der (unsigned long int len,
unsigned char *ans,
int *ans_len);
ASN1_TYPE asn1_find_node (ASN1_TYPE pointer,
const char *name);
asn1_retCode asn1_copy_node (ASN1_TYPE dst,
const char *dst_name,
ASN1_TYPE src,
const char *src_name);
Details
LIBTASN1_VERSION
#define LIBTASN1_VERSION "1.4"
MAX_NAME_SIZE
#define MAX_NAME_SIZE 128 /* maximum number of characters of a name */
MAX_ERROR_DESCRIPTION_SIZE
#define MAX_ERROR_DESCRIPTION_SIZE 128 /* maximum number of characters */
asn1_retCode
typedef int asn1_retCode; /* type returned by libtasn1 functions */
ASN1_SUCCESS
#define ASN1_SUCCESS 0
ASN1_FILE_NOT_FOUND
#define ASN1_FILE_NOT_FOUND 1
ASN1_ELEMENT_NOT_FOUND
#define ASN1_ELEMENT_NOT_FOUND 2
ASN1_IDENTIFIER_NOT_FOUND
#define ASN1_IDENTIFIER_NOT_FOUND 3
ASN1_DER_ERROR
#define ASN1_DER_ERROR 4
ASN1_VALUE_NOT_FOUND
#define ASN1_VALUE_NOT_FOUND 5
ASN1_GENERIC_ERROR
#define ASN1_GENERIC_ERROR 6
ASN1_VALUE_NOT_VALID
#define ASN1_VALUE_NOT_VALID 7
ASN1_TAG_ERROR
#define ASN1_TAG_ERROR 8
ASN1_TAG_IMPLICIT
#define ASN1_TAG_IMPLICIT 9
ASN1_ERROR_TYPE_ANY
#define ASN1_ERROR_TYPE_ANY 10
ASN1_SYNTAX_ERROR
#define ASN1_SYNTAX_ERROR 11
ASN1_MEM_ERROR
#define ASN1_MEM_ERROR 12
ASN1_MEM_ALLOC_ERROR
#define ASN1_MEM_ALLOC_ERROR 13
ASN1_DER_OVERFLOW
#define ASN1_DER_OVERFLOW 14
ASN1_NAME_TOO_LONG
#define ASN1_NAME_TOO_LONG 15
ASN1_ARRAY_ERROR
#define ASN1_ARRAY_ERROR 16
ASN1_ELEMENT_NOT_EMPTY
#define ASN1_ELEMENT_NOT_EMPTY 17
ASN1_PRINT_NAME
#define ASN1_PRINT_NAME 1
ASN1_PRINT_NAME_TYPE
#define ASN1_PRINT_NAME_TYPE 2
ASN1_PRINT_NAME_TYPE_VALUE
#define ASN1_PRINT_NAME_TYPE_VALUE 3
ASN1_PRINT_ALL
#define ASN1_PRINT_ALL 4
ASN1_CLASS_UNIVERSAL
#define ASN1_CLASS_UNIVERSAL 0x00 /* old: 1 */
ASN1_CLASS_APPLICATION
#define ASN1_CLASS_APPLICATION 0x40 /* old: 2 */
ASN1_CLASS_CONTEXT_SPECIFIC
#define ASN1_CLASS_CONTEXT_SPECIFIC 0x80 /* old: 3 */
ASN1_CLASS_PRIVATE
#define ASN1_CLASS_PRIVATE 0xC0 /* old: 4 */
ASN1_CLASS_STRUCTURED
#define ASN1_CLASS_STRUCTURED 0x20
ASN1_TAG_BOOLEAN
#define ASN1_TAG_BOOLEAN 0x01
ASN1_TAG_INTEGER
#define ASN1_TAG_INTEGER 0x02
ASN1_TAG_SEQUENCE
#define ASN1_TAG_SEQUENCE 0x10
ASN1_TAG_SET
#define ASN1_TAG_SET 0x11
ASN1_TAG_OCTET_STRING
#define ASN1_TAG_OCTET_STRING 0x04
ASN1_TAG_BIT_STRING
#define ASN1_TAG_BIT_STRING 0x03
ASN1_TAG_UTCTime
#define ASN1_TAG_UTCTime 0x17
ASN1_TAG_GENERALIZEDTime
#define ASN1_TAG_GENERALIZEDTime 0x18
ASN1_TAG_OBJECT_ID
#define ASN1_TAG_OBJECT_ID 0x06
ASN1_TAG_ENUMERATED
#define ASN1_TAG_ENUMERATED 0x0A
ASN1_TAG_NULL
#define ASN1_TAG_NULL 0x05
ASN1_TAG_GENERALSTRING
#define ASN1_TAG_GENERALSTRING 0x1B
node_asn
typedef struct node_asn_struct node_asn;
ASN1_TYPE
typedef node_asn *ASN1_TYPE;
ASN1_TYPE_EMPTY
#define ASN1_TYPE_EMPTY NULL
ASN1_ARRAY_TYPE
typedef struct static_struct_asn ASN1_ARRAY_TYPE;
asn1_parser2tree ()
asn1_retCode asn1_parser2tree (const char *file_name,
ASN1_TYPE *definitions,
char *errorDescription);
asn1_parser2array ()
asn1_retCode asn1_parser2array (const char *inputFileName,
const char *outputFileName,
const char *vectorName,
char *errorDescription);
asn1_print_structure ()
void asn1_print_structure (FILE *out,
ASN1_TYPE structure,
const char *name,
int mode);
asn1_write_value ()
asn1_retCode asn1_write_value (ASN1_TYPE node_root,
const char *name,
const void *ivalue,
int len);
asn1_read_value ()
asn1_retCode asn1_read_value (ASN1_TYPE root,
const char *name,
void *ivalue,
int *len);
asn1_number_of_elements ()
asn1_retCode asn1_number_of_elements (ASN1_TYPE element,
const char *name,
int *num);
asn1_der_coding ()
asn1_retCode asn1_der_coding (ASN1_TYPE element,
const char *name,
void *ider,
int *len,
char *ErrorDescription);
asn1_der_decoding ()
asn1_retCode asn1_der_decoding (ASN1_TYPE *element,
const void *ider,
int len,
char *errorDescription);
asn1_der_decoding_element ()
asn1_retCode asn1_der_decoding_element (ASN1_TYPE *structure,
const char *elementName,
const void *ider,
int len,
char *errorDescription);
asn1_der_decoding_startEnd ()
asn1_retCode asn1_der_decoding_startEnd (ASN1_TYPE element,
const void *ider,
int len,
const char *name_element,
int *start,
int *end);
asn1_expand_octet_string ()
asn1_retCode asn1_expand_octet_string (ASN1_TYPE definitions,
ASN1_TYPE *element,
const char *octetName,
const char *objectName);
asn1_read_tag ()
asn1_retCode asn1_read_tag (node_asn *root,
const char *name,
int *tagValue,
int *classValue);
asn1_find_structure_from_oid ()
const char* asn1_find_structure_from_oid (ASN1_TYPE definitions,
const char *oidValue);
asn1_check_version ()
const char* asn1_check_version (const char *req_version);
libtasn1_strerror ()
const char* libtasn1_strerror (asn1_retCode error);
libtasn1_perror ()
void libtasn1_perror (asn1_retCode error);
asn1_get_tag_der ()
int asn1_get_tag_der (unsigned char *der,
int der_len,
unsigned char *cls,
int *len,
unsigned long *tag);
asn1_octet_der ()
void asn1_octet_der (unsigned char *str,
int str_len,
unsigned char *der,
int *der_len);
asn1_get_octet_der ()
asn1_retCode asn1_get_octet_der (unsigned char *der,
int der_len,
int *ret_len,
unsigned char *str,
int str_size,
int *str_len);
asn1_bit_der ()
void asn1_bit_der (unsigned char *str,
int bit_len,
unsigned char *der,
int *der_len);
asn1_get_bit_der ()
asn1_retCode asn1_get_bit_der (unsigned char *der,
int der_len,
int *ret_len,
unsigned char *str,
int str_size,
int *bit_len);
asn1_length_der ()
void asn1_length_der (unsigned long int len,
unsigned char *ans,
int *ans_len);