x509_csr.h

Go to the documentation of this file.
00001 
00023 #ifndef MBEDTLS_X509_CSR_H
00024 #define MBEDTLS_X509_CSR_H
00025 
00026 #if !defined(MBEDTLS_CONFIG_FILE)
00027 #include "config.h"
00028 #else
00029 #include MBEDTLS_CONFIG_FILE
00030 #endif
00031 
00032 #include "x509.h"
00033 
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037 
00050 typedef struct mbedtls_x509_csr
00051 {
00052     mbedtls_x509_buf raw;           
00053     mbedtls_x509_buf cri;           
00055     int version;            
00057     mbedtls_x509_buf  subject_raw;  
00058     mbedtls_x509_name subject;      
00060     mbedtls_pk_context pk;          
00062     mbedtls_x509_buf sig_oid;
00063     mbedtls_x509_buf sig;
00064     mbedtls_md_type_t sig_md;       
00065     mbedtls_pk_type_t sig_pk;       
00066     void *sig_opts;         
00067 }
00068 mbedtls_x509_csr;
00069 
00073 typedef struct mbedtls_x509write_csr
00074 {
00075     mbedtls_pk_context *key;
00076     mbedtls_asn1_named_data *subject;
00077     mbedtls_md_type_t md_alg;
00078     mbedtls_asn1_named_data *extensions;
00079 }
00080 mbedtls_x509write_csr;
00081 
00082 #if defined(MBEDTLS_X509_CSR_PARSE_C)
00083 
00094 int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr,
00095                         const unsigned char *buf, size_t buflen );
00096 
00109 int mbedtls_x509_csr_parse( mbedtls_x509_csr *csr, const unsigned char *buf, size_t buflen );
00110 
00111 #if defined(MBEDTLS_FS_IO)
00112 
00122 int mbedtls_x509_csr_parse_file( mbedtls_x509_csr *csr, const char *path );
00123 #endif /* MBEDTLS_FS_IO */
00124 
00137 int mbedtls_x509_csr_info( char *buf, size_t size, const char *prefix,
00138                    const mbedtls_x509_csr *csr );
00139 
00145 void mbedtls_x509_csr_init( mbedtls_x509_csr *csr );
00146 
00152 void mbedtls_x509_csr_free( mbedtls_x509_csr *csr );
00153 #endif /* MBEDTLS_X509_CSR_PARSE_C */
00154 
00155 /* \} name */
00156 /* \} addtogroup x509_module */
00157 
00158 #if defined(MBEDTLS_X509_CSR_WRITE_C)
00159 
00164 void mbedtls_x509write_csr_init( mbedtls_x509write_csr *ctx );
00165 
00178 int mbedtls_x509write_csr_set_subject_name( mbedtls_x509write_csr *ctx,
00179                                     const char *subject_name );
00180 
00188 void mbedtls_x509write_csr_set_key( mbedtls_x509write_csr *ctx, mbedtls_pk_context *key );
00189 
00197 void mbedtls_x509write_csr_set_md_alg( mbedtls_x509write_csr *ctx, mbedtls_md_type_t md_alg );
00198 
00208 int mbedtls_x509write_csr_set_key_usage( mbedtls_x509write_csr *ctx, unsigned char key_usage );
00209 
00219 int mbedtls_x509write_csr_set_ns_cert_type( mbedtls_x509write_csr *ctx,
00220                                     unsigned char ns_cert_type );
00221 
00234 int mbedtls_x509write_csr_set_extension( mbedtls_x509write_csr *ctx,
00235                                  const char *oid, size_t oid_len,
00236                                  const unsigned char *val, size_t val_len );
00237 
00243 void mbedtls_x509write_csr_free( mbedtls_x509write_csr *ctx );
00244 
00266 int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size,
00267                        int (*f_rng)(void *, unsigned char *, size_t),
00268                        void *p_rng );
00269 
00270 #if defined(MBEDTLS_PEM_WRITE_C)
00271 
00288 int mbedtls_x509write_csr_pem( mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size,
00289                        int (*f_rng)(void *, unsigned char *, size_t),
00290                        void *p_rng );
00291 #endif /* MBEDTLS_PEM_WRITE_C */
00292 #endif /* MBEDTLS_X509_CSR_WRITE_C */
00293 
00294 #ifdef __cplusplus
00295 }
00296 #endif
00297 
00298 #endif /* mbedtls_x509_csr.h */

Generated on 11 Mar 2017 for mbed TLS v2.4.2 by  doxygen 1.4.7