libtasn1

libtasn1 —

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);

Description

A longer description goes here.

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_array2tree ()

asn1_retCode asn1_array2tree                (const ASN1_ARRAY_TYPE *array,
                                             ASN1_TYPE *definitions,
                                             char *errorDescription);

asn1_print_structure ()

void        asn1_print_structure            (FILE *out,
                                             ASN1_TYPE structure,
                                             const char *name,
                                             int mode);

asn1_create_element ()

asn1_retCode asn1_create_element            (ASN1_TYPE definitions,
                                             const char *source_name,
                                             ASN1_TYPE *element);

asn1_delete_structure ()

asn1_retCode asn1_delete_structure          (ASN1_TYPE *structure);

asn1_delete_element ()

asn1_retCode asn1_delete_element            (ASN1_TYPE structure,
                                             const char *element_name);

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_any_defined_by ()

asn1_retCode asn1_expand_any_defined_by     (ASN1_TYPE definitions,
                                             ASN1_TYPE *element);

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);

asn1_find_node ()

ASN1_TYPE   asn1_find_node                  (ASN1_TYPE pointer,
                                             const char *name);

asn1_copy_node ()

asn1_retCode asn1_copy_node                 (ASN1_TYPE dst,
                                             const char *dst_name,
                                             ASN1_TYPE src,
                                             const char *src_name);