11 typedef UINT32 uint32_t;
20 #define GET_UINT32_BE(n,b,i) \
22 (n) = ( (uint32_t) (b)[(i) ] << 24 ) \
23 | ( (uint32_t) (b)[(i) + 1] << 16 ) \
24 | ( (uint32_t) (b)[(i) + 2] << 8 ) \
25 | ( (uint32_t) (b)[(i) + 3] ); \
30 #define PUT_UINT32_BE(n,b,i) \
32 (b)[(i) ] = (unsigned char) ( (n) >> 24 ); \
33 (b)[(i) + 1] = (unsigned char) ( (n) >> 16 ); \
34 (b)[(i) + 2] = (unsigned char) ( (n) >> 8 ); \
35 (b)[(i) + 3] = (unsigned char) ( (n) ); \
39 int unhexify(
unsigned char *obuf,
const char *ibuf)
42 int len = strlen(ibuf) / 2;
43 assert(!(strlen(ibuf) %1));
48 if( c >=
'0' && c <=
'9' )
50 else if( c >=
'a' && c <=
'f' )
52 else if( c >=
'A' && c <=
'F' )
58 if( c2 >=
'0' && c2 <=
'9' )
60 else if( c2 >=
'a' && c2 <=
'f' )
62 else if( c2 >=
'A' && c2 <=
'F' )
67 *obuf++ = ( c << 4 ) | c2;
73 void hexify(
unsigned char *obuf,
const unsigned char *ibuf,
int len)
85 *obuf++ =
'a' + h - 10;
90 *obuf++ =
'a' + l - 10;
106 static int rnd_std_rand(
void *rng_state,
unsigned char *output,
size_t len )
110 if( rng_state != NULL )
113 for( i = 0; i < len; ++i )
124 static int rnd_zero_rand(
void *rng_state,
unsigned char *output,
size_t len )
126 if( rng_state != NULL )
129 memset( output, 0, len );
156 if( rng_state == NULL )
165 memcpy( output, info->
buf, use_len );
166 info->
buf += use_len;
170 if( len - use_len > 0 )
171 return(
rnd_std_rand( NULL, output + use_len, len - use_len ) );
200 uint32_t i, *k, sum, delta=0x9E3779B9;
201 unsigned char result[4];
203 if( rng_state == NULL )
210 size_t use_len = ( len > 4 ) ? 4 : len;
213 for( i = 0; i < 32; i++ )
215 info->
v0 += (((info->
v1 << 4) ^ (info->
v1 >> 5)) + info->
v1) ^ (sum + k[sum & 3]);
217 info->
v1 += (((info->
v0 << 4) ^ (info->
v0 >> 5)) + info->
v0) ^ (sum + k[(sum>>11) & 3]);
221 memcpy( output, result, use_len );
231 #ifdef POLARSSL_X509_WRITE_C
232 #ifdef POLARSSL_BIGNUM_C
235 FCT_SUITE_BGN(test_suite_x509write)
237 #ifdef POLARSSL_SHA1_C
239 FCT_TEST_BGN(certificate_request_check_server1_sha1)
245 unsigned char buf[4000];
246 unsigned char check_buf[4000];
255 strcpy( cur->
name,
"PolarSSL Server 1" );
261 strcpy( cur->
name,
"PolarSSL" );
267 strcpy( cur->
name,
"NL" );
278 c = buf + 3999 - ret;
280 f = fopen(
"data_files/server1.req.sha1",
"r" );
281 fct_chk( f != NULL );
282 fread( check_buf, 1, 4000, f );
286 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
288 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
289 fct_chk( pem.
buflen == (
size_t) ret );
291 while( ( cur = req_name.
next ) != NULL )
303 #ifdef POLARSSL_SHA2_C
305 FCT_TEST_BGN(certificate_request_check_server1_sha224)
311 unsigned char buf[4000];
312 unsigned char check_buf[4000];
321 strcpy( cur->
name,
"PolarSSL Server 1" );
327 strcpy( cur->
name,
"PolarSSL" );
333 strcpy( cur->
name,
"NL" );
344 c = buf + 3999 - ret;
346 f = fopen(
"data_files/server1.req.sha224",
"r" );
347 fct_chk( f != NULL );
348 fread( check_buf, 1, 4000, f );
352 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
354 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
355 fct_chk( pem.
buflen == (
size_t) ret );
357 while( ( cur = req_name.
next ) != NULL )
369 #ifdef POLARSSL_SHA2_C
371 FCT_TEST_BGN(certificate_request_check_server1_sha256)
377 unsigned char buf[4000];
378 unsigned char check_buf[4000];
387 strcpy( cur->
name,
"PolarSSL Server 1" );
393 strcpy( cur->
name,
"PolarSSL" );
399 strcpy( cur->
name,
"NL" );
410 c = buf + 3999 - ret;
412 f = fopen(
"data_files/server1.req.sha256",
"r" );
413 fct_chk( f != NULL );
414 fread( check_buf, 1, 4000, f );
418 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
420 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
421 fct_chk( pem.
buflen == (
size_t) ret );
423 while( ( cur = req_name.
next ) != NULL )
435 #ifdef POLARSSL_SHA4_C
437 FCT_TEST_BGN(certificate_request_check_server1_sha384)
443 unsigned char buf[4000];
444 unsigned char check_buf[4000];
453 strcpy( cur->
name,
"PolarSSL Server 1" );
459 strcpy( cur->
name,
"PolarSSL" );
465 strcpy( cur->
name,
"NL" );
476 c = buf + 3999 - ret;
478 f = fopen(
"data_files/server1.req.sha384",
"r" );
479 fct_chk( f != NULL );
480 fread( check_buf, 1, 4000, f );
484 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
486 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
487 fct_chk( pem.
buflen == (
size_t) ret );
489 while( ( cur = req_name.
next ) != NULL )
501 #ifdef POLARSSL_SHA4_C
503 FCT_TEST_BGN(certificate_request_check_server1_sha512)
509 unsigned char buf[4000];
510 unsigned char check_buf[4000];
519 strcpy( cur->
name,
"PolarSSL Server 1" );
525 strcpy( cur->
name,
"PolarSSL" );
531 strcpy( cur->
name,
"NL" );
542 c = buf + 3999 - ret;
544 f = fopen(
"data_files/server1.req.sha512",
"r" );
545 fct_chk( f != NULL );
546 fread( check_buf, 1, 4000, f );
550 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
552 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
553 fct_chk( pem.
buflen == (
size_t) ret );
555 while( ( cur = req_name.
next ) != NULL )
567 #ifdef POLARSSL_MD4_C
569 FCT_TEST_BGN(certificate_request_check_server1_md4)
575 unsigned char buf[4000];
576 unsigned char check_buf[4000];
585 strcpy( cur->
name,
"PolarSSL Server 1" );
591 strcpy( cur->
name,
"PolarSSL" );
597 strcpy( cur->
name,
"NL" );
608 c = buf + 3999 - ret;
610 f = fopen(
"data_files/server1.req.md4",
"r" );
611 fct_chk( f != NULL );
612 fread( check_buf, 1, 4000, f );
616 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
618 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
619 fct_chk( pem.
buflen == (
size_t) ret );
621 while( ( cur = req_name.
next ) != NULL )
633 #ifdef POLARSSL_MD5_C
635 FCT_TEST_BGN(certificate_request_check_server1_md5)
641 unsigned char buf[4000];
642 unsigned char check_buf[4000];
651 strcpy( cur->
name,
"PolarSSL Server 1" );
657 strcpy( cur->
name,
"PolarSSL" );
663 strcpy( cur->
name,
"NL" );
674 c = buf + 3999 - ret;
676 f = fopen(
"data_files/server1.req.md5",
"r" );
677 fct_chk( f != NULL );
678 fread( check_buf, 1, 4000, f );
682 pem_read_buffer( &pem,
"-----BEGIN CERTIFICATE REQUEST-----",
"-----END CERTIFICATE REQUEST-----", check_buf, NULL, 0, &olen );
684 fct_chk( memcmp( c, pem.
buf, pem.
buflen ) == 0 );
685 fct_chk( pem.
buflen == (
size_t) ret );
687 while( ( cur = req_name.
next ) != NULL )