![]() |
![]() |
![]() |
GNU Libtasn1 API Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#define ASN1_API #define ASN1_VERSION 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; #define ASN1_MAX_NAME_SIZE #define ASN1_MAX_ERROR_DESCRIPTION_SIZE 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 (ASN1_TYPE 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 * asn1_strerror (asn1_retCode error); void asn1_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); #define LIBTASN1_VERSION #define MAX_NAME_SIZE #define MAX_ERROR_DESCRIPTION_SIZE const char * libtasn1_strerror (asn1_retCode error); void libtasn1_perror (asn1_retCode error);
asn1_retCode asn1_parser2tree (const char *file_name, ASN1_TYPE *definitions, char *errorDescription);
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_parser2array (const char *inputFileName, const char *outputFileName, const char *vectorName, char *errorDescription);
|
|
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_array2tree (const ASN1_ARRAY_TYPE *array, ASN1_TYPE *definitions, char *errorDescription);
|
|
|
|
|
|
Returns : |
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);
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_delete_structure (ASN1_TYPE *structure);
|
|
Returns : |
asn1_retCode asn1_delete_element (ASN1_TYPE structure, const char *element_name);
|
|
|
|
Returns : |
asn1_retCode asn1_write_value (ASN1_TYPE node_root, const char *name, const void *ivalue, int len);
|
|
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len);
|
|
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_number_of_elements (ASN1_TYPE element, const char *name, int *num);
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_der_coding (ASN1_TYPE element, const char *name, void *ider, int *len, char *ErrorDescription);
|
|
|
|
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_der_decoding (ASN1_TYPE *element, const void *ider, int len, char *errorDescription);
|
|
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_der_decoding_element (ASN1_TYPE *structure, const char *elementName, const void *ider, int len, char *errorDescription);
|
|
|
|
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len, const char *name_element, int *start, int *end);
|
|
|
|
|
|
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE *element);
|
|
|
|
Returns : |
asn1_retCode asn1_expand_octet_string (ASN1_TYPE definitions, ASN1_TYPE *element, const char *octetName, const char *objectName);
|
|
|
|
|
|
|
|
Returns : |
asn1_retCode asn1_read_tag (ASN1_TYPE root, const char *name, int *tagValue, int *classValue);
|
|
|
|
|
|
|
|
Returns : |
const char * asn1_find_structure_from_oid (ASN1_TYPE definitions, const char *oidValue);
|
|
|
|
Returns : |
const char * asn1_check_version (const char *req_version);
|
|
Returns : |
int asn1_get_tag_der (unsigned char *der, int der_len, unsigned char *cls, int *len, unsigned long *tag);
Decode the class and TAG from DER code.
|
DER data to decode. |
|
Length of DER data to decode. |
|
Output variable containing decoded class. |
|
Output variable containing the length of the DER TAG data. |
|
Output variable containing the decoded tag. |
Returns : |
Returns ASN1_SUCCESS on success, or an error. |
void asn1_octet_der (unsigned char *str, int str_len, unsigned char *der, int *der_len);
Creates the DER coding for an OCTET type (length included).
|
OCTET string. |
|
STR length (str[0]..str[str_len-1]). |
|
string returned. |
|
number of meaningful bytes of DER (der[0]..der[ans_len-1]). |
asn1_retCode asn1_get_octet_der (unsigned char *der, int der_len, int *ret_len, unsigned char *str, int str_size, int *str_len);
Extract an OCTET SEQUENCE from DER data.
|
DER data to decode containing the OCTET SEQUENCE. |
|
Length of DER data to decode. |
|
Output variable containing the length of the DER data. |
|
Pre-allocated output buffer to put decoded OCTET SEQUENCE in. |
|
Length of pre-allocated output buffer. |
|
Output variable containing the length of the OCTET SEQUENCE. |
Returns : |
Returns ASN1_SUCCESS on success, or an error. |
void asn1_bit_der (unsigned char *str, int bit_len, unsigned char *der, int *der_len);
Creates the DER coding for a BIT STRING type (length and pad included).
|
BIT string. |
|
number of meaningful bits in STR. |
|
string returned. |
|
number of meaningful bytes of DER (der[0]..der[ans_len-1]). |
asn1_retCode asn1_get_bit_der (unsigned char *der, int der_len, int *ret_len, unsigned char *str, int str_size, int *bit_len);
Extract a BIT SEQUENCE from DER data.
|
DER data to decode containing the BIT SEQUENCE. |
|
Length of DER data to decode. |
|
Output variable containing the length of the DER data. |
|
Pre-allocated output buffer to put decoded BIT SEQUENCE in. |
|
Length of pre-allocated output buffer. |
|
Output variable containing the size of the BIT SEQUENCE. |
Returns : |
Return ASN1_SUCCESS on success, or an error. |
void asn1_length_der (unsigned long int len, unsigned char *ans, int *ans_len);
Creates the DER coding for the LEN parameter (only the length).
The ans
buffer is pre-allocated and must have room for the output.
|
value to convert. |
|
string returned. |
|
number of meaningful bytes of ANS (ans[0]..ans[ans_len-1]). |
ASN1_TYPE asn1_find_node (ASN1_TYPE pointer, const char *name);
Searches for an element called NAME starting from POINTER. The name is composed by differents identifiers separated by dots. When *POINTER has a name, the first identifier must be the name of *POINTER, otherwise it must be the name of one child of *POINTER.
|
NODE_ASN element pointer. |
|
null terminated string with the element's name to find. |
Returns : |
the searching result. NULL if not found. |
asn1_retCode asn1_copy_node (ASN1_TYPE dst, const char *dst_name, ASN1_TYPE src, const char *src_name);
Create a deep copy of a ASN1_TYPE variable.
|
Destination ASN1_TYPE node. |
|
Field name in destination node. |
|
Source ASN1_TYPE node. |
|
Field name in source node. |
Returns : |
Return ASN1_SUCCESS on success. |
#define LIBTASN1_VERSION ASN1_VERSION
LIBTASN1_VERSION
is deprecated and should not be used in newly-written code.
# define MAX_NAME_SIZE ASN1_MAX_NAME_SIZE
MAX_NAME_SIZE
is deprecated and should not be used in newly-written code.
# define MAX_ERROR_DESCRIPTION_SIZE ASN1_MAX_ERROR_DESCRIPTION_SIZE
MAX_ERROR_DESCRIPTION_SIZE
is deprecated and should not be used in newly-written code.
const char * libtasn1_strerror (asn1_retCode error);
libtasn1_strerror
is deprecated and should not be used in newly-written code.
|
|
Returns : |
void libtasn1_perror (asn1_retCode error);
libtasn1_perror
is deprecated and should not be used in newly-written code.
|