summaryrefslogtreecommitdiff
path: root/lib/minitasn1
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2012-10-28 23:52:29 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2012-10-28 23:52:29 +0100
commit2a205cd7ca3de576fc340fbaceac27e6765fd752 (patch)
treef90b47bddfd35b27fd17649855a30252295a271f /lib/minitasn1
parentfb6fb554b51e6e04ef865db26c952e22c4f964f7 (diff)
downloadgnutls-2a205cd7ca3de576fc340fbaceac27e6765fd752.tar.gz
updated libtasn1
Diffstat (limited to 'lib/minitasn1')
-rw-r--r--lib/minitasn1/coding.c34
-rw-r--r--lib/minitasn1/decoding.c89
-rw-r--r--lib/minitasn1/element.c34
-rw-r--r--lib/minitasn1/element.h6
-rw-r--r--lib/minitasn1/errors.c4
-rw-r--r--lib/minitasn1/int.h14
-rw-r--r--lib/minitasn1/libtasn1.h122
-rw-r--r--lib/minitasn1/parser_aux.c90
-rw-r--r--lib/minitasn1/parser_aux.h56
-rw-r--r--lib/minitasn1/structure.c118
-rw-r--r--lib/minitasn1/structure.h8
11 files changed, 294 insertions, 281 deletions
diff --git a/lib/minitasn1/coding.c b/lib/minitasn1/coding.c
index 11f8f48288..581ef9675f 100644
--- a/lib/minitasn1/coding.c
+++ b/lib/minitasn1/coding.c
@@ -44,7 +44,7 @@
/* Return: */
/******************************************************/
static void
-_asn1_error_description_value_not_found (ASN1_TYPE node,
+_asn1_error_description_value_not_found (asn1_node node,
char *ErrorDescription)
{
@@ -177,7 +177,7 @@ asn1_octet_der (const unsigned char *str, int str_len,
/* ASN1_MEM_ERROR when DER isn't big enough */
/* ASN1_SUCCESS otherwise */
/******************************************************/
-static asn1_retCode
+static int
_asn1_time_der (unsigned char *str, unsigned char *der, int *der_len)
{
int len_len;
@@ -249,7 +249,7 @@ _asn1_get_utctime_der(unsigned char *der,int *der_len,unsigned char *str)
/* ASN1_MEM_ERROR when DER isn't big enough */
/* ASN1_SUCCESS otherwise */
/******************************************************/
-static asn1_retCode
+static int
_asn1_objectid_der (unsigned char *str, unsigned char *der, int *der_len)
{
int len_len, counter, k, first, max_len;
@@ -372,11 +372,11 @@ asn1_bit_der (const unsigned char *str, int bit_len,
/* ASN1_MEM_ERROR if der vector isn't big enough, */
/* otherwise ASN1_SUCCESS. */
/******************************************************/
-static asn1_retCode
-_asn1_complete_explicit_tag (ASN1_TYPE node, unsigned char *der,
+static int
+_asn1_complete_explicit_tag (asn1_node node, unsigned char *der,
int *counter, int *max_len)
{
- ASN1_TYPE p;
+ asn1_node p;
int is_tag_implicit, len2, len3;
unsigned char temp[SIZEOF_UNSIGNED_INT];
@@ -445,11 +445,11 @@ _asn1_complete_explicit_tag (ASN1_TYPE node, unsigned char *der,
/* ASN1_MEM_ERROR if der vector isn't big enough, */
/* otherwise ASN1_SUCCESS. */
/******************************************************/
-static asn1_retCode
-_asn1_insert_tag_der (ASN1_TYPE node, unsigned char *der, int *counter,
+static int
+_asn1_insert_tag_der (asn1_node node, unsigned char *der, int *counter,
int *max_len)
{
- ASN1_TYPE p;
+ asn1_node p;
int tag_len, is_tag_implicit;
unsigned char class, class_implicit = 0, temp[SIZEOF_UNSIGNED_INT * 3 + 1];
unsigned long tag_implicit = 0;
@@ -607,7 +607,7 @@ _asn1_insert_tag_der (ASN1_TYPE node, unsigned char *der, int *counter,
/* Return: */
/******************************************************/
static void
-_asn1_ordering_set (unsigned char *der, int der_len, ASN1_TYPE node)
+_asn1_ordering_set (unsigned char *der, int der_len, asn1_node node)
{
struct vet
{
@@ -618,7 +618,7 @@ _asn1_ordering_set (unsigned char *der, int der_len, ASN1_TYPE node)
int counter, len, len2;
struct vet *first, *last, *p_vet, *p2_vet;
- ASN1_TYPE p;
+ asn1_node p;
unsigned char class, *temp;
unsigned long tag;
@@ -721,7 +721,7 @@ _asn1_ordering_set (unsigned char *der, int der_len, ASN1_TYPE node)
/* Return: */
/******************************************************/
static void
-_asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
+_asn1_ordering_set_of (unsigned char *der, int der_len, asn1_node node)
{
struct vet
{
@@ -731,7 +731,7 @@ _asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
int counter, len, len2, change;
struct vet *first, *last, *p_vet, *p2_vet;
- ASN1_TYPE p;
+ asn1_node p;
unsigned char *temp, class;
unsigned long k, max;
@@ -866,14 +866,14 @@ _asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
* vector isn't big enough and in this case @len will contain the
* length needed.
**/
-asn1_retCode
-asn1_der_coding (ASN1_TYPE element, const char *name, void *ider, int *len,
+int
+asn1_der_coding (asn1_node element, const char *name, void *ider, int *len,
char *ErrorDescription)
{
- ASN1_TYPE node, p, p2;
+ asn1_node node, p, p2;
unsigned char temp[SIZEOF_UNSIGNED_LONG_INT * 3 + 1];
int counter, counter_old, len2, len3, tlen, move, max_len, max_len_old;
- asn1_retCode err;
+ int err;
unsigned char *der = ider;
node = asn1_find_node (element, name);
diff --git a/lib/minitasn1/decoding.c b/lib/minitasn1/decoding.c
index 717112ba77..79766a1802 100644
--- a/lib/minitasn1/decoding.c
+++ b/lib/minitasn1/decoding.c
@@ -32,11 +32,11 @@
#include "element.h"
#include <limits.h>
-static asn1_retCode
+static int
_asn1_get_indefinite_length_string (const unsigned char *der, int *len);
static void
-_asn1_error_description_tag_error (ASN1_TYPE node, char *ErrorDescription)
+_asn1_error_description_tag_error (asn1_node node, char *ErrorDescription)
{
Estrcpy (ErrorDescription, ":: tag error near element '");
@@ -369,10 +369,10 @@ asn1_get_bit_der (const unsigned char *der, int der_len,
}
static int
-_asn1_extract_tag_der (ASN1_TYPE node, const unsigned char *der, int der_len,
+_asn1_extract_tag_der (asn1_node node, const unsigned char *der, int der_len,
int *ret_len)
{
- ASN1_TYPE p;
+ asn1_node p;
int counter, len2, len3, is_tag_implicit;
unsigned long tag, tag_implicit = 0;
unsigned char class, class2, class_implicit = 0;
@@ -567,9 +567,9 @@ _asn1_extract_tag_der (ASN1_TYPE node, const unsigned char *der, int der_len,
}
static int
-_asn1_delete_not_used (ASN1_TYPE node)
+_asn1_delete_not_used (asn1_node node)
{
- ASN1_TYPE p, p2;
+ asn1_node p, p2;
if (node == NULL)
return ASN1_ELEMENT_NOT_FOUND;
@@ -625,8 +625,8 @@ _asn1_delete_not_used (ASN1_TYPE node)
return ASN1_SUCCESS;
}
-static asn1_retCode
-_asn1_extract_der_octet (ASN1_TYPE node, const unsigned char *der,
+static int
+_asn1_extract_der_octet (asn1_node node, const unsigned char *der,
int der_len)
{
int len2, len3;
@@ -670,8 +670,8 @@ _asn1_extract_der_octet (ASN1_TYPE node, const unsigned char *der,
return ASN1_SUCCESS;
}
-static asn1_retCode
-_asn1_get_octet_string (const unsigned char *der, ASN1_TYPE node, int *len)
+static int
+_asn1_get_octet_string (const unsigned char *der, asn1_node node, int *len)
{
int len2, len3, counter, tot_len, indefinite;
@@ -750,7 +750,7 @@ _asn1_get_octet_string (const unsigned char *der, ASN1_TYPE node, int *len)
}
-static asn1_retCode
+static int
_asn1_get_indefinite_length_string (const unsigned char *der, int *len)
{
int len2, len3, counter, indefinite;
@@ -812,18 +812,18 @@ _asn1_get_indefinite_length_string (const unsigned char *der, int *len)
* string. The structure must just be created with function
* asn1_create_element(). If an error occurs during the decoding
* procedure, the *@ELEMENT is deleted and set equal to
- * %ASN1_TYPE_EMPTY.
+ * %NULL.
*
* Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- * if @ELEMENT is %ASN1_TYPE_EMPTY, and %ASN1_TAG_ERROR or
+ * if @ELEMENT is %NULL, and %ASN1_TAG_ERROR or
* %ASN1_DER_ERROR if the der encoding doesn't match the structure
* name (*@ELEMENT deleted).
**/
-asn1_retCode
-asn1_der_decoding (ASN1_TYPE * element, const void *ider, int len,
+int
+asn1_der_decoding (asn1_node * element, const void *ider, int len,
char *errorDescription)
{
- ASN1_TYPE node, p, p2, p3;
+ asn1_node node, p, p2, p3;
char temp[128];
int counter, len2, len3, len4, move, ris, tlen;
unsigned char class;
@@ -833,7 +833,10 @@ asn1_der_decoding (ASN1_TYPE * element, const void *ider, int len,
node = *element;
- if (node == ASN1_TYPE_EMPTY)
+ if (errorDescription != NULL)
+ errorDescription[0] = 0;
+
+ if (node == NULL)
return ASN1_ELEMENT_NOT_FOUND;
if (node->type & CONST_OPTION)
@@ -1390,18 +1393,18 @@ cleanup:
* asn1_create_element(). The DER vector must contain the encoding
* string of the whole @STRUCTURE. If an error occurs during the
* decoding procedure, the *@STRUCTURE is deleted and set equal to
- * %ASN1_TYPE_EMPTY.
+ * %NULL.
*
* Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- * if ELEMENT is %ASN1_TYPE_EMPTY or @elementName == NULL, and
+ * if ELEMENT is %NULL or @elementName == NULL, and
* %ASN1_TAG_ERROR or %ASN1_DER_ERROR if the der encoding doesn't
* match the structure @structure (*ELEMENT deleted).
**/
-asn1_retCode
-asn1_der_decoding_element (ASN1_TYPE * structure, const char *elementName,
+int
+asn1_der_decoding_element (asn1_node * structure, const char *elementName,
const void *ider, int len, char *errorDescription)
{
- ASN1_TYPE node, p, p2, p3, nodeFound = ASN1_TYPE_EMPTY;
+ asn1_node node, p, p2, p3, nodeFound = NULL;
char temp[128], currentName[ASN1_MAX_NAME_SIZE * 10], *dot_p, *char_p;
int nameLen = ASN1_MAX_NAME_SIZE * 10 - 1, state;
int counter, len2, len3, len4, move, ris, tlen;
@@ -1412,7 +1415,7 @@ asn1_der_decoding_element (ASN1_TYPE * structure, const char *elementName,
node = *structure;
- if (node == ASN1_TYPE_EMPTY)
+ if (node == NULL)
return ASN1_ELEMENT_NOT_FOUND;
if (elementName == NULL)
@@ -2207,15 +2210,15 @@ cleanup:
* certificate.
*
* Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- * if ELEMENT is %ASN1_TYPE EMPTY or @name_element is not a valid
+ * if ELEMENT is %asn1_node EMPTY or @name_element is not a valid
* element, %ASN1_TAG_ERROR or %ASN1_DER_ERROR if the der encoding
* doesn't match the structure ELEMENT.
**/
-asn1_retCode
-asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
+int
+asn1_der_decoding_startEnd (asn1_node element, const void *ider, int len,
const char *name_element, int *start, int *end)
{
- ASN1_TYPE node, node_to_find, p, p2, p3;
+ asn1_node node, node_to_find, p, p2, p3;
int counter, len2, len3, len4, move, ris;
unsigned char class;
unsigned long tag;
@@ -2224,7 +2227,7 @@ asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
node = element;
- if (node == ASN1_TYPE_EMPTY)
+ if (node == NULL)
return ASN1_ELEMENT_NOT_FOUND;
node_to_find = asn1_find_node (node, name_element);
@@ -2562,17 +2565,17 @@ asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
* problem in OBJECT_ID -> TYPE association, or other error codes
* depending on DER decoding.
**/
-asn1_retCode
-asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
+int
+asn1_expand_any_defined_by (asn1_node definitions, asn1_node * element)
{
char definitionsName[ASN1_MAX_NAME_SIZE], name[2 * ASN1_MAX_NAME_SIZE + 1],
value[ASN1_MAX_NAME_SIZE];
- asn1_retCode retCode = ASN1_SUCCESS, result;
+ int retCode = ASN1_SUCCESS, result;
int len, len2, len3;
- ASN1_TYPE p, p2, p3, aux = ASN1_TYPE_EMPTY;
+ asn1_node p, p2, p3, aux = NULL;
char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE];
- if ((definitions == ASN1_TYPE_EMPTY) || (*element == ASN1_TYPE_EMPTY))
+ if ((definitions == NULL) || (*element == NULL))
return ASN1_ELEMENT_NOT_FOUND;
strcpy (definitionsName, definitions->name);
@@ -2696,7 +2699,7 @@ asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
if (result == ASN1_SUCCESS)
{
p = aux;
- aux = ASN1_TYPE_EMPTY;
+ aux = NULL;
break;
}
else
@@ -2792,22 +2795,22 @@ asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
* %ASN1_VALUE_NOT_VALID if it wasn't possible to find the type to
* use for expansion, or other errors depending on DER decoding.
**/
-asn1_retCode
-asn1_expand_octet_string (ASN1_TYPE definitions, ASN1_TYPE * element,
+int
+asn1_expand_octet_string (asn1_node definitions, asn1_node * element,
const char *octetName, const char *objectName)
{
char name[2 * ASN1_MAX_NAME_SIZE + 1], value[ASN1_MAX_NAME_SIZE];
- asn1_retCode retCode = ASN1_SUCCESS, result;
+ int retCode = ASN1_SUCCESS, result;
int len, len2, len3;
- ASN1_TYPE p2, aux = ASN1_TYPE_EMPTY;
- ASN1_TYPE octetNode = ASN1_TYPE_EMPTY, objectNode = ASN1_TYPE_EMPTY;
+ asn1_node p2, aux = NULL;
+ asn1_node octetNode = NULL, objectNode = NULL;
char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE];
- if ((definitions == ASN1_TYPE_EMPTY) || (*element == ASN1_TYPE_EMPTY))
+ if ((definitions == NULL) || (*element == NULL))
return ASN1_ELEMENT_NOT_FOUND;
octetNode = asn1_find_node (*element, octetName);
- if (octetNode == ASN1_TYPE_EMPTY)
+ if (octetNode == NULL)
return ASN1_ELEMENT_NOT_FOUND;
if (type_field (octetNode->type) != TYPE_OCTET_STRING)
return ASN1_ELEMENT_NOT_FOUND;
@@ -2815,7 +2818,7 @@ asn1_expand_octet_string (ASN1_TYPE definitions, ASN1_TYPE * element,
return ASN1_VALUE_NOT_FOUND;
objectNode = asn1_find_node (*element, objectName);
- if (objectNode == ASN1_TYPE_EMPTY)
+ if (objectNode == NULL)
return ASN1_ELEMENT_NOT_FOUND;
if (type_field (objectNode->type) != TYPE_OBJECT_ID)
@@ -2876,7 +2879,7 @@ asn1_expand_octet_string (ASN1_TYPE definitions, ASN1_TYPE * element,
result = asn1_delete_structure (&octetNode);
if (result == ASN1_SUCCESS)
{
- aux = ASN1_TYPE_EMPTY;
+ aux = NULL;
break;
}
else
diff --git a/lib/minitasn1/element.c b/lib/minitasn1/element.c
index 2ee4950026..4c871a1b31 100644
--- a/lib/minitasn1/element.c
+++ b/lib/minitasn1/element.c
@@ -34,9 +34,9 @@
#include "element.h"
void
-_asn1_hierarchical_name (ASN1_TYPE node, char *name, int name_size)
+_asn1_hierarchical_name (asn1_node node, char *name, int name_size)
{
- ASN1_TYPE p;
+ asn1_node p;
char tmp_name[64];
p = node;
@@ -74,7 +74,7 @@ _asn1_hierarchical_name (ASN1_TYPE node, char *name, int name_size)
/* len: number of significant byte of value_out. */
/* Return: ASN1_MEM_ERROR or ASN1_SUCCESS */
/******************************************************************/
-asn1_retCode
+int
_asn1_convert_integer (const unsigned char *value, unsigned char *value_out,
int value_out_size, int *len)
{
@@ -127,9 +127,9 @@ _asn1_convert_integer (const unsigned char *value, unsigned char *value_out,
int
-_asn1_append_sequence_set (ASN1_TYPE node)
+_asn1_append_sequence_set (asn1_node node)
{
- ASN1_TYPE p, p2;
+ asn1_node p, p2;
char temp[10];
long n;
@@ -267,11 +267,11 @@ _asn1_append_sequence_set (ASN1_TYPE node)
* %ASN1_ELEMENT_NOT_FOUND if @name is not a valid element, and
* %ASN1_VALUE_NOT_VALID if @ivalue has a wrong format.
**/
-asn1_retCode
-asn1_write_value (ASN1_TYPE node_root, const char *name,
+int
+asn1_write_value (asn1_node node_root, const char *name,
const void *ivalue, int len)
{
- ASN1_TYPE node, p, p2;
+ asn1_node node, p, p2;
unsigned char *temp, *value_temp = NULL, *default_temp = NULL;
int len2, k, k2, negative;
size_t i;
@@ -693,10 +693,10 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
* to store the result, and in this case @len will contain the number of
* bytes needed.
**/
-asn1_retCode
-asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len)
+int
+asn1_read_value (asn1_node root, const char *name, void *ivalue, int *len)
{
- ASN1_TYPE node, p, p2;
+ asn1_node node, p, p2;
int len2, len3;
int value_size = *len;
unsigned char *value = ivalue;
@@ -871,11 +871,11 @@ asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len)
* Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
* @name is not a valid element.
**/
-asn1_retCode
-asn1_read_tag (ASN1_TYPE root, const char *name, int *tagValue,
+int
+asn1_read_tag (asn1_node root, const char *name, int *tagValue,
int *classValue)
{
- ASN1_TYPE node, p, pTag;
+ asn1_node node, p, pTag;
node = asn1_find_node (root, name);
if (node == NULL)
@@ -974,14 +974,14 @@ asn1_read_tag (ASN1_TYPE root, const char *name, int *tagValue,
/**
* asn1_read_node_value:
* @node: pointer to a node.
- * @data: a point to a node_data_struct
+ * @data: a point to a asn1_data_node_st
*
- * Returns the value a data node inside a ASN1_TYPE structure.
+ * Returns the value a data node inside a asn1_node structure.
* The data returned should be handled as constant values.
*
* Returns: %ASN1_SUCCESS if the node exists.
**/
-asn1_retCode asn1_read_node_value (ASN1_TYPE node, ASN1_DATA_NODE* data)
+int asn1_read_node_value (asn1_node node, asn1_data_node_st* data)
{
data->name = node->name;
data->value = node->value;
diff --git a/lib/minitasn1/element.h b/lib/minitasn1/element.h
index 9cad46edc5..3bd38bb923 100644
--- a/lib/minitasn1/element.h
+++ b/lib/minitasn1/element.h
@@ -23,12 +23,12 @@
#define _ELEMENT_H
-asn1_retCode _asn1_append_sequence_set (ASN1_TYPE node);
+int _asn1_append_sequence_set (asn1_node node);
-asn1_retCode _asn1_convert_integer (const unsigned char *value,
+int _asn1_convert_integer (const unsigned char *value,
unsigned char *value_out,
int value_out_size, int *len);
-void _asn1_hierarchical_name (ASN1_TYPE node, char *name, int name_size);
+void _asn1_hierarchical_name (asn1_node node, char *name, int name_size);
#endif
diff --git a/lib/minitasn1/errors.c b/lib/minitasn1/errors.c
index 8b6e5e4df1..e01c3ee9ea 100644
--- a/lib/minitasn1/errors.c
+++ b/lib/minitasn1/errors.c
@@ -68,7 +68,7 @@ static const libtasn1_error_entry error_algorithms[] = {
* Since: 1.6
**/
void
-asn1_perror (asn1_retCode error)
+asn1_perror (int error)
{
const char *str = asn1_strerror (error);
fprintf (stderr, "LIBTASN1 ERROR: %s\n", str ? str : "(null)");
@@ -90,7 +90,7 @@ asn1_perror (asn1_retCode error)
* Since: 1.6
**/
const char *
-asn1_strerror (asn1_retCode error)
+asn1_strerror (int error)
{
const libtasn1_error_entry *p;
diff --git a/lib/minitasn1/int.h b/lib/minitasn1/int.h
index ccc473739f..09082845ac 100644
--- a/lib/minitasn1/int.h
+++ b/lib/minitasn1/int.h
@@ -43,7 +43,7 @@
/* This structure is also in libtasn1.h, but then contains less
fields. You cannot make any modifications to these first fields
without breaking ABI. */
-struct node_asn_struct
+struct asn1_node_st
{
/* public fields: */
char name[ASN1_MAX_NAME_SIZE+1]; /* Node name */
@@ -51,9 +51,9 @@ struct node_asn_struct
unsigned int type; /* Node type */
unsigned char *value; /* Node value */
int value_len;
- ASN1_TYPE down; /* Pointer to the son node */
- ASN1_TYPE right; /* Pointer to the brother node */
- ASN1_TYPE left; /* Pointer to the next list element */
+ asn1_node down; /* Pointer to the son node */
+ asn1_node right; /* Pointer to the brother node */
+ asn1_node left; /* Pointer to the next list element */
/* private fields: */
unsigned char small_value[ASN1_SMALL_VALUE_SIZE]; /* For small values */
};
@@ -74,11 +74,11 @@ struct node_asn_struct
/****************************************/
/* Returns the first 8 bits. */
-/* Used with the field type of node_asn */
+/* Used with the field type of asn1_node_st */
/****************************************/
#define type_field(x) (x&0xFF)
-/* List of constants for field type of typedef node_asn */
+/* List of constants for field type of typedef asn1_node_st */
#define TYPE_CONSTANT ASN1_ETYPE_CONSTANT
#define TYPE_IDENTIFIER ASN1_ETYPE_IDENTIFIER
#define TYPE_INTEGER ASN1_ETYPE_INTEGER
@@ -104,7 +104,7 @@ struct node_asn_struct
/***********************************************************************/
-/* List of constants to better specify the type of typedef node_asn. */
+/* List of constants to better specify the type of typedef asn1_node_st. */
/***********************************************************************/
/* Used with TYPE_TAG */
#define CONST_UNIVERSAL (1<<8)
diff --git a/lib/minitasn1/libtasn1.h b/lib/minitasn1/libtasn1.h
index 6293e7d477..5be46d073c 100644
--- a/lib/minitasn1/libtasn1.h
+++ b/lib/minitasn1/libtasn1.h
@@ -46,8 +46,6 @@ extern "C"
#define ASN1_VERSION "3.0"
- typedef int asn1_retCode; /* type returned by libtasn1 functions */
-
/*****************************************/
/* Errors returned by libtasn1 functions */
/*****************************************/
@@ -108,26 +106,25 @@ extern "C"
/* that represent an ASN.1 DEFINITION. */
/******************************************************/
- typedef struct node_asn_struct node_asn;
+ typedef struct asn1_node_st asn1_node_st;
- typedef node_asn *ASN1_TYPE;
+ typedef asn1_node_st *asn1_node;
/* maximum number of characters of a name */
/* inside a file with ASN1 definitons */
#define ASN1_MAX_NAME_SIZE 64
-#define ASN1_TYPE_EMPTY NULL
/*****************************************/
/* For the on-disk format of ASN.1 trees */
/*****************************************/
- struct static_struct_asn
+ struct asn1_static_node_st
{
const char *name; /* Node name */
unsigned int type; /* Node type */
const void *value; /* Node value */
};
- typedef struct static_struct_asn ASN1_ARRAY_TYPE;
+ typedef struct asn1_static_node_st asn1_static_node_t;
/* List of constants for field type of typedef node_asn */
#define ASN1_ETYPE_CONSTANT 1
@@ -153,14 +150,14 @@ extern "C"
#define ASN1_ETYPE_ENUMERATED 21
#define ASN1_ETYPE_GENERALSTRING 27
- struct node_data_struct
+ struct asn1_data_node_st
{
const char *name; /* Node name */
const void *value; /* Node value */
unsigned int value_len; /* Node value size */
unsigned int type; /* Node value type (ASN1_ETYPE_*) */
};
- typedef struct node_data_struct ASN1_DATA_NODE;
+ typedef struct asn1_data_node_st asn1_data_node_st;
/***********************************/
/* Fixed constants */
@@ -176,88 +173,88 @@ extern "C"
/* Functions definitions */
/***********************************/
- extern ASN1_API asn1_retCode
+ extern ASN1_API int
asn1_parser2tree (const char *file_name,
- ASN1_TYPE * definitions, char *errorDescription);
+ asn1_node * definitions, char *errorDescription);
- extern ASN1_API asn1_retCode
+ extern ASN1_API int
asn1_parser2array (const char *inputFileName,
const char *outputFileName,
const char *vectorName, char *errorDescription);
- extern ASN1_API asn1_retCode
- asn1_array2tree (const ASN1_ARRAY_TYPE * array,
- ASN1_TYPE * definitions, char *errorDescription);
+ extern ASN1_API int
+ asn1_array2tree (const asn1_static_node_t * array,
+ asn1_node * definitions, char *errorDescription);
extern ASN1_API void
- asn1_print_structure (FILE * out, ASN1_TYPE structure,
+ asn1_print_structure (FILE * out, asn1_node structure,
const char *name, int mode);
- extern ASN1_API asn1_retCode
- asn1_create_element (ASN1_TYPE definitions,
- const char *source_name, ASN1_TYPE * element);
+ extern ASN1_API int
+ asn1_create_element (asn1_node definitions,
+ const char *source_name, asn1_node * element);
- extern ASN1_API asn1_retCode asn1_delete_structure (ASN1_TYPE * structure);
+ extern ASN1_API int asn1_delete_structure (asn1_node * structure);
- extern ASN1_API asn1_retCode
- asn1_delete_element (ASN1_TYPE structure, const char *element_name);
+ extern ASN1_API int
+ asn1_delete_element (asn1_node structure, const char *element_name);
- extern ASN1_API asn1_retCode
- asn1_write_value (ASN1_TYPE node_root, const char *name,
+ extern ASN1_API int
+ asn1_write_value (asn1_node node_root, const char *name,
const void *ivalue, int len);
- extern ASN1_API asn1_retCode
- asn1_read_value (ASN1_TYPE root, const char *name,
+ extern ASN1_API int
+ asn1_read_value (asn1_node root, const char *name,
void *ivalue, int *len);
- extern ASN1_API asn1_retCode
- asn1_read_node_value (ASN1_TYPE node, ASN1_DATA_NODE* data);
+ extern ASN1_API int
+ asn1_read_node_value (asn1_node node, asn1_data_node_st* data);
- extern ASN1_API asn1_retCode
- asn1_number_of_elements (ASN1_TYPE element, const char *name, int *num);
+ extern ASN1_API int
+ asn1_number_of_elements (asn1_node element, const char *name, int *num);
- extern ASN1_API asn1_retCode
- asn1_der_coding (ASN1_TYPE element, const char *name,
+ extern ASN1_API int
+ asn1_der_coding (asn1_node element, const char *name,
void *ider, int *len, char *ErrorDescription);
- extern ASN1_API asn1_retCode
- asn1_der_decoding (ASN1_TYPE * element, const void *ider,
+ extern ASN1_API int
+ asn1_der_decoding (asn1_node * element, const void *ider,
int len, char *errorDescription);
- extern ASN1_API asn1_retCode
- asn1_der_decoding_element (ASN1_TYPE * structure,
+ extern ASN1_API int
+ asn1_der_decoding_element (asn1_node * structure,
const char *elementName,
const void *ider, int len,
char *errorDescription);
- extern ASN1_API asn1_retCode
- asn1_der_decoding_startEnd (ASN1_TYPE element,
+ extern ASN1_API int
+ asn1_der_decoding_startEnd (asn1_node element,
const void *ider, int len,
const char *name_element,
int *start, int *end);
- extern ASN1_API asn1_retCode
- asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element);
+ extern ASN1_API int
+ asn1_expand_any_defined_by (asn1_node definitions, asn1_node * element);
- extern ASN1_API asn1_retCode
- asn1_expand_octet_string (ASN1_TYPE definitions,
- ASN1_TYPE * element,
+ extern ASN1_API int
+ asn1_expand_octet_string (asn1_node definitions,
+ asn1_node * element,
const char *octetName, const char *objectName);
- extern ASN1_API asn1_retCode
- asn1_read_tag (ASN1_TYPE root, const char *name,
+ extern ASN1_API int
+ asn1_read_tag (asn1_node root, const char *name,
int *tagValue, int *classValue);
- extern ASN1_API const char *asn1_find_structure_from_oid (ASN1_TYPE
+ extern ASN1_API const char *asn1_find_structure_from_oid (asn1_node
definitions,
const char
*oidValue);
extern ASN1_API const char *asn1_check_version (const char *req_version);
- extern ASN1_API const char *asn1_strerror (asn1_retCode error);
+ extern ASN1_API const char *asn1_strerror (int error);
- extern ASN1_API void asn1_perror (asn1_retCode error);
+ extern ASN1_API void asn1_perror (int error);
/* DER utility functions. */
@@ -269,7 +266,7 @@ extern "C"
asn1_octet_der (const unsigned char *str, int str_len,
unsigned char *der, int *der_len);
- extern ASN1_API asn1_retCode
+ extern ASN1_API int
asn1_get_octet_der (const unsigned char *der, int der_len,
int *ret_len, unsigned char *str,
int str_size, int *str_len);
@@ -277,7 +274,7 @@ extern "C"
extern ASN1_API void asn1_bit_der (const unsigned char *str, int bit_len,
unsigned char *der, int *der_len);
- extern ASN1_API asn1_retCode
+ extern ASN1_API int
asn1_get_bit_der (const unsigned char *der, int der_len,
int *ret_len, unsigned char *str,
int str_size, int *bit_len);
@@ -293,12 +290,27 @@ extern "C"
/* Other utility functions. */
- extern ASN1_API ASN1_TYPE
- asn1_find_node (ASN1_TYPE pointer, const char *name);
+ extern ASN1_API asn1_node
+ asn1_find_node (asn1_node pointer, const char *name);
+
+ extern ASN1_API int
+ asn1_copy_node (asn1_node dst, const char *dst_name,
+ asn1_node src, const char *src_name);
+
+/* Compatibility types */
+
+typedef int asn1_retCode; /* type returned by libtasn1 functions */
+
+#define node_asn_struct asn1_node_st
+#define node_asn asn1_node_st
+#define ASN1_TYPE asn1_node
+#define ASN1_TYPE_EMPTY NULL
+
+#define static_struct_asn asn1_static_node_st
+#define ASN1_ARRAY_TYPE asn1_static_node_t
- extern ASN1_API asn1_retCode
- asn1_copy_node (ASN1_TYPE dst, const char *dst_name,
- ASN1_TYPE src, const char *src_name);
+#define node_data_struct asn1_data_node_st
+#define ASN1_DATA_NODE asn1_data_node_st
#ifdef __cplusplus
}
diff --git a/lib/minitasn1/parser_aux.c b/lib/minitasn1/parser_aux.c
index e35bfa423b..96ecac6bb2 100644
--- a/lib/minitasn1/parser_aux.c
+++ b/lib/minitasn1/parser_aux.c
@@ -35,7 +35,7 @@ char _asn1_identifierMissing[ASN1_MAX_NAME_SIZE + 1]; /* identifier name not fou
/***********************************************/
typedef struct list_struct
{
- ASN1_TYPE node;
+ asn1_node node;
struct list_struct *next;
} list_type;
@@ -52,13 +52,13 @@ list_type *firstElement = NULL;
/* and CONST_ constants). */
/* Return: pointer to the new element. */
/******************************************************/
-ASN1_TYPE
+asn1_node
_asn1_add_static_node (unsigned int type)
{
list_type *listElement;
- ASN1_TYPE punt;
+ asn1_node punt;
- punt = calloc (1, sizeof (struct node_asn_struct));
+ punt = calloc (1, sizeof (struct asn1_node_st));
if (punt == NULL)
return NULL;
@@ -90,10 +90,10 @@ _asn1_add_static_node (unsigned int type)
*
* Returns: the search result, or %NULL if not found.
**/
-ASN1_TYPE
-asn1_find_node (ASN1_TYPE pointer, const char *name)
+asn1_node
+asn1_find_node (asn1_node pointer, const char *name)
{
- ASN1_TYPE p;
+ asn1_node p;
char *n_end, n[ASN1_MAX_NAME_SIZE + 1];
const char *n_start;
unsigned int nsize;
@@ -208,8 +208,8 @@ asn1_find_node (ASN1_TYPE pointer, const char *name)
/* len: character number of value. */
/* Return: pointer to the NODE_ASN element. */
/******************************************************************/
-ASN1_TYPE
-_asn1_set_value (ASN1_TYPE node, const void *value, unsigned int len)
+asn1_node
+_asn1_set_value (asn1_node node, const void *value, unsigned int len)
{
if (node == NULL)
return node;
@@ -251,8 +251,8 @@ _asn1_set_value (ASN1_TYPE node, const void *value, unsigned int len)
/* len: character number of value. */
/* Return: pointer to the NODE_ASN element. */
/******************************************************************/
-ASN1_TYPE
-_asn1_set_value_octet (ASN1_TYPE node, const void *value, unsigned int len)
+asn1_node
+_asn1_set_value_octet (asn1_node node, const void *value, unsigned int len)
{
int len2;
void *temp;
@@ -272,8 +272,8 @@ _asn1_set_value_octet (ASN1_TYPE node, const void *value, unsigned int len)
/* the same as _asn1_set_value except that it sets an already malloc'ed
* value.
*/
-ASN1_TYPE
-_asn1_set_value_m (ASN1_TYPE node, void *value, unsigned int len)
+asn1_node
+_asn1_set_value_m (asn1_node node, void *value, unsigned int len)
{
if (node == NULL)
return node;
@@ -305,8 +305,8 @@ _asn1_set_value_m (ASN1_TYPE node, void *value, unsigned int len)
/* len: character number of value. */
/* Return: pointer to the NODE_ASN element. */
/******************************************************************/
-ASN1_TYPE
-_asn1_append_value (ASN1_TYPE node, const void *value, unsigned int len)
+asn1_node
+_asn1_append_value (asn1_node node, const void *value, unsigned int len)
{
if (node == NULL)
return node;
@@ -355,8 +355,8 @@ _asn1_append_value (ASN1_TYPE node, const void *value, unsigned int len)
/* to set. */
/* Return: pointer to the NODE_ASN element. */
/******************************************************************/
-ASN1_TYPE
-_asn1_set_name (ASN1_TYPE node, const char *name)
+asn1_node
+_asn1_set_name (asn1_node node, const char *name)
{
unsigned int nsize;
@@ -384,11 +384,9 @@ unsigned int nsize;
/* src: a source element pointer. */
/* Return: pointer to the NODE_ASN element. */
/******************************************************************/
-ASN1_TYPE
-_asn1_cpy_name (ASN1_TYPE dst, ASN1_TYPE src)
+asn1_node
+_asn1_cpy_name (asn1_node dst, asn1_node src)
{
-unsigned int nsize;
-
if (dst == NULL)
return dst;
@@ -399,7 +397,7 @@ unsigned int nsize;
return dst;
}
- nsize = _asn1_str_cpy (dst->name, sizeof (dst->name), src->name);
+ _asn1_str_cpy (dst->name, sizeof (dst->name), src->name);
dst->name_hash = src->name_hash;
return dst;
@@ -414,8 +412,8 @@ unsigned int nsize;
/* by NODE. */
/* Return: pointer to *NODE. */
/******************************************************************/
-ASN1_TYPE
-_asn1_set_right (ASN1_TYPE node, ASN1_TYPE right)
+asn1_node
+_asn1_set_right (asn1_node node, asn1_node right)
{
if (node == NULL)
return node;
@@ -433,10 +431,10 @@ _asn1_set_right (ASN1_TYPE node, ASN1_TYPE right)
/* node: starting element pointer. */
/* Return: pointer to the last element along the right chain. */
/******************************************************************/
-ASN1_TYPE
-_asn1_get_last_right (ASN1_TYPE node)
+asn1_node
+_asn1_get_last_right (asn1_node node)
{
- ASN1_TYPE p;
+ asn1_node p;
if (node == NULL)
return NULL;
@@ -454,7 +452,7 @@ _asn1_get_last_right (ASN1_TYPE node)
/* node: NODE_ASN element pointer. */
/******************************************************************/
void
-_asn1_remove_node (ASN1_TYPE node)
+_asn1_remove_node (asn1_node node)
{
if (node == NULL)
return;
@@ -471,10 +469,10 @@ _asn1_remove_node (ASN1_TYPE node)
/* node: NODE_ASN element pointer. */
/* Return: Null if not found. */
/******************************************************************/
-ASN1_TYPE
-_asn1_find_up (ASN1_TYPE node)
+asn1_node
+_asn1_find_up (asn1_node node)
{
- ASN1_TYPE p;
+ asn1_node p;
if (node == NULL)
return NULL;
@@ -569,10 +567,10 @@ _asn1_ltostr (long v, char *str)
/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */
/* otherwise ASN1_SUCCESS */
/******************************************************************/
-asn1_retCode
-_asn1_change_integer_value (ASN1_TYPE node)
+int
+_asn1_change_integer_value (asn1_node node)
{
- ASN1_TYPE p;
+ asn1_node p;
unsigned char val[SIZEOF_UNSIGNED_LONG_INT];
unsigned char val2[SIZEOF_UNSIGNED_LONG_INT + 1];
int len;
@@ -636,10 +634,10 @@ _asn1_change_integer_value (ASN1_TYPE node)
/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */
/* otherwise ASN1_SUCCESS */
/******************************************************************/
-asn1_retCode
-_asn1_expand_object_id (ASN1_TYPE node)
+int
+_asn1_expand_object_id (asn1_node node)
{
- ASN1_TYPE p, p2, p3, p4, p5;
+ asn1_node p, p2, p3, p4, p5;
char name_root[ASN1_MAX_NAME_SIZE], name2[2 * ASN1_MAX_NAME_SIZE + 1];
int move, tlen;
@@ -819,10 +817,10 @@ _asn1_expand_object_id (ASN1_TYPE node)
/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */
/* otherwise ASN1_SUCCESS */
/******************************************************************/
-asn1_retCode
-_asn1_type_set_config (ASN1_TYPE node)
+int
+_asn1_type_set_config (asn1_node node)
{
- ASN1_TYPE p, p2;
+ asn1_node p, p2;
int move;
if (node == NULL)
@@ -892,10 +890,10 @@ _asn1_type_set_config (ASN1_TYPE node)
/* ASN1_IDENTIFIER_NOT_FOUND if an identifier is not defined, */
/* otherwise ASN1_SUCCESS */
/******************************************************************/
-asn1_retCode
-_asn1_check_identifier (ASN1_TYPE node)
+int
+_asn1_check_identifier (asn1_node node)
{
- ASN1_TYPE p, p2;
+ asn1_node p, p2;
char name2[ASN1_MAX_NAME_SIZE * 2 + 2];
if (node == NULL)
@@ -999,10 +997,10 @@ _asn1_check_identifier (ASN1_TYPE node)
/* a DEFINITIONS element, */
/* otherwise ASN1_SUCCESS */
/******************************************************************/
-asn1_retCode
-_asn1_set_default_tag (ASN1_TYPE node)
+int
+_asn1_set_default_tag (asn1_node node)
{
- ASN1_TYPE p;
+ asn1_node p;
if ((node == NULL) || (type_field (node->type) != TYPE_DEFINITIONS))
return ASN1_ELEMENT_NOT_FOUND;
diff --git a/lib/minitasn1/parser_aux.h b/lib/minitasn1/parser_aux.h
index f3aeb54fdb..df369c79c6 100644
--- a/lib/minitasn1/parser_aux.h
+++ b/lib/minitasn1/parser_aux.h
@@ -27,28 +27,28 @@
/***************************************/
/* Functions used by ASN.1 parser */
/***************************************/
-ASN1_TYPE _asn1_add_static_node (unsigned int type);
+asn1_node _asn1_add_static_node (unsigned int type);
-ASN1_TYPE
-_asn1_set_value (ASN1_TYPE node, const void *value, unsigned int len);
+asn1_node
+_asn1_set_value (asn1_node node, const void *value, unsigned int len);
-ASN1_TYPE _asn1_set_value_m (ASN1_TYPE node, void *value, unsigned int len);
+asn1_node _asn1_set_value_m (asn1_node node, void *value, unsigned int len);
-ASN1_TYPE
-_asn1_set_value_octet (ASN1_TYPE node, const void *value, unsigned int len);
+asn1_node
+_asn1_set_value_octet (asn1_node node, const void *value, unsigned int len);
-ASN1_TYPE
-_asn1_append_value (ASN1_TYPE node, const void *value, unsigned int len);
+asn1_node
+_asn1_append_value (asn1_node node, const void *value, unsigned int len);
-ASN1_TYPE _asn1_set_name (ASN1_TYPE node, const char *name);
+asn1_node _asn1_set_name (asn1_node node, const char *name);
-ASN1_TYPE _asn1_cpy_name (ASN1_TYPE dst, ASN1_TYPE src);
+asn1_node _asn1_cpy_name (asn1_node dst, asn1_node src);
-ASN1_TYPE _asn1_set_right (ASN1_TYPE node, ASN1_TYPE right);
+asn1_node _asn1_set_right (asn1_node node, asn1_node right);
-ASN1_TYPE _asn1_get_last_right (ASN1_TYPE node);
+asn1_node _asn1_get_last_right (asn1_node node);
-void _asn1_remove_node (ASN1_TYPE node);
+void _asn1_remove_node (asn1_node node);
void _asn1_delete_list (void);
@@ -56,17 +56,17 @@ void _asn1_delete_list_and_nodes (void);
char *_asn1_ltostr (long v, char *str);
-ASN1_TYPE _asn1_find_up (ASN1_TYPE node);
+asn1_node _asn1_find_up (asn1_node node);
-asn1_retCode _asn1_change_integer_value (ASN1_TYPE node);
+int _asn1_change_integer_value (asn1_node node);
-asn1_retCode _asn1_expand_object_id (ASN1_TYPE node);
+int _asn1_expand_object_id (asn1_node node);
-asn1_retCode _asn1_type_set_config (ASN1_TYPE node);
+int _asn1_type_set_config (asn1_node node);
-asn1_retCode _asn1_check_identifier (ASN1_TYPE node);
+int _asn1_check_identifier (asn1_node node);
-asn1_retCode _asn1_set_default_tag (ASN1_TYPE node);
+int _asn1_set_default_tag (asn1_node node);
/******************************************************************/
/* Function : _asn1_get_right */
@@ -76,8 +76,8 @@ asn1_retCode _asn1_set_default_tag (ASN1_TYPE node);
/* node: NODE_ASN element pointer. */
/* Return: field RIGHT of NODE. */
/******************************************************************/
-inline static ASN1_TYPE
-_asn1_get_right (ASN1_TYPE node)
+inline static asn1_node
+_asn1_get_right (asn1_node node)
{
if (node == NULL)
return NULL;
@@ -93,8 +93,8 @@ _asn1_get_right (ASN1_TYPE node)
/* by NODE. */
/* Return: pointer to *NODE. */
/******************************************************************/
-inline static ASN1_TYPE
-_asn1_set_down (ASN1_TYPE node, ASN1_TYPE down)
+inline static asn1_node
+_asn1_set_down (asn1_node node, asn1_node down)
{
if (node == NULL)
return node;
@@ -112,8 +112,8 @@ _asn1_set_down (ASN1_TYPE node, ASN1_TYPE down)
/* node: NODE_ASN element pointer. */
/* Return: field DOWN of NODE. */
/******************************************************************/
-inline static ASN1_TYPE
-_asn1_get_down (ASN1_TYPE node)
+inline static asn1_node
+_asn1_get_down (asn1_node node)
{
if (node == NULL)
return NULL;
@@ -128,7 +128,7 @@ _asn1_get_down (ASN1_TYPE node)
/* Return: a null terminated string. */
/******************************************************************/
inline static char *
-_asn1_get_name (ASN1_TYPE node)
+_asn1_get_name (asn1_node node)
{
if (node == NULL)
return NULL;
@@ -146,8 +146,8 @@ _asn1_get_name (ASN1_TYPE node)
/* value of field TYPE. */
/* Return: NODE pointer. */
/******************************************************************/
-inline static ASN1_TYPE
-_asn1_mod_type (ASN1_TYPE node, unsigned int value)
+inline static asn1_node
+_asn1_mod_type (asn1_node node, unsigned int value)
{
if (node == NULL)
return node;
diff --git a/lib/minitasn1/structure.c b/lib/minitasn1/structure.c
index 7d622ce829..4613d06066 100644
--- a/lib/minitasn1/structure.c
+++ b/lib/minitasn1/structure.c
@@ -44,12 +44,12 @@ extern char _asn1_identifierMissing[];
/* and CONST_ constants). */
/* Return: pointer to the new element. */
/******************************************************/
-ASN1_TYPE
+asn1_node
_asn1_add_single_node (unsigned int type)
{
- ASN1_TYPE punt;
+ asn1_node punt;
- punt = calloc (1, sizeof (struct node_asn_struct));
+ punt = calloc (1, sizeof (struct asn1_node_st));
if (punt == NULL)
return NULL;
@@ -67,8 +67,8 @@ _asn1_add_single_node (unsigned int type)
/* node: NODE_ASN element pointer. */
/* Return: NULL if not found. */
/******************************************************************/
-ASN1_TYPE
-_asn1_find_left (ASN1_TYPE node)
+asn1_node
+_asn1_find_left (asn1_node node)
{
if ((node == NULL) || (node->left == NULL) || (node->left->down == node))
return NULL;
@@ -77,12 +77,12 @@ _asn1_find_left (ASN1_TYPE node)
}
-asn1_retCode
-_asn1_create_static_structure (ASN1_TYPE pointer, char *output_file_name,
+int
+_asn1_create_static_structure (asn1_node pointer, char *output_file_name,
char *vector_name)
{
FILE *file;
- ASN1_TYPE p;
+ asn1_node p;
unsigned long t;
file = fopen (output_file_name, "w");
@@ -96,7 +96,7 @@ _asn1_create_static_structure (ASN1_TYPE pointer, char *output_file_name,
fprintf (file, "#include <libtasn1.h>\n\n");
- fprintf (file, "const ASN1_ARRAY_TYPE %s[] = {\n", vector_name);
+ fprintf (file, "const asn1_static_node_t %s[] = {\n", vector_name);
p = pointer;
@@ -168,22 +168,22 @@ _asn1_create_static_structure (ASN1_TYPE pointer, char *output_file_name,
* @array is a vector created by asn1_parser2array().
*
* Returns: %ASN1_SUCCESS if structure was created correctly,
- * %ASN1_ELEMENT_NOT_EMPTY if *@definitions not ASN1_TYPE_EMPTY,
+ * %ASN1_ELEMENT_NOT_EMPTY if *@definitions not NULL,
* %ASN1_IDENTIFIER_NOT_FOUND if in the file there is an identifier
* that is not defined (see @errorDescription for more information),
* %ASN1_ARRAY_ERROR if the array pointed by @array is wrong.
**/
-asn1_retCode
-asn1_array2tree (const ASN1_ARRAY_TYPE * array, ASN1_TYPE * definitions,
+int
+asn1_array2tree (const asn1_static_node_t * array, asn1_node * definitions,
char *errorDescription)
{
- ASN1_TYPE p, p_last = NULL;
+ asn1_node p, p_last = NULL;
unsigned long k;
int move;
- asn1_retCode result;
+ int result;
- if (*definitions != ASN1_TYPE_EMPTY)
+ if (*definitions != NULL)
return ASN1_ELEMENT_NOT_EMPTY;
move = UP;
@@ -263,7 +263,7 @@ asn1_array2tree (const ASN1_ARRAY_TYPE * array, ASN1_TYPE * definitions,
if (result != ASN1_SUCCESS)
{
_asn1_delete_list_and_nodes ();
- *definitions = ASN1_TYPE_EMPTY;
+ *definitions = NULL;
}
else
_asn1_delete_list ();
@@ -276,17 +276,17 @@ asn1_array2tree (const ASN1_ARRAY_TYPE * array, ASN1_TYPE * definitions,
* @structure: pointer to the structure that you want to delete.
*
* Deletes the structure *@structure. At the end, *@structure is set
- * to ASN1_TYPE_EMPTY.
+ * to NULL.
*
* Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
- * *@structure was ASN1_TYPE_EMPTY.
+ * *@structure was NULL.
**/
-asn1_retCode
-asn1_delete_structure (ASN1_TYPE * structure)
+int
+asn1_delete_structure (asn1_node * structure)
{
- ASN1_TYPE p, p2, p3;
+ asn1_node p, p2, p3;
- if (*structure == ASN1_TYPE_EMPTY)
+ if (*structure == NULL)
return ASN1_ELEMENT_NOT_FOUND;
p = *structure;
@@ -328,7 +328,7 @@ asn1_delete_structure (ASN1_TYPE * structure)
}
}
- *structure = ASN1_TYPE_EMPTY;
+ *structure = NULL;
return ASN1_SUCCESS;
}
@@ -345,14 +345,14 @@ asn1_delete_structure (ASN1_TYPE * structure)
* Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
* the @element_name was not found.
**/
-asn1_retCode
-asn1_delete_element (ASN1_TYPE structure, const char *element_name)
+int
+asn1_delete_element (asn1_node structure, const char *element_name)
{
- ASN1_TYPE p2, p3, source_node;
+ asn1_node p2, p3, source_node;
source_node = asn1_find_node (structure, element_name);
- if (source_node == ASN1_TYPE_EMPTY)
+ if (source_node == NULL)
return ASN1_ELEMENT_NOT_FOUND;
p2 = source_node->right;
@@ -371,10 +371,10 @@ asn1_delete_element (ASN1_TYPE structure, const char *element_name)
return asn1_delete_structure (&source_node);
}
-ASN1_TYPE
-_asn1_copy_structure3 (ASN1_TYPE source_node)
+asn1_node
+_asn1_copy_structure3 (asn1_node source_node)
{
- ASN1_TYPE dest_node, p_s, p_d, p_d_prev;
+ asn1_node dest_node, p_s, p_d, p_d_prev;
int move;
if (source_node == NULL)
@@ -429,10 +429,10 @@ _asn1_copy_structure3 (ASN1_TYPE source_node)
}
-static ASN1_TYPE
-_asn1_copy_structure2 (ASN1_TYPE root, const char *source_name)
+static asn1_node
+_asn1_copy_structure2 (asn1_node root, const char *source_name)
{
- ASN1_TYPE source_node;
+ asn1_node source_node;
source_node = asn1_find_node (root, source_name);
@@ -441,10 +441,10 @@ _asn1_copy_structure2 (ASN1_TYPE root, const char *source_name)
}
-static asn1_retCode
-_asn1_type_choice_config (ASN1_TYPE node)
+static int
+_asn1_type_choice_config (asn1_node node)
{
- ASN1_TYPE p, p2, p3, p4;
+ asn1_node p, p2, p3, p4;
int move, tlen;
if (node == NULL)
@@ -526,10 +526,10 @@ _asn1_type_choice_config (ASN1_TYPE node)
}
-static asn1_retCode
-_asn1_expand_identifier (ASN1_TYPE * node, ASN1_TYPE root)
+static int
+_asn1_expand_identifier (asn1_node * node, asn1_node root)
{
- ASN1_TYPE p, p2, p3;
+ asn1_node p, p2, p3;
char name2[ASN1_MAX_NAME_SIZE + 2];
int move;
@@ -648,11 +648,11 @@ _asn1_expand_identifier (ASN1_TYPE * node, ASN1_TYPE root)
* Returns: %ASN1_SUCCESS if creation OK, %ASN1_ELEMENT_NOT_FOUND if
* @source_name is not known.
**/
-asn1_retCode
-asn1_create_element (ASN1_TYPE definitions, const char *source_name,
- ASN1_TYPE * element)
+int
+asn1_create_element (asn1_node definitions, const char *source_name,
+ asn1_node * element)
{
- ASN1_TYPE dest_node;
+ asn1_node dest_node;
int res;
dest_node = _asn1_copy_structure2 (definitions, source_name);
@@ -684,10 +684,10 @@ asn1_create_element (ASN1_TYPE definitions, const char *source_name,
* from the @name element inside the structure @structure.
**/
void
-asn1_print_structure (FILE * out, ASN1_TYPE structure, const char *name,
+asn1_print_structure (FILE * out, asn1_node structure, const char *name,
int mode)
{
- ASN1_TYPE p, root;
+ asn1_node p, root;
int k, indent = 0, len, len2, len3;
if (out == NULL)
@@ -1047,10 +1047,10 @@ asn1_print_structure (FILE * out, ASN1_TYPE structure, const char *name,
* Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
* @name is not known, %ASN1_GENERIC_ERROR if pointer @num is %NULL.
**/
-asn1_retCode
-asn1_number_of_elements (ASN1_TYPE element, const char *name, int *num)
+int
+asn1_number_of_elements (asn1_node element, const char *name, int *num)
{
- ASN1_TYPE node, p;
+ asn1_node node, p;
if (num == NULL)
return ASN1_GENERIC_ERROR;
@@ -1086,15 +1086,15 @@ asn1_number_of_elements (ASN1_TYPE element, const char *name, int *num)
* the OID.
**/
const char *
-asn1_find_structure_from_oid (ASN1_TYPE definitions, const char *oidValue)
+asn1_find_structure_from_oid (asn1_node definitions, const char *oidValue)
{
char definitionsName[ASN1_MAX_NAME_SIZE], name[2 * ASN1_MAX_NAME_SIZE + 1];
char value[ASN1_MAX_NAME_SIZE];
- ASN1_TYPE p;
+ asn1_node p;
int len;
- asn1_retCode result;
+ int result;
- if ((definitions == ASN1_TYPE_EMPTY) || (oidValue == NULL))
+ if ((definitions == NULL) || (oidValue == NULL))
return NULL; /* ASN1_ELEMENT_NOT_FOUND; */
@@ -1131,24 +1131,24 @@ asn1_find_structure_from_oid (ASN1_TYPE definitions, const char *oidValue)
/**
* asn1_copy_node:
- * @dst: Destination ASN1_TYPE node.
+ * @dst: Destination asn1_node node.
* @dst_name: Field name in destination node.
- * @src: Source ASN1_TYPE node.
+ * @src: Source asn1_node node.
* @src_name: Field name in source node.
*
- * Create a deep copy of a ASN1_TYPE variable.
+ * Create a deep copy of a asn1_node variable.
*
* Returns: Return %ASN1_SUCCESS on success.
**/
-asn1_retCode
-asn1_copy_node (ASN1_TYPE dst, const char *dst_name,
- ASN1_TYPE src, const char *src_name)
+int
+asn1_copy_node (asn1_node dst, const char *dst_name,
+ asn1_node src, const char *src_name)
{
/* FIXME: rewrite using copy_structure().
* It seems quite hard to do.
*/
int result;
- ASN1_TYPE dst_node;
+ asn1_node dst_node;
void *data = NULL;
int size = 0;
diff --git a/lib/minitasn1/structure.h b/lib/minitasn1/structure.h
index cf4205b864..986e13a309 100644
--- a/lib/minitasn1/structure.h
+++ b/lib/minitasn1/structure.h
@@ -28,14 +28,14 @@
#ifndef _STRUCTURE_H
#define _STRUCTURE_H
-asn1_retCode _asn1_create_static_structure (ASN1_TYPE pointer,
+int _asn1_create_static_structure (asn1_node pointer,
char *output_file_name,
char *vector_name);
-ASN1_TYPE _asn1_copy_structure3 (ASN1_TYPE source_node);
+asn1_node _asn1_copy_structure3 (asn1_node source_node);
-ASN1_TYPE _asn1_add_single_node (unsigned int type);
+asn1_node _asn1_add_single_node (unsigned int type);
-ASN1_TYPE _asn1_find_left (ASN1_TYPE node);
+asn1_node _asn1_find_left (asn1_node node);
#endif