00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049 #ifndef MBEDTLS_X509_CSR_H
00050 #define MBEDTLS_X509_CSR_H
00051
00052 #if !defined(MBEDTLS_CONFIG_FILE)
00053 #include "config.h"
00054 #else
00055 #include MBEDTLS_CONFIG_FILE
00056 #endif
00057
00058 #include "x509.h"
00059
00060 #ifdef __cplusplus
00061 extern "C" {
00062 #endif
00063
00076 typedef struct mbedtls_x509_csr
00077 {
00078 mbedtls_x509_buf raw;
00079 mbedtls_x509_buf cri;
00081 int version;
00083 mbedtls_x509_buf subject_raw;
00084 mbedtls_x509_name subject;
00086 mbedtls_pk_context pk;
00088 mbedtls_x509_buf sig_oid;
00089 mbedtls_x509_buf sig;
00090 mbedtls_md_type_t sig_md;
00091 mbedtls_pk_type_t sig_pk;
00092 void *sig_opts;
00093 }
00094 mbedtls_x509_csr;
00095
00099 typedef struct mbedtls_x509write_csr
00100 {
00101 mbedtls_pk_context *key;
00102 mbedtls_asn1_named_data *subject;
00103 mbedtls_md_type_t md_alg;
00104 mbedtls_asn1_named_data *extensions;
00105 }
00106 mbedtls_x509write_csr;
00107
00108 #if defined(MBEDTLS_X509_CSR_PARSE_C)
00109
00120 int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr,
00121 const unsigned char *buf, size_t buflen );
00122
00135 int mbedtls_x509_csr_parse( mbedtls_x509_csr *csr, const unsigned char *buf, size_t buflen );
00136
00137 #if defined(MBEDTLS_FS_IO)
00138
00148 int mbedtls_x509_csr_parse_file( mbedtls_x509_csr *csr, const char *path );
00149 #endif
00150
00163 int mbedtls_x509_csr_info( char *buf, size_t size, const char *prefix,
00164 const mbedtls_x509_csr *csr );
00165
00171 void mbedtls_x509_csr_init( mbedtls_x509_csr *csr );
00172
00178 void mbedtls_x509_csr_free( mbedtls_x509_csr *csr );
00179 #endif
00180
00181
00182
00183
00184 #if defined(MBEDTLS_X509_CSR_WRITE_C)
00185
00190 void mbedtls_x509write_csr_init( mbedtls_x509write_csr *ctx );
00191
00204 int mbedtls_x509write_csr_set_subject_name( mbedtls_x509write_csr *ctx,
00205 const char *subject_name );
00206
00214 void mbedtls_x509write_csr_set_key( mbedtls_x509write_csr *ctx, mbedtls_pk_context *key );
00215
00223 void mbedtls_x509write_csr_set_md_alg( mbedtls_x509write_csr *ctx, mbedtls_md_type_t md_alg );
00224
00242 int mbedtls_x509write_csr_set_key_usage( mbedtls_x509write_csr *ctx, unsigned char key_usage );
00243
00253 int mbedtls_x509write_csr_set_ns_cert_type( mbedtls_x509write_csr *ctx,
00254 unsigned char ns_cert_type );
00255
00268 int mbedtls_x509write_csr_set_extension( mbedtls_x509write_csr *ctx,
00269 const char *oid, size_t oid_len,
00270 const unsigned char *val, size_t val_len );
00271
00277 void mbedtls_x509write_csr_free( mbedtls_x509write_csr *ctx );
00278
00300 int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size,
00301 int (*f_rng)(void *, unsigned char *, size_t),
00302 void *p_rng );
00303
00304 #if defined(MBEDTLS_PEM_WRITE_C)
00305
00322 int mbedtls_x509write_csr_pem( mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size,
00323 int (*f_rng)(void *, unsigned char *, size_t),
00324 void *p_rng );
00325 #endif
00326 #endif
00327
00328 #ifdef __cplusplus
00329 }
00330 #endif
00331
00332 #endif