31 #if !defined(POLARSSL_CONFIG_FILE)
34 #include POLARSSL_CONFIG_FILE
37 #if defined(POLARSSL_X509_CSR_WRITE_C)
43 #if defined(POLARSSL_PEM_WRITE_C)
51 static void polarssl_zeroize(
void *v,
size_t n ) {
52 volatile unsigned char *p = v;
while( n-- ) *p++ = 0;
79 const char *subject_name )
85 const char *oid,
size_t oid_len,
86 const unsigned char *val,
size_t val_len )
113 unsigned char ns_cert_type )
115 unsigned char buf[4];
134 int (*f_rng)(
void *,
unsigned char *,
size_t),
139 size_t sig_oid_len = 0;
140 unsigned char *c, *c2;
141 unsigned char hash[64];
143 unsigned char tmp_buf[2048];
144 size_t pub_len = 0, sig_and_oid_len = 0, sig_len;
151 c = tmp_buf +
sizeof( tmp_buf );
178 tmp_buf, c - tmp_buf ) );
206 f_rng, p_rng ) ) != 0 ||
208 &sig_oid, &sig_oid_len ) ) != 0 )
218 sig_oid, sig_oid_len, sig, sig_len ) );
221 memcpy( c2, c, len );
223 len += sig_and_oid_len;
231 #define PEM_BEGIN_CSR "-----BEGIN CERTIFICATE REQUEST-----\n"
232 #define PEM_END_CSR "-----END CERTIFICATE REQUEST-----\n"
234 #if defined(POLARSSL_PEM_WRITE_C)
236 int (*f_rng)(
void *,
unsigned char *,
size_t),
240 unsigned char output_buf[4096];
244 f_rng, p_rng ) ) < 0 )
249 if( ( ret = pem_write_buffer( PEM_BEGIN_CSR, PEM_END_CSR,
250 output_buf +
sizeof(output_buf) - ret,
251 ret, buf, size, &olen ) ) != 0 )