00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef MBEDTLS_ASN1_WRITE_H
00025 #define MBEDTLS_ASN1_WRITE_H
00026
00027 #if !defined(MBEDTLS_CONFIG_FILE)
00028 #include "config.h"
00029 #else
00030 #include MBEDTLS_CONFIG_FILE
00031 #endif
00032
00033 #include "asn1.h"
00034
00035 #define MBEDTLS_ASN1_CHK_ADD(g, f) do { if( ( ret = f ) < 0 ) return( ret ); else \
00036 g += ret; } while( 0 )
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00052 int mbedtls_asn1_write_len( unsigned char **p, unsigned char *start, size_t len );
00053
00064 int mbedtls_asn1_write_tag( unsigned char **p, unsigned char *start,
00065 unsigned char tag );
00066
00078 int mbedtls_asn1_write_raw_buffer( unsigned char **p, unsigned char *start,
00079 const unsigned char *buf, size_t size );
00080
00081 #if defined(MBEDTLS_BIGNUM_C)
00082
00092 int mbedtls_asn1_write_mpi( unsigned char **p, unsigned char *start, const mbedtls_mpi *X );
00093 #endif
00094
00104 int mbedtls_asn1_write_null( unsigned char **p, unsigned char *start );
00105
00117 int mbedtls_asn1_write_oid( unsigned char **p, unsigned char *start,
00118 const char *oid, size_t oid_len );
00119
00133 int mbedtls_asn1_write_algorithm_identifier( unsigned char **p, unsigned char *start,
00134 const char *oid, size_t oid_len,
00135 size_t par_len );
00136
00147 int mbedtls_asn1_write_bool( unsigned char **p, unsigned char *start, int boolean );
00148
00159 int mbedtls_asn1_write_int( unsigned char **p, unsigned char *start, int val );
00160
00173 int mbedtls_asn1_write_printable_string( unsigned char **p, unsigned char *start,
00174 const char *text, size_t text_len );
00175
00188 int mbedtls_asn1_write_ia5_string( unsigned char **p, unsigned char *start,
00189 const char *text, size_t text_len );
00190
00205 int mbedtls_asn1_write_bitstring( unsigned char **p, unsigned char *start,
00206 const unsigned char *buf, size_t bits );
00207
00221 int mbedtls_asn1_write_octet_string( unsigned char **p, unsigned char *start,
00222 const unsigned char *buf, size_t size );
00223
00240 mbedtls_asn1_named_data *mbedtls_asn1_store_named_data( mbedtls_asn1_named_data **list,
00241 const char *oid, size_t oid_len,
00242 const unsigned char *val,
00243 size_t val_len );
00244
00245 #ifdef __cplusplus
00246 }
00247 #endif
00248
00249 #endif