]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Upgrade to libtasn1 2.5 snapshot, for GTK-DOC comments.
authorSimon Josefsson <simon@josefsson.org>
Wed, 17 Feb 2010 12:47:39 +0000 (13:47 +0100)
committerSimon Josefsson <simon@josefsson.org>
Wed, 17 Feb 2010 12:47:39 +0000 (13:47 +0100)
lib/minitasn1/coding.c
lib/minitasn1/decoding.c
lib/minitasn1/element.c
lib/minitasn1/errors.c
lib/minitasn1/libtasn1.h
lib/minitasn1/parser_aux.c
lib/minitasn1/structure.c

index 11df3fc9959c687f9377262dcb6d790d6c88bd74..9a28b12947e843674461cc1eab6540c14118740d 100644 (file)
@@ -843,32 +843,31 @@ _asn1_ordering_set_of (unsigned char *der, int der_len, ASN1_TYPE node)
 }
 
 /**
-  * asn1_der_coding - Creates the DER encoding for the NAME structure
-  * @element: pointer to an ASN1 element
-  * @name: the name of the structure you want to encode (it must be
-  *   inside *POINTER).
-  * @ider: vector that will contain the DER encoding. DER must be a
-  *   pointer to memory cells already allocated.
-  * @len: number of bytes of *@ider: @ider[0]..@ider[len-1], Initialy
-  *   holds the sizeof of der vector.
-  * @errorDescription : return the error description or an empty
-  *   string if success.
-  *
-  * Creates the DER encoding for the NAME structure (inside *POINTER
-  * structure).
-  *
-  * Returns:
-  *
-  *   ASN1_SUCCESS: DER encoding OK.
-  *
-  *   ASN1_ELEMENT_NOT_FOUND: NAME is not a valid element.
-  *
-  *   ASN1_VALUE_NOT_FOUND: There is an element without a value.
-  *
-  *   ASN1_MEM_ERROR: @ider vector isn't big enough. Also in this case
-  *     LEN will contain the length needed.
-  *
-  **/
+ * asn1_der_coding:
+ * @element: pointer to an ASN1 element
+ * @name: the name of the structure you want to encode (it must be
+ *   inside *POINTER).
+ * @ider: vector that will contain the DER encoding. DER must be a
+ *   pointer to memory cells already allocated.
+ * @len: number of bytes of *@ider: @ider[0]..@ider[len-1], Initialy
+ *   holds the sizeof of der vector.
+ * @errorDescription : return the error description or an empty
+ *   string if success.
+ *
+ * Creates the DER encoding for the NAME structure (inside *POINTER
+ * structure).
+ *
+ * Returns:
+ *
+ *   %ASN1_SUCCESS: DER encoding OK.
+ *
+ *   %ASN1_ELEMENT_NOT_FOUND: NAME is not a valid element.
+ *
+ *   %ASN1_VALUE_NOT_FOUND: There is an element without a value.
+ *
+ *   %ASN1_MEM_ERROR: @ider vector isn't big enough. Also in this case
+ *     LEN will contain the length needed.
+ **/
 asn1_retCode
 asn1_der_coding (ASN1_TYPE element, const char *name, void *ider, int *len,
                 char *ErrorDescription)
index da64510f0d87c691a222c89cd564826e0819a607..6875baf2e32830b94bcadecfac15ba7bc6839174 100644 (file)
@@ -112,7 +112,7 @@ asn1_get_length_der (const unsigned char *der, int der_len, int *len)
  *
  * Decode the class and TAG from DER code.
  *
- * Return value: Returns ASN1_SUCCESS on success, or an error.
+ * Return value: Returns %ASN1_SUCCESS on success, or an error.
  **/
 int
 asn1_get_tag_der (const unsigned char *der, int der_len,
@@ -203,7 +203,7 @@ asn1_get_length_ber (const unsigned char *ber, int ber_len, int *len)
  *
  * Extract an OCTET SEQUENCE from DER data.
  *
- * Return value: Returns ASN1_SUCCESS on success, or an error.
+ * Return value: Returns %ASN1_SUCCESS on success, or an error.
  **/
 int
 asn1_get_octet_der (const unsigned char *der, int der_len,
@@ -328,7 +328,7 @@ _asn1_get_objectid_der (const unsigned char *der, int der_len, int *ret_len,
  *
  * Extract a BIT SEQUENCE from DER data.
  *
- * Return value: Return ASN1_SUCCESS on success, or an error.
+ * Return value: Return %ASN1_SUCCESS on success, or an error.
  **/
 int
 asn1_get_bit_der (const unsigned char *der, int der_len,
@@ -798,29 +798,28 @@ _asn1_get_indefinite_length_string (const unsigned char *der, int *len)
 
 
 /**
-  * asn1_der_decoding - Fill the structure *ELEMENT with values of a DER encoding string.
-  * @element: pointer to an ASN1 structure.
-  * @ider: vector that contains the DER encoding.
-  * @len: number of bytes of *@ider: @ider[0]..@ider[len-1].
-  * @errorDescription: null-terminated string contains details when an
-  *   error occurred.
-  *
-  * Fill the structure *ELEMENT with values of a DER encoding
-  * 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.
-  *
-  * Returns:
-  *
-  *   ASN1_SUCCESS: DER encoding OK.
-  *
-  *   ASN1_ELEMENT_NOT_FOUND: ELEMENT is ASN1_TYPE_EMPTY.
-  *
-  *   ASN1_TAG_ERROR,ASN1_DER_ERROR: The der encoding doesn't match
-  *     the structure NAME. *ELEMENT deleted.
-  **/
-
+ * asn1_der_decoding:
+ * @element: pointer to an ASN1 structure.
+ * @ider: vector that contains the DER encoding.
+ * @len: number of bytes of *@ider: @ider[0]..@ider[len-1].
+ * @errorDescription: null-terminated string contains details when an
+ *   error occurred.
+ *
+ * Fill the structure *ELEMENT with values of a DER encoding
+ * 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.
+ *
+ * Returns:
+ *
+ *   %ASN1_SUCCESS: DER encoding OK.
+ *
+ *   %ASN1_ELEMENT_NOT_FOUND: ELEMENT is ASN1_TYPE_EMPTY.
+ *
+ *   %ASN1_TAG_ERROR,ASN1_DER_ERROR: The der encoding doesn't match
+ *     the structure NAME. *ELEMENT deleted.
+ **/
 asn1_retCode
 asn1_der_decoding (ASN1_TYPE * element, const void *ider, int len,
                   char *errorDescription)
@@ -1355,32 +1354,31 @@ asn1_der_decoding (ASN1_TYPE * element, const void *ider, int len,
 #define EXIT         4
 
 /**
-  * asn1_der_decoding_element - Fill the element named ELEMENTNAME of the structure STRUCTURE with values of a DER encoding string.
-  * @structure: pointer to an ASN1 structure
-  * @elementName: name of the element to fill
-  * @ider: vector that contains the DER encoding of the whole structure.
-  * @len: number of bytes of *der: der[0]..der[len-1]
-  * @errorDescription: null-terminated string contains details when an
-  *   error occurred.
-  *
-  * Fill the element named ELEMENTNAME with values of a DER encoding
-  * string.  The structure must just be created with function
-  * '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.
-  *
-  * Returns:
-  *
-  *   ASN1_SUCCESS: DER encoding OK.
-  *
-  *   ASN1_ELEMENT_NOT_FOUND: ELEMENT is ASN1_TYPE_EMPTY or
-  *     elementName == NULL.
-  *
-  *   ASN1_TAG_ERROR,ASN1_DER_ERROR: The der encoding doesn't match
-  *   the structure STRUCTURE. *ELEMENT deleted.
-  *
-  **/
+ * asn1_der_decoding_element:
+ * @structure: pointer to an ASN1 structure
+ * @elementName: name of the element to fill
+ * @ider: vector that contains the DER encoding of the whole structure.
+ * @len: number of bytes of *der: der[0]..der[len-1]
+ * @errorDescription: null-terminated string contains details when an
+ *   error occurred.
+ *
+ * Fill the element named ELEMENTNAME with values of a DER encoding
+ * string.  The structure must just be created with function
+ * '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.
+ *
+ * Returns:
+ *
+ *   %ASN1_SUCCESS: DER encoding OK.
+ *
+ *   %ASN1_ELEMENT_NOT_FOUND: ELEMENT is ASN1_TYPE_EMPTY or
+ *     elementName == NULL.
+ *
+ *   %ASN1_TAG_ERROR,ASN1_DER_ERROR: The der encoding doesn't match
+ *   the structure STRUCTURE. *ELEMENT deleted.
+ **/
 asn1_retCode
 asn1_der_decoding_element (ASN1_TYPE * structure, const char *elementName,
                           const void *ider, int len, char *errorDescription)
@@ -2128,35 +2126,34 @@ asn1_der_decoding_element (ASN1_TYPE * structure, const char *elementName,
 
 
 /**
-  * asn1_der_decoding_startEnd - Find the start and end point of an element in a DER encoding string.
-  * @element: pointer to an ASN1 element
-  * @ider: vector that contains the DER encoding.
-  * @len: number of bytes of *@ider: @ider[0]..@ider[len-1]
-  * @name_element: an element of NAME structure.
-  * @start: the position of the first byte of NAME_ELEMENT decoding
-  *   (@ider[*start])
-  * @end: the position of the last byte of NAME_ELEMENT decoding
-  *  (@ider[*end])
-  *
-  * Find the start and end point of an element in a DER encoding
-  * string. I mean that if you have a der encoding and you have
-  * already used the function "asn1_der_decoding" to fill a structure,
-  * it may happen that you want to find the piece of string concerning
-  * an element of the structure.
-  *
-  * Example: the sequence "tbsCertificate" inside an X509 certificate.
-  *
-  * Returns:
-  *
-  *   ASN1_SUCCESS: DER encoding OK.
-  *
-  *   ASN1_ELEMENT_NOT_FOUND: ELEMENT is ASN1_TYPE EMPTY or
-  *   NAME_ELEMENT is not a valid element.
-  *
-  *   ASN1_TAG_ERROR,ASN1_DER_ERROR: the der encoding doesn't match
-  *   the structure ELEMENT.
-  *
-  **/
+ * asn1_der_decoding_startEnd:
+ * @element: pointer to an ASN1 element
+ * @ider: vector that contains the DER encoding.
+ * @len: number of bytes of *@ider: @ider[0]..@ider[len-1]
+ * @name_element: an element of NAME structure.
+ * @start: the position of the first byte of NAME_ELEMENT decoding
+ *   (@ider[*start])
+ * @end: the position of the last byte of NAME_ELEMENT decoding
+ *  (@ider[*end])
+ *
+ * Find the start and end point of an element in a DER encoding
+ * string. I mean that if you have a der encoding and you have already
+ * used the function "asn1_der_decoding" to fill a structure, it may
+ * happen that you want to find the piece of string concerning an
+ * element of the structure.
+ *
+ * Example: the sequence "tbsCertificate" inside an X509 certificate.
+ *
+ * Returns:
+ *
+ *   %ASN1_SUCCESS: DER encoding OK.
+ *
+ *   %ASN1_ELEMENT_NOT_FOUND: ELEMENT is ASN1_TYPE EMPTY or
+ *   NAME_ELEMENT is not a valid element.
+ *
+ *   %ASN1_TAG_ERROR,ASN1_DER_ERROR: the der encoding doesn't match
+ *   the structure ELEMENT.
+ **/
 asn1_retCode
 asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
                            const char *name_element, int *start, int *end)
@@ -2480,27 +2477,25 @@ asn1_der_decoding_startEnd (ASN1_TYPE element, const void *ider, int len,
 
 
 /**
-  * asn1_expand_any_defined_by - Expand "ANY DEFINED BY" fields in structure.
-  * @definitions: ASN1 definitions
-  * @element: pointer to an ASN1 structure
-  *
-  * Expands every "ANY DEFINED BY" element of a structure created from
-  * a DER decoding process (asn1_der_decoding function). The element ANY
-  * must be defined by an OBJECT IDENTIFIER. The type used to expand
-  * the element ANY is the first one following the definition of
-  * the actual value of the OBJECT IDENTIFIER.
-  *
-  *
-  * Returns:
-  *
-  *   ASN1_SUCCESS: Substitution OK.
-  *
-  *   ASN1_ERROR_TYPE_ANY: Some "ANY DEFINED BY" element couldn't be
-  *   expanded due to a problem in OBJECT_ID -> TYPE association.
-  *
-  *   other errors: Result of der decoding process.
-  **/
-
+ * asn1_expand_any_defined_by:
+ * @definitions: ASN1 definitions
+ * @element: pointer to an ASN1 structure
+ *
+ * Expands every "ANY DEFINED BY" element of a structure created from
+ * a DER decoding process (asn1_der_decoding function). The element
+ * ANY must be defined by an OBJECT IDENTIFIER. The type used to
+ * expand the element ANY is the first one following the definition of
+ * the actual value of the OBJECT IDENTIFIER.
+ *
+ * Returns:
+ *
+ *   %ASN1_SUCCESS: Substitution OK.
+ *
+ *   %ASN1_ERROR_TYPE_ANY: Some "ANY DEFINED BY" element couldn't be
+ *   expanded due to a problem in OBJECT_ID -> TYPE association.
+ *
+ *   other errors: Result of der decoding process.
+ **/
 asn1_retCode
 asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
 {
@@ -2716,29 +2711,29 @@ asn1_expand_any_defined_by (ASN1_TYPE definitions, ASN1_TYPE * element)
 
 
 /**
-  * asn1_expand_octet_string - Expand "OCTET STRING" fields in structure.
 * @definitions: ASN1 definitions
 * @element: pointer to an ASN1 structure
 * @octetName: name of the OCTECT STRING field to expand.
 * @objectName: name of the OBJECT IDENTIFIER field to use to define
 *    the type for expansion.
 *
-  * Expands an "OCTET STRING" element of a structure created from a
-  * DER decoding process (asn1_der_decoding function). The type used
-  * for expansion is the first one following the definition of the
 * actual value of the OBJECT IDENTIFIER indicated by OBJECTNAME.
 *
 * Returns:
 *
 *   ASN1_SUCCESS: Substitution OK.
 *
 *   ASN1_ELEMENT_NOT_FOUND: OBJECTNAME or OCTETNAME are not correct.
 *
 *   ASN1_VALUE_NOT_VALID: Wasn't possible to find the type to use
 *       for expansion.
 *
 *   other errors: result of der decoding process.
 **/
+ * asn1_expand_octet_string:
+ * @definitions: ASN1 definitions
+ * @element: pointer to an ASN1 structure
+ * @octetName: name of the OCTECT STRING field to expand.
+ * @objectName: name of the OBJECT IDENTIFIER field to use to define
+ *    the type for expansion.
+ *
+ * Expands an "OCTET STRING" element of a structure created from a DER
+ * decoding process (asn1_der_decoding function). The type used for
+ * expansion is the first one following the definition of the actual
* value of the OBJECT IDENTIFIER indicated by OBJECTNAME.
+ *
+ * Returns:
+ *
*   %ASN1_SUCCESS: Substitution OK.
+ *
*   %ASN1_ELEMENT_NOT_FOUND: @objectName or @octetName are not correct.
+ *
*   %ASN1_VALUE_NOT_VALID: Wasn't possible to find the type to use
+ *       for expansion.
+ *
+ *   other errors: result of der decoding process.
+ **/
 asn1_retCode
 asn1_expand_octet_string (ASN1_TYPE definitions, ASN1_TYPE * element,
                          const char *octetName, const char *objectName)
index 09a6a9fb1d23fdb7872ee8480a8c143b435348b0..51ade14f3b69fb68d47708646b9150593b1ebf42 100644 (file)
@@ -163,116 +163,115 @@ _asn1_append_sequence_set (ASN1_TYPE node)
 
 
 /**
-  * asn1_write_value - Set the value of one element inside a structure.
-  * @node_root: pointer to a structure
-  * @name: the name of the element inside the structure that you want to set.
-  * @ivalue: vector used to specify the value to set. If len is >0,
-  *   VALUE must be a two's complement form integer.  if len=0 *VALUE
-  *   must be a null terminated string with an integer value.
-  * @len: number of bytes of *value to use to set the value:
-  *   value[0]..value[len-1] or 0 if value is a null terminated string
-  *
-  * Set the value of one element inside a structure.
-  *
-  * If an element is OPTIONAL and you want to delete it, you must use
-  * the value=NULL and len=0.  Using "pkix.asn":
-  *
-  * result=asn1_write_value(cert, "tbsCertificate.issuerUniqueID",
-  * NULL, 0);
-  *
-  * Description for each type:
-  *
-  * INTEGER: VALUE must contain a two's complement form integer.
-  *
-  *            value[0]=0xFF ,               len=1 -> integer=-1.
-  *            value[0]=0xFF value[1]=0xFF , len=2 -> integer=-1.
-  *            value[0]=0x01 ,               len=1 -> integer= 1.
-  *            value[0]=0x00 value[1]=0x01 , len=2 -> integer= 1.
-  *            value="123"                 , len=0 -> integer= 123.
-  *
-  * ENUMERATED: As INTEGER (but only with not negative numbers).
-  *
-  * BOOLEAN: VALUE must be the null terminated string "TRUE" or
-  *   "FALSE" and LEN != 0.
-  *
-  *            value="TRUE" , len=1 -> boolean=TRUE.
-  *            value="FALSE" , len=1 -> boolean=FALSE.
-  *
-  * OBJECT IDENTIFIER: VALUE must be a null terminated string with
-  *   each number separated by a dot (e.g. "1.2.3.543.1").  LEN != 0.
-  *
-  *            value="1 2 840 10040 4 3" , len=1 -> OID=dsa-with-sha.
-  *
-  * UTCTime: VALUE must be a null terminated string in one of these
-  *   formats: "YYMMDDhhmmssZ", "YYMMDDhhmmssZ",
-  *   "YYMMDDhhmmss+hh'mm'", "YYMMDDhhmmss-hh'mm'",
-  *   "YYMMDDhhmm+hh'mm'", or "YYMMDDhhmm-hh'mm'".  LEN != 0.
-  *
-  *            value="9801011200Z" , len=1 -> time=Jannuary 1st, 1998
-  *            at 12h 00m Greenwich Mean Time
-  *
-  * GeneralizedTime: VALUE must be in one of this format:
-  *   "YYYYMMDDhhmmss.sZ", "YYYYMMDDhhmmss.sZ",
-  *   "YYYYMMDDhhmmss.s+hh'mm'", "YYYYMMDDhhmmss.s-hh'mm'",
-  *   "YYYYMMDDhhmm+hh'mm'", or "YYYYMMDDhhmm-hh'mm'" where ss.s
-  *   indicates the seconds with any precision like "10.1" or "01.02".
-  *   LEN != 0
-  *
-  *            value="2001010112001.12-0700" , len=1 -> time=Jannuary
-  *            1st, 2001 at 12h 00m 01.12s Pacific Daylight Time
-  *
-  * OCTET STRING: VALUE contains the octet string and LEN is the
-  *   number of octets.
-  *
-  *            value="$\backslash$x01$\backslash$x02$\backslash$x03" ,
-  *            len=3 -> three bytes octet string
-  *
-  * GeneralString: VALUE contains the generalstring and LEN is the
-  *   number of octets.
-  *
-  *            value="$\backslash$x01$\backslash$x02$\backslash$x03" ,
-  *            len=3 -> three bytes generalstring
-  *
-  * BIT STRING: VALUE contains the bit string organized by bytes and
-  *   LEN is the number of bits.
-  *
-  *   value="$\backslash$xCF" , len=6 -> bit string="110011" (six
-  *   bits)
-  *
-  * CHOICE: if NAME indicates a choice type, VALUE must specify one of
-  *   the alternatives with a null terminated string. LEN != 0. Using
-  *   "pkix.asn"\:
-  *
-  *           result=asn1_write_value(cert,
-  *           "certificate1.tbsCertificate.subject", "rdnSequence",
-  *           1);
-  *
-  * ANY: VALUE indicates the der encoding of a structure.  LEN != 0.
-  *
-  * SEQUENCE OF: VALUE must be the null terminated string "NEW" and
-  *   LEN != 0. With this instruction another element is appended in
-  *   the sequence. The name of this element will be "?1" if it's the
-  *   first one, "?2" for the second and so on.
-  *
-  *   Using "pkix.asn"\:
-  *
-  *   result=asn1_write_value(cert,
-  *   "certificate1.tbsCertificate.subject.rdnSequence", "NEW", 1);
-  *
-  * SET OF: the same as SEQUENCE OF.  Using "pkix.asn":
-  *
-  *           result=asn1_write_value(cert,
-  *           "tbsCertificate.subject.rdnSequence.?LAST", "NEW", 1);
-  *
-  * Returns:
-  *
-  *   ASN1_SUCCESS: Set value OK.
-  *
-  *   ASN1_ELEMENT_NOT_FOUND: NAME is not a valid element.
-  *
-  *   ASN1_VALUE_NOT_VALID: VALUE has a wrong format.
-  *
-  **/
+ * asn1_write_value:
+ * @node_root: pointer to a structure
+ * @name: the name of the element inside the structure that you want to set.
+ * @ivalue: vector used to specify the value to set. If len is >0,
+ *   VALUE must be a two's complement form integer.  if len=0 *VALUE
+ *   must be a null terminated string with an integer value.
+ * @len: number of bytes of *value to use to set the value:
+ *   value[0]..value[len-1] or 0 if value is a null terminated string
+ *
+ * Set the value of one element inside a structure.
+ *
+ * If an element is OPTIONAL and you want to delete it, you must use
+ * the value=NULL and len=0.  Using "pkix.asn":
+ *
+ * result=asn1_write_value(cert, "tbsCertificate.issuerUniqueID",
+ * NULL, 0);
+ *
+ * Description for each type:
+ *
+ * INTEGER: VALUE must contain a two's complement form integer.
+ *
+ *            value[0]=0xFF ,               len=1 -> integer=-1.
+ *            value[0]=0xFF value[1]=0xFF , len=2 -> integer=-1.
+ *            value[0]=0x01 ,               len=1 -> integer= 1.
+ *            value[0]=0x00 value[1]=0x01 , len=2 -> integer= 1.
+ *            value="123"                 , len=0 -> integer= 123.
+ *
+ * ENUMERATED: As INTEGER (but only with not negative numbers).
+ *
+ * BOOLEAN: VALUE must be the null terminated string "TRUE" or
+ *   "FALSE" and LEN != 0.
+ *
+ *            value="TRUE" , len=1 -> boolean=TRUE.
+ *            value="FALSE" , len=1 -> boolean=FALSE.
+ *
+ * OBJECT IDENTIFIER: VALUE must be a null terminated string with
+ *   each number separated by a dot (e.g. "1.2.3.543.1").  LEN != 0.
+ *
+ *            value="1 2 840 10040 4 3" , len=1 -> OID=dsa-with-sha.
+ *
+ * UTCTime: VALUE must be a null terminated string in one of these
+ *   formats: "YYMMDDhhmmssZ", "YYMMDDhhmmssZ",
+ *   "YYMMDDhhmmss+hh'mm'", "YYMMDDhhmmss-hh'mm'",
+ *   "YYMMDDhhmm+hh'mm'", or "YYMMDDhhmm-hh'mm'".  LEN != 0.
+ *
+ *            value="9801011200Z" , len=1 -> time=Jannuary 1st, 1998
+ *            at 12h 00m Greenwich Mean Time
+ *
+ * GeneralizedTime: VALUE must be in one of this format:
+ *   "YYYYMMDDhhmmss.sZ", "YYYYMMDDhhmmss.sZ",
+ *   "YYYYMMDDhhmmss.s+hh'mm'", "YYYYMMDDhhmmss.s-hh'mm'",
+ *   "YYYYMMDDhhmm+hh'mm'", or "YYYYMMDDhhmm-hh'mm'" where ss.s
+ *   indicates the seconds with any precision like "10.1" or "01.02".
+ *   LEN != 0
+ *
+ *            value="2001010112001.12-0700" , len=1 -> time=Jannuary
+ *            1st, 2001 at 12h 00m 01.12s Pacific Daylight Time
+ *
+ * OCTET STRING: VALUE contains the octet string and LEN is the
+ *   number of octets.
+ *
+ *            value="$\backslash$x01$\backslash$x02$\backslash$x03" ,
+ *            len=3 -> three bytes octet string
+ *
+ * GeneralString: VALUE contains the generalstring and LEN is the
+ *   number of octets.
+ *
+ *            value="$\backslash$x01$\backslash$x02$\backslash$x03" ,
+ *            len=3 -> three bytes generalstring
+ *
+ * BIT STRING: VALUE contains the bit string organized by bytes and
+ *   LEN is the number of bits.
+ *
+ *   value="$\backslash$xCF" , len=6 -> bit string="110011" (six
+ *   bits)
+ *
+ * CHOICE: if NAME indicates a choice type, VALUE must specify one of
+ *   the alternatives with a null terminated string. LEN != 0. Using
+ *   "pkix.asn"\:
+ *
+ *           result=asn1_write_value(cert,
+ *           "certificate1.tbsCertificate.subject", "rdnSequence",
+ *           1);
+ *
+ * ANY: VALUE indicates the der encoding of a structure.  LEN != 0.
+ *
+ * SEQUENCE OF: VALUE must be the null terminated string "NEW" and
+ *   LEN != 0. With this instruction another element is appended in
+ *   the sequence. The name of this element will be "?1" if it's the
+ *   first one, "?2" for the second and so on.
+ *
+ *   Using "pkix.asn"\:
+ *
+ *   result=asn1_write_value(cert,
+ *   "certificate1.tbsCertificate.subject.rdnSequence", "NEW", 1);
+ *
+ * SET OF: the same as SEQUENCE OF.  Using "pkix.asn":
+ *
+ *           result=asn1_write_value(cert,
+ *           "tbsCertificate.subject.rdnSequence.?LAST", "NEW", 1);
+ *
+ * Returns:
+ *
+ *   %ASN1_SUCCESS: Set value OK.
+ *
+ *   %ASN1_ELEMENT_NOT_FOUND: NAME is not a valid element.
+ *
+ *   %ASN1_VALUE_NOT_VALID: VALUE has a wrong format.
+ **/
 asn1_retCode
 asn1_write_value (ASN1_TYPE node_root, const char *name,
                  const void *ivalue, int len)
@@ -645,71 +644,70 @@ asn1_write_value (ASN1_TYPE node_root, const char *name,
        }
 
 /**
-  * asn1_read_value - Returns the value of one element inside a structure
-  * @root: pointer to a structure.
-  * @name: the name of the element inside a structure that you want to read.
-  * @ivalue: vector that will contain the element's content, must be a
-  *   pointer to memory cells already allocated.
-  * @len: number of bytes of *value: value[0]..value[len-1]. Initialy
-  *   holds the sizeof value.
-  *
-  * Returns the value of one element inside a structure.
-  *
-  * If an element is OPTIONAL and the function "read_value" returns
-  * %ASN1_ELEMENT_NOT_FOUND, it means that this element wasn't present
-  * in the der encoding that created the structure.  The first element
-  * of a SEQUENCE_OF or SET_OF is named "?1". The second one "?2" and
-  * so on.
-  *
-  * INTEGER: VALUE will contain a two's complement form integer.
-  *
-  *            integer=-1  -> value[0]=0xFF , len=1.
-  *            integer=1   -> value[0]=0x01 , len=1.
-  *
-  * ENUMERATED: As INTEGER (but only with not negative numbers).
-  *
-  * BOOLEAN: VALUE will be the null terminated string "TRUE" or
-  *   "FALSE" and LEN=5 or LEN=6.
-  *
-  * OBJECT IDENTIFIER: VALUE will be a null terminated string with
-  *   each number separated by a dot (i.e. "1.2.3.543.1").
-  *
-  *                      LEN = strlen(VALUE)+1
-  *
-  * UTCTime: VALUE will be a null terminated string in one of these
-  *   formats: "YYMMDDhhmmss+hh'mm'" or "YYMMDDhhmmss-hh'mm'".
-  *   LEN=strlen(VALUE)+1.
-  *
-  * GeneralizedTime: VALUE will be a null terminated string in the
-  *   same format used to set the value.
-  *
-  * OCTET STRING: VALUE will contain the octet string and LEN will be
-  *   the number of octets.
-  *
-  * GeneralString: VALUE will contain the generalstring and LEN will
-  *   be the number of octets.
-  *
-  * BIT STRING: VALUE will contain the bit string organized by bytes
-  *   and LEN will be the number of bits.
-  *
-  * CHOICE: If NAME indicates a choice type, VALUE will specify the
-  *   alternative selected.
-  *
-  * ANY: If NAME indicates an any type, VALUE will indicate the DER
-  *   encoding of the structure actually used.
-  *
-  * Returns:
-  *
-  *   ASN1_SUCCESS: Set value OK.
-  *
-  *   ASN1_ELEMENT_NOT_FOUND: NAME is not a valid element.
-  *
-  *   ASN1_VALUE_NOT_FOUND: There isn't any value for the element selected.
-  *
-  *   ASN1_MEM_ERROR: The value vector isn't big enough to store the result.
-  *   In this case LEN will contain the number of bytes needed.
-  *
-  **/
+ * asn1_read_value:
+ * @root: pointer to a structure.
+ * @name: the name of the element inside a structure that you want to read.
+ * @ivalue: vector that will contain the element's content, must be a
+ *   pointer to memory cells already allocated.
+ * @len: number of bytes of *value: value[0]..value[len-1]. Initialy
+ *   holds the sizeof value.
+ *
+ * Returns the value of one element inside a structure.
+ *
+ * If an element is OPTIONAL and the function "read_value" returns
+ * %ASN1_ELEMENT_NOT_FOUND, it means that this element wasn't present
+ * in the der encoding that created the structure.  The first element
+ * of a SEQUENCE_OF or SET_OF is named "?1". The second one "?2" and
+ * so on.
+ *
+ * INTEGER: VALUE will contain a two's complement form integer.
+ *
+ *            integer=-1  -> value[0]=0xFF , len=1.
+ *            integer=1   -> value[0]=0x01 , len=1.
+ *
+ * ENUMERATED: As INTEGER (but only with not negative numbers).
+ *
+ * BOOLEAN: VALUE will be the null terminated string "TRUE" or
+ *   "FALSE" and LEN=5 or LEN=6.
+ *
+ * OBJECT IDENTIFIER: VALUE will be a null terminated string with
+ *   each number separated by a dot (i.e. "1.2.3.543.1").
+ *
+ *                      LEN = strlen(VALUE)+1
+ *
+ * UTCTime: VALUE will be a null terminated string in one of these
+ *   formats: "YYMMDDhhmmss+hh'mm'" or "YYMMDDhhmmss-hh'mm'".
+ *   LEN=strlen(VALUE)+1.
+ *
+ * GeneralizedTime: VALUE will be a null terminated string in the
+ *   same format used to set the value.
+ *
+ * OCTET STRING: VALUE will contain the octet string and LEN will be
+ *   the number of octets.
+ *
+ * GeneralString: VALUE will contain the generalstring and LEN will
+ *   be the number of octets.
+ *
+ * BIT STRING: VALUE will contain the bit string organized by bytes
+ *   and LEN will be the number of bits.
+ *
+ * CHOICE: If NAME indicates a choice type, VALUE will specify the
+ *   alternative selected.
+ *
+ * ANY: If NAME indicates an any type, VALUE will indicate the DER
+ *   encoding of the structure actually used.
+ *
+ * Returns:
+ *
+ *   %ASN1_SUCCESS: Set value OK.
+ *
+ *   %ASN1_ELEMENT_NOT_FOUND: NAME is not a valid element.
+ *
+ *   %ASN1_VALUE_NOT_FOUND: There isn't any value for the element selected.
+ *
+ *   %ASN1_MEM_ERROR: The value vector isn't big enough to store the result.
+ *   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)
 {
@@ -874,24 +872,23 @@ asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len)
 
 
 /**
-  * asn1_read_tag - Returns the TAG of one element inside a structure
-  * @root: pointer to a structure
-  * @name: the name of the element inside a structure.
-  * @tagValue:  variable that will contain the TAG value.
-  * @classValue: variable that will specify the TAG type.
-  *
-  * Returns the TAG and the CLASS of one element inside a structure.
-  * CLASS can have one of these constants: %ASN1_CLASS_APPLICATION,
-  * %ASN1_CLASS_UNIVERSAL, %ASN1_CLASS_PRIVATE or
-  * %ASN1_CLASS_CONTEXT_SPECIFIC.
-  *
-  * Returns:
-  *
-  *   ASN1_SUCCESS: Set value OK.
-  *
-  *   ASN1_ELEMENT_NOT_FOUND: NAME is not a valid element.
-  *
-  **/
+ * asn1_read_tag:
+ * @root: pointer to a structure
+ * @name: the name of the element inside a structure.
+ * @tagValue:  variable that will contain the TAG value.
+ * @classValue: variable that will specify the TAG type.
+ *
+ * Returns the TAG and the CLASS of one element inside a structure.
+ * CLASS can have one of these constants: %ASN1_CLASS_APPLICATION,
+ * %ASN1_CLASS_UNIVERSAL, %ASN1_CLASS_PRIVATE or
+ * %ASN1_CLASS_CONTEXT_SPECIFIC.
+ *
+ * Returns:
+ *
+ *   %ASN1_SUCCESS: Set value OK.
+ *
+ *   %ASN1_ELEMENT_NOT_FOUND: NAME is not a valid element.
+ **/
 asn1_retCode
 asn1_read_tag (ASN1_TYPE root, const char *name, int *tagValue,
               int *classValue)
index 56d5f08dd70668270a2aa80cf13d53866ae05797..052c64ff3b169a2b12a9c18574928ddad0330eff 100644 (file)
@@ -57,11 +57,12 @@ static const libtasn1_error_entry error_algorithms[] = {
 };
 
 /**
- * asn1_perror - prints a string to stderr with a description of an error
+ * asn1_perror:
  * @error: is an error returned by a libtasn1 function.
  *
- * This function is like perror().  The only difference is that it
- * accepts an error returned by a libtasn1 function.
+ * Prints a string to stderr with a description of an error.  This
+ * function is like perror().  The only difference is that it accepts
+ * an error returned by a libtasn1 function.
  *
  * This function replaces libtasn1_perror() in older libtasn1.
  *
@@ -75,11 +76,12 @@ asn1_perror (asn1_retCode error)
 }
 
 /**
- * asn1_strerror - Returns a string with a description of an error
+ * asn1_strerror:
  * @error: is an error returned by a libtasn1 function.
  *
- * This function is similar to strerror.  The only difference is that
- * it accepts an error (number) returned by a libtasn1 function.
+ * Returns a string with a description of an error.  This function is
+ * similar to strerror.  The only difference is that it accepts an
+ * error (number) returned by a libtasn1 function.
  *
  * This function replaces libtasn1_strerror() in older libtasn1.
  *
@@ -105,11 +107,12 @@ asn1_strerror (asn1_retCode error)
 /* Compatibility mappings to preserve ABI. */
 
 /**
- * libtasn1_perror - prints a string to stderr with a description of an error
+ * libtasn1_perror:
  * @error: is an error returned by a libtasn1 function.
  *
- * This function is like perror(). The only difference is that it
- * accepts an error returned by a libtasn1 function.
+ * Prints a string to stderr with a description of an error.  This
+ * function is like perror(). The only difference is that it accepts
+ * an error returned by a libtasn1 function.
  *
  * Deprecated: Use asn1_perror() instead.
  **/
@@ -120,11 +123,12 @@ libtasn1_perror (asn1_retCode error)
 }
 
 /**
- * libtasn1_strerror - Returns a string with a description of an error
+ * libtasn1_strerror:
  * @error: is an error returned by a libtasn1 function.
  *
- * This function is similar to strerror.  The only difference is that
- * it accepts an error (number) returned by a libtasn1 function.
+ * Returns a string with a description of an error.  This function is
+ * similar to strerror.  The only difference is that it accepts an
+ * error (number) returned by a libtasn1 function.
  *
  * Returns: Pointer to static zero-terminated string describing error
  *   code.
index ba80671159daec20ede66af3a24c012c72ce94b2..fea5cea5320bede4d228af5de12d856782567baf 100644 (file)
@@ -45,7 +45,7 @@ extern "C"
 {
 #endif
 
-#define ASN1_VERSION "2.4"
+#define ASN1_VERSION "2.5"
 
   typedef int asn1_retCode;    /* type returned by libtasn1 functions */
 
index 5ee2dee73c6a70b148eb3641aa508fcfba6c2ded..b740a1e9973c500529a8509e807cdf2457f25051 100644 (file)
@@ -1139,7 +1139,7 @@ parse_version_string (const char *s, int *major, int *minor, int *micro)
 }
 
 /**
- * asn1_check_version - check for library version
+ * asn1_check_version:
  * @req_version: Required version number, or NULL.
  *
  * Check that the version of the library is at minimum the
index edaafe6603fb51d8f0baf23dd7fb35bbdf16e17b..b1c5b30c96b05b15b7294227bda023add2bdd0ca 100644 (file)
@@ -159,26 +159,26 @@ _asn1_create_static_structure (ASN1_TYPE pointer, char *output_file_name,
 
 
 /**
-  * asn1_array2tree - Creates the structures needed to manage the ASN1 definitions.
 * @array: specify the array that contains ASN.1 declarations
 * @definitions: return the pointer to the structure created by
 *   *ARRAY ASN.1 declarations
 * @errorDescription: return the error description.
 *
 * Creates the structures needed to manage the ASN.1 definitions.
 * @array is a vector created by asn1_parser2array().
 *
 * Returns:
 *
 * ASN1_SUCCESS: Structure created correctly.
 *
 * ASN1_ELEMENT_NOT_EMPTY: *@definitions not ASN1_TYPE_EMPTY.
 *
 * ASN1_IDENTIFIER_NOT_FOUND: In the file there is an identifier that
 *   is not defined (see @errorDescription for more information).
 *
 * ASN1_ARRAY_ERROR: The array pointed by @array is wrong.
 **/
+ * asn1_array2tree:
+ * @array: specify the array that contains ASN.1 declarations
+ * @definitions: return the pointer to the structure created by
+ *   *ARRAY ASN.1 declarations
+ * @errorDescription: return the error description.
+ *
+ * Creates the structures needed to manage the ASN.1 definitions.
+ * @array is a vector created by asn1_parser2array().
+ *
+ * Returns:
+ *
* %ASN1_SUCCESS: Structure created correctly.
+ *
* %ASN1_ELEMENT_NOT_EMPTY: *@definitions not ASN1_TYPE_EMPTY.
+ *
* %ASN1_IDENTIFIER_NOT_FOUND: In the file there is an identifier that
+ *   is not defined (see @errorDescription for more information).
+ *
* %ASN1_ARRAY_ERROR: The array pointed by @array is wrong.
+ **/
 asn1_retCode
 asn1_array2tree (const ASN1_ARRAY_TYPE * array, ASN1_TYPE * definitions,
                 char *errorDescription)
@@ -278,19 +278,18 @@ asn1_array2tree (const ASN1_ARRAY_TYPE * array, ASN1_TYPE * definitions,
 }
 
 /**
-  * asn1_delete_structure - Deletes the structure pointed by *ROOT.
-  * @structure: pointer to the structure that you want to delete.
-  *
-  * Deletes the structure *@structure.  At the end, *@structure is set
-  * to ASN1_TYPE_EMPTY.
-  *
-  * Returns:
-  *
-  * ASN1_SUCCESS: Everything OK.
-  *
-  * ASN1_ELEMENT_NOT_FOUND: *@structure was ASN1_TYPE_EMPTY.
-  *
-  **/
+ * asn1_delete_structure:
+ * @structure: pointer to the structure that you want to delete.
+ *
+ * Deletes the structure *@structure.  At the end, *@structure is set
+ * to ASN1_TYPE_EMPTY.
+ *
+ * Returns:
+ *
+ * %ASN1_SUCCESS: Everything OK.
+ *
+ * %ASN1_ELEMENT_NOT_FOUND: *@structure was ASN1_TYPE_EMPTY.
+ **/
 asn1_retCode
 asn1_delete_structure (ASN1_TYPE * structure)
 {
@@ -345,20 +344,19 @@ asn1_delete_structure (ASN1_TYPE * structure)
 
 
 /**
-  * asn1_delete_element - Deletes the element of a structure.
-  * @structure: pointer to the structure that contains the element you
-  *   want to delete.
-  * @element_name: element's name you want to delete.
-  *
-  * Deletes the element named *@element_name inside *@structure.
-  *
-  * Returns:
-  *
-  * ASN1_SUCCESS: Everything OK.
-  *
-  * ASN1_ELEMENT_NOT_FOUND: The name element was not found.
-  *
-  **/
+ * asn1_delete_element:
+ * @structure: pointer to the structure that contains the element you
+ *   want to delete.
+ * @element_name: element's name you want to delete.
+ *
+ * Deletes the element named *@element_name inside *@structure.
+ *
+ * Returns:
+ *
+ * %ASN1_SUCCESS: Everything OK.
+ *
+ * %ASN1_ELEMENT_NOT_FOUND: The name element was not found.
+ **/
 asn1_retCode
 asn1_delete_element (ASN1_TYPE structure, const char *element_name)
 {
@@ -661,24 +659,23 @@ _asn1_expand_identifier (ASN1_TYPE * node, ASN1_TYPE root)
 
 
 /**
-  * asn1_create_element - Creates a structure of type SOURCE_NAME.
-  * @definitions: pointer to the structure returned by "parser_asn1" function
-  * @source_name: the name of the type of the new structure (must be
-  *   inside p_structure).
-  * @element: pointer to the structure created.
-  *
-  * Creates a structure of type @source_name.  Example using
-  *  "pkix.asn":
-  *
-  * rc = asn1_create_element(cert_def, "PKIX1.Certificate",
-  * certptr);
-  *
-  * Returns:
-  *
-  * ASN1_SUCCESS: Creation OK.
-  *
-  * ASN1_ELEMENT_NOT_FOUND: SOURCE_NAME isn't known
-  **/
+ * asn1_create_element:
+ * @definitions: pointer to the structure returned by "parser_asn1" function
+ * @source_name: the name of the type of the new structure (must be
+ *   inside p_structure).
+ * @element: pointer to the structure created.
+ *
+ * Creates a structure of type @source_name.  Example using
+ *  "pkix.asn":
+ *
+ * rc = asn1_create_element(cert_def, "PKIX1.Certificate", certptr);
+ *
+ * Returns:
+ *
+ * %ASN1_SUCCESS: Creation OK.
+ *
+ * %ASN1_ELEMENT_NOT_FOUND: SOURCE_NAME isn't known
+ **/
 asn1_retCode
 asn1_create_element (ASN1_TYPE definitions, const char *source_name,
                     ASN1_TYPE * element)
@@ -703,17 +700,17 @@ asn1_create_element (ASN1_TYPE definitions, const char *source_name,
 
 
 /**
-  * asn1_print_structure - Prints on the standard output the structure's tree
 * @out: pointer to the output file (e.g. stdout).
 * @structure: pointer to the structure that you want to visit.
 * @name: an element of the structure
 * @mode: specify how much of the structure to print, can be
 *   %ASN1_PRINT_NAME, %ASN1_PRINT_NAME_TYPE,
 *   %ASN1_PRINT_NAME_TYPE_VALUE, or %ASN1_PRINT_ALL.
 *
 * Prints on the @out file descriptor the structure's tree starting
 * from the @name element inside the structure @structure.
 **/
+ * asn1_print_structure:
+ * @out: pointer to the output file (e.g. stdout).
+ * @structure: pointer to the structure that you want to visit.
+ * @name: an element of the structure
+ * @mode: specify how much of the structure to print, can be
+ *   %ASN1_PRINT_NAME, %ASN1_PRINT_NAME_TYPE,
+ *   %ASN1_PRINT_NAME_TYPE_VALUE, or %ASN1_PRINT_ALL.
+ *
+ * Prints on the @out file descriptor the structure's tree starting
+ * from the @name element inside the structure @structure.
+ **/
 void
 asn1_print_structure (FILE * out, ASN1_TYPE structure, const char *name,
                      int mode)
@@ -1067,23 +1064,22 @@ asn1_print_structure (FILE * out, ASN1_TYPE structure, const char *name,
 
 
 /**
-  * asn1_number_of_elements - Counts the number of elements of a structure.
-  * @element: pointer to the root of an ASN1 structure.
-  * @name: the name of a sub-structure of ROOT.
-  * @num: pointer to an integer where the result will be stored
-  *
-  * Counts the number of elements of a sub-structure called NAME with
-  * names equal to "?1","?2", ...
-  *
-  * Returns:
-  *
-  *  ASN1_SUCCESS: Creation OK.
-  *
-  *  ASN1_ELEMENT_NOT_FOUND: NAME isn't known.
-  *
-  *  ASN1_GENERIC_ERROR: Pointer num equal to NULL.
-  *
-  **/
+ * asn1_number_of_elements:
+ * @element: pointer to the root of an ASN1 structure.
+ * @name: the name of a sub-structure of ROOT.
+ * @num: pointer to an integer where the result will be stored
+ *
+ * Counts the number of elements of a sub-structure called NAME with
+ * names equal to "?1","?2", ...
+ *
+ * Returns:
+ *
+ *  %ASN1_SUCCESS: Creation OK.
+ *
+ *  %ASN1_ELEMENT_NOT_FOUND: NAME isn't known.
+ *
+ *  %ASN1_GENERIC_ERROR: Pointer num equal to NULL.
+ **/
 asn1_retCode
 asn1_number_of_elements (ASN1_TYPE element, const char *name, int *num)
 {
@@ -1112,17 +1108,16 @@ asn1_number_of_elements (ASN1_TYPE element, const char *name, int *num)
 
 
 /**
-  * asn1_find_structure_from_oid - Locate structure defined by a specific OID.
-  * @definitions: ASN1 definitions
-  * @oidValue: value of the OID to search (e.g. "1.2.3.4").
-  *
-  * Search the structure that is defined just after an OID definition.
-  *
-  * Returns: NULL when OIDVALUE not found, otherwise the pointer to a
-  *   constant string that contains the element name defined just
-  *   after the OID.
-  *
-  **/
+ * asn1_find_structure_from_oid:
+ * @definitions: ASN1 definitions
+ * @oidValue: value of the OID to search (e.g. "1.2.3.4").
+ *
+ * Search the structure that is defined just after an OID definition.
+ *
+ * Returns: %NULL when @oidValue not found, otherwise the pointer to a
+ *   constant string that contains the element name defined just after
+ *   the OID.
+ **/
 const char *
 asn1_find_structure_from_oid (ASN1_TYPE definitions, const char *oidValue)
 {
@@ -1176,7 +1171,7 @@ asn1_find_structure_from_oid (ASN1_TYPE definitions, const char *oidValue)
  *
  * Create a deep copy of a ASN1_TYPE variable.
  *
- * Return value: Return ASN1_SUCCESS on success.
+ * Return value: Return %ASN1_SUCCESS on success.
  **/
 asn1_retCode
 asn1_copy_node (ASN1_TYPE dst, const char *dst_name,