10 typedef UINT32 uint32_t;
19 #define GET_UINT32_BE(n,b,i) \
21 (n) = ( (uint32_t) (b)[(i) ] << 24 ) \
22 | ( (uint32_t) (b)[(i) + 1] << 16 ) \
23 | ( (uint32_t) (b)[(i) + 2] << 8 ) \
24 | ( (uint32_t) (b)[(i) + 3] ); \
29 #define PUT_UINT32_BE(n,b,i) \
31 (b)[(i) ] = (unsigned char) ( (n) >> 24 ); \
32 (b)[(i) + 1] = (unsigned char) ( (n) >> 16 ); \
33 (b)[(i) + 2] = (unsigned char) ( (n) >> 8 ); \
34 (b)[(i) + 3] = (unsigned char) ( (n) ); \
38 int unhexify(
unsigned char *obuf,
const char *ibuf)
41 int len = strlen(ibuf) / 2;
42 assert(!(strlen(ibuf) %1));
47 if( c >=
'0' && c <=
'9' )
49 else if( c >=
'a' && c <=
'f' )
51 else if( c >=
'A' && c <=
'F' )
57 if( c2 >=
'0' && c2 <=
'9' )
59 else if( c2 >=
'a' && c2 <=
'f' )
61 else if( c2 >=
'A' && c2 <=
'F' )
66 *obuf++ = ( c << 4 ) | c2;
72 void hexify(
unsigned char *obuf,
const unsigned char *ibuf,
int len)
84 *obuf++ =
'a' + h - 10;
89 *obuf++ =
'a' + l - 10;
105 static int rnd_std_rand(
void *rng_state,
unsigned char *output,
size_t len )
109 if( rng_state != NULL )
112 for( i = 0; i < len; ++i )
123 static int rnd_zero_rand(
void *rng_state,
unsigned char *output,
size_t len )
125 if( rng_state != NULL )
128 memset( output, 0, len );
155 if( rng_state == NULL )
164 memcpy( output, info->
buf, use_len );
165 info->
buf += use_len;
169 if( len - use_len > 0 )
170 return(
rnd_std_rand( NULL, output + use_len, len - use_len ) );
199 uint32_t i, *k, sum, delta=0x9E3779B9;
200 unsigned char result[4];
202 if( rng_state == NULL )
209 size_t use_len = ( len > 4 ) ? 4 : len;
212 for( i = 0; i < 32; i++ )
214 info->
v0 += (((info->
v1 << 4) ^ (info->
v1 >> 5)) + info->
v1) ^ (sum + k[sum & 3]);
216 info->
v1 += (((info->
v0 << 4) ^ (info->
v0 >> 5)) + info->
v0) ^ (sum + k[(sum>>11) & 3]);
220 memcpy( output, result, use_len );
230 #ifdef POLARSSL_X509_WRITE_C
231 #ifdef POLARSSL_BIGNUM_C
234 FCT_SUITE_BGN(test_suite_x509write)
236 #ifdef POLARSSL_SHA1_C
238 FCT_TEST_BGN(certificate_request_check_server1_sha1)
244 unsigned char buf[4000];
245 unsigned char check_buf[4000];
254 strcpy( cur->
name,
"PolarSSL Server 1" );
260 strcpy( cur->
name,
"PolarSSL" );
266 strcpy( cur->
name,
"NL" );
277 c = buf + 3999 - ret;
279 f = fopen(
"data_files/server1.req.sha1",
"r" );
280 fct_chk( f != NULL );
281 fread( check_buf, 1, 4000, f );
285 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
287 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
288 fct_chk( pem.
buflen == (
size_t) ret );
290 while( ( cur = req_name.
next ) != NULL )
302 #ifdef POLARSSL_SHA2_C
304 FCT_TEST_BGN(certificate_request_check_server1_sha224)
310 unsigned char buf[4000];
311 unsigned char check_buf[4000];
320 strcpy( cur->
name,
"PolarSSL Server 1" );
326 strcpy( cur->
name,
"PolarSSL" );
332 strcpy( cur->
name,
"NL" );
343 c = buf + 3999 - ret;
345 f = fopen(
"data_files/server1.req.sha224",
"r" );
346 fct_chk( f != NULL );
347 fread( check_buf, 1, 4000, f );
351 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
353 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
354 fct_chk( pem.
buflen == (
size_t) ret );
356 while( ( cur = req_name.
next ) != NULL )
368 #ifdef POLARSSL_SHA2_C
370 FCT_TEST_BGN(certificate_request_check_server1_sha256)
376 unsigned char buf[4000];
377 unsigned char check_buf[4000];
386 strcpy( cur->
name,
"PolarSSL Server 1" );
392 strcpy( cur->
name,
"PolarSSL" );
398 strcpy( cur->
name,
"NL" );
409 c = buf + 3999 - ret;
411 f = fopen(
"data_files/server1.req.sha256",
"r" );
412 fct_chk( f != NULL );
413 fread( check_buf, 1, 4000, f );
417 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
419 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
420 fct_chk( pem.
buflen == (
size_t) ret );
422 while( ( cur = req_name.
next ) != NULL )
434 #ifdef POLARSSL_SHA4_C
436 FCT_TEST_BGN(certificate_request_check_server1_sha384)
442 unsigned char buf[4000];
443 unsigned char check_buf[4000];
452 strcpy( cur->
name,
"PolarSSL Server 1" );
458 strcpy( cur->
name,
"PolarSSL" );
464 strcpy( cur->
name,
"NL" );
475 c = buf + 3999 - ret;
477 f = fopen(
"data_files/server1.req.sha384",
"r" );
478 fct_chk( f != NULL );
479 fread( check_buf, 1, 4000, f );
483 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
485 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
486 fct_chk( pem.
buflen == (
size_t) ret );
488 while( ( cur = req_name.
next ) != NULL )
500 #ifdef POLARSSL_SHA4_C
502 FCT_TEST_BGN(certificate_request_check_server1_sha512)
508 unsigned char buf[4000];
509 unsigned char check_buf[4000];
518 strcpy( cur->
name,
"PolarSSL Server 1" );
524 strcpy( cur->
name,
"PolarSSL" );
530 strcpy( cur->
name,
"NL" );
541 c = buf + 3999 - ret;
543 f = fopen(
"data_files/server1.req.sha512",
"r" );
544 fct_chk( f != NULL );
545 fread( check_buf, 1, 4000, f );
549 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
551 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
552 fct_chk( pem.
buflen == (
size_t) ret );
554 while( ( cur = req_name.
next ) != NULL )
566 #ifdef POLARSSL_MD4_C
568 FCT_TEST_BGN(certificate_request_check_server1_md4)
574 unsigned char buf[4000];
575 unsigned char check_buf[4000];
584 strcpy( cur->
name,
"PolarSSL Server 1" );
590 strcpy( cur->
name,
"PolarSSL" );
596 strcpy( cur->
name,
"NL" );
607 c = buf + 3999 - ret;
609 f = fopen(
"data_files/server1.req.md4",
"r" );
610 fct_chk( f != NULL );
611 fread( check_buf, 1, 4000, f );
615 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
617 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
618 fct_chk( pem.
buflen == (
size_t) ret );
620 while( ( cur = req_name.
next ) != NULL )
632 #ifdef POLARSSL_MD5_C
634 FCT_TEST_BGN(certificate_request_check_server1_md5)
640 unsigned char buf[4000];
641 unsigned char check_buf[4000];
650 strcpy( cur->
name,
"PolarSSL Server 1" );
656 strcpy( cur->
name,
"PolarSSL" );
662 strcpy( cur->
name,
"NL" );
673 c = buf + 3999 - ret;
675 f = fopen(
"data_files/server1.req.md5",
"r" );
676 fct_chk( f != NULL );
677 fread( check_buf, 1, 4000, f );
681 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
683 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
684 fct_chk( pem.
buflen == (
size_t) ret );
686 while( ( cur = req_name.
next ) != NULL )