![]() |
![]() |
![]() |
GNU TLS 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
); signed long asn1_get_length_der (unsigned char *der
,int der_len
,int *len
); signed long asn1_get_length_ber (unsigned char *ber
,int ber_len
,int *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. |
signed long asn1_get_length_der (unsigned char *der
,int der_len
,int *len
);
Extract a length field from DER data.
|
DER data to decode. |
|
Length of DER data to decode. |
|
Output variable containing the length of the DER length field. |
Returns : |
Return the decoded length value, or -1 on indefinite length, or -2 when the value was too big. |
signed long asn1_get_length_ber (unsigned char *ber
,int ber_len
,int *len
);
Extract a length field from BER data. The difference to
asn1_get_length_der()
is that this function will return a length
even if the value has indefinite encoding.
|
BER data to decode. |
|
Length of BER data to decode. |
|
Output variable containing the length of the BER length field. |
Returns : |
Return the decoded length value, or negative value when the value was too big. |
Since 2.0
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.
|