From 7accbced87fb635f90ebc58a1979351bfd1d4beb Mon Sep 17 00:00:00 2001 From: Paul Bakker Date: Mon, 26 Aug 2013 17:34:53 +0200 Subject: [PATCH] Doxygen documentation added to asn1write.h --- include/polarssl/asn1write.h | 141 ++++++++++++++++++++++++++++++++++- library/asn1write.c | 4 +- 2 files changed, 142 insertions(+), 3 deletions(-) diff --git a/include/polarssl/asn1write.h b/include/polarssl/asn1write.h index 9b98afe2e3..43408e29d1 100644 --- a/include/polarssl/asn1write.h +++ b/include/polarssl/asn1write.h @@ -35,23 +35,162 @@ extern "C" { #endif +/** + * \brief Write a length field in ASN.1 format + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param len the length to write + * + * \return the length written or a negative error code + */ int asn1_write_len( unsigned char **p, unsigned char *start, size_t len ); + +/** + * \brief Write a ASN.1 tag in ASN.1 format + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param tag the tag to write + * + * \return the length written or a negative error code + */ int asn1_write_tag( unsigned char **p, unsigned char *start, unsigned char tag ); + #if defined(POLARSSL_BIGNUM_C) +/** + * \brief Write a big number (ASN1_INTEGER) in ASN.1 format + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param X the MPI to write + * + * \return the length written or a negative error code + */ int asn1_write_mpi( unsigned char **p, unsigned char *start, mpi *X ); #endif + +/** + * \brief Write a NULL tag (ASN1_NULL) with zero data in ASN.1 format + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * + * \return the length written or a negative error code + */ int asn1_write_null( unsigned char **p, unsigned char *start ); + +/** + * \brief Write an OID tag (ASN1_OID) and data in ASN.1 format + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param oid the OID to write + * + * \return the length written or a negative error code + */ int asn1_write_oid( unsigned char **p, unsigned char *start, const char *oid ); -int asn1_write_algorithm_identifier( unsigned char **p, unsigned char *start, const char *algorithm_oid ); + +/** + * \brief Write an AlgorithmIdentifier sequence in ASN.1 format + * Note: function works backwards in data buffer + * Note: Uses NULL as algorithm parameter + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param oid the OID of the algorithm + * + * \return the length written or a negative error code + */ +int asn1_write_algorithm_identifier( unsigned char **p, unsigned char *start, + const char *oid ); + +/** + * \brief Write an int tag (ASN1_INTEGER) and value in ASN.1 format + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param val the integer value + * + * \return the length written or a negative error code + */ int asn1_write_int( unsigned char **p, unsigned char *start, int val ); + +/** + * \brief Write a printable string tag (ASN1_PRINTABLE_STRING) and + * value in ASN.1 format + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param text the text to write + * + * \return the length written or a negative error code + */ int asn1_write_printable_string( unsigned char **p, unsigned char *start, char *text ); + +/** + * \brief Write an IA5 string tag (ASN1_IA5_STRING) and + * value in ASN.1 format + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param text the text to write + * + * \return the length written or a negative error code + */ int asn1_write_ia5_string( unsigned char **p, unsigned char *start, char *text ); + +/** + * \brief Write a bitstring tag (ASN1_BIT_STRING) and + * value in ASN.1 format + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param buf the bitstring + * \param bits the total number of bits in the bitstring + * + * \return the length written or a negative error code + */ int asn1_write_bitstring( unsigned char **p, unsigned char *start, const unsigned char *buf, size_t bits ); + +/** + * \brief Write an octet string tag (ASN1_OCTET_STRING) and + * value in ASN.1 format + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param buf data buffer to write + * \param size length of the data buffer + * + * \return the length written or a negative error code + */ int asn1_write_octet_string( unsigned char **p, unsigned char *start, const unsigned char *buf, size_t size ); + +/** + * \brief Write raw buffer data + * Note: function works backwards in data buffer + * + * \param p reference to current position pointer + * \param start start of the buffer (for bounds-checking) + * \param buf data buffer to write + * \param size length of the data buffer + * + * \return the length written or a negative error code + */ int asn1_write_raw_buffer( unsigned char **p, unsigned char *start, const unsigned char *buf, size_t size ); diff --git a/library/asn1write.c b/library/asn1write.c index f08e105d21..07a3fbb4c4 100644 --- a/library/asn1write.c +++ b/library/asn1write.c @@ -142,7 +142,7 @@ int asn1_write_oid( unsigned char **p, unsigned char *start, const char *oid ) } int asn1_write_algorithm_identifier( unsigned char **p, unsigned char *start, - const char *algorithm_oid ) + const char *oid ) { int ret; size_t null_len = 0; @@ -155,7 +155,7 @@ int asn1_write_algorithm_identifier( unsigned char **p, unsigned char *start, // Write OID // - ASN1_CHK_ADD( oid_len, asn1_write_oid( p, start, algorithm_oid ) ); + ASN1_CHK_ADD( oid_len, asn1_write_oid( p, start, oid ) ); len = oid_len + null_len; ASN1_CHK_ADD( len, asn1_write_len( p, start, oid_len + null_len ) );