28 #if defined(POLARSSL_X509_WRITE_C)
115 int x509_write_name(
unsigned char **p,
unsigned char *start,
char *oid,
119 size_t string_len = 0;
137 len = oid_len + string_len;
150 static void x509_hash(
const unsigned char *in,
size_t len,
int alg,
155 #if defined(POLARSSL_MD2_C)
158 #if defined(POLARSSL_MD4_C)
161 #if defined(POLARSSL_MD5_C)
164 #if defined(POLARSSL_SHA1_C)
167 #if defined(POLARSSL_SHA2_C)
171 #if defined(POLARSSL_SHA4_C)
176 memset( out,
'\xFF', 64 );
181 int x509_write_sig(
unsigned char **p,
unsigned char *start,
char *oid,
182 unsigned char *sig,
size_t size )
187 if( *p - start < (
int) size + 1 )
192 memcpy( *p, sig, len );
212 unsigned char *c, *c2;
213 unsigned char hash[64];
215 unsigned char tmp_buf[2048];
216 size_t sub_len = 0, pub_len = 0, sig_len = 0;
220 c = tmp_buf + 2048 - 1;
231 if( c - tmp_buf < 1 )
262 x509_hash( c, len, hash_id, hash );
269 sig_oid[8] = hash_id;
273 ASN1_CHK_ADD( sig_len, x509_write_sig( &c2, buf, sig_oid, sig, rsa->
len ) );
276 memcpy( c2, c, len );