00001
00023 #ifndef MBEDTLS_ASN1_WRITE_H
00024 #define MBEDTLS_ASN1_WRITE_H
00025
00026 #include "asn1.h"
00027
00028 #define MBEDTLS_ASN1_CHK_ADD(g, f) do { if( ( ret = f ) < 0 ) return( ret ); else \
00029 g += ret; } while( 0 )
00030
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034
00045 int mbedtls_asn1_write_len( unsigned char **p, unsigned char *start, size_t len );
00046
00057 int mbedtls_asn1_write_tag( unsigned char **p, unsigned char *start,
00058 unsigned char tag );
00059
00071 int mbedtls_asn1_write_raw_buffer( unsigned char **p, unsigned char *start,
00072 const unsigned char *buf, size_t size );
00073
00074 #if defined(MBEDTLS_BIGNUM_C)
00075
00085 int mbedtls_asn1_write_mpi( unsigned char **p, unsigned char *start, const mbedtls_mpi *X );
00086 #endif
00087
00097 int mbedtls_asn1_write_null( unsigned char **p, unsigned char *start );
00098
00110 int mbedtls_asn1_write_oid( unsigned char **p, unsigned char *start,
00111 const char *oid, size_t oid_len );
00112
00126 int mbedtls_asn1_write_algorithm_identifier( unsigned char **p, unsigned char *start,
00127 const char *oid, size_t oid_len,
00128 size_t par_len );
00129
00140 int mbedtls_asn1_write_bool( unsigned char **p, unsigned char *start, int boolean );
00141
00152 int mbedtls_asn1_write_int( unsigned char **p, unsigned char *start, int val );
00153
00166 int mbedtls_asn1_write_printable_string( unsigned char **p, unsigned char *start,
00167 const char *text, size_t text_len );
00168
00181 int mbedtls_asn1_write_ia5_string( unsigned char **p, unsigned char *start,
00182 const char *text, size_t text_len );
00183
00196 int mbedtls_asn1_write_bitstring( unsigned char **p, unsigned char *start,
00197 const unsigned char *buf, size_t bits );
00198
00211 int mbedtls_asn1_write_octet_string( unsigned char **p, unsigned char *start,
00212 const unsigned char *buf, size_t size );
00213
00230 mbedtls_asn1_named_data *mbedtls_asn1_store_named_data( mbedtls_asn1_named_data **list,
00231 const char *oid, size_t oid_len,
00232 const unsigned char *val,
00233 size_t val_len );
00234
00235 #ifdef __cplusplus
00236 }
00237 #endif
00238
00239 #endif