16 typedef UINT32 uint32_t;
25 #define GET_UINT32_BE(n,b,i) \
27 (n) = ( (uint32_t) (b)[(i) ] << 24 ) \
28 | ( (uint32_t) (b)[(i) + 1] << 16 ) \
29 | ( (uint32_t) (b)[(i) + 2] << 8 ) \
30 | ( (uint32_t) (b)[(i) + 3] ); \
35 #define PUT_UINT32_BE(n,b,i) \
37 (b)[(i) ] = (unsigned char) ( (n) >> 24 ); \
38 (b)[(i) + 1] = (unsigned char) ( (n) >> 16 ); \
39 (b)[(i) + 2] = (unsigned char) ( (n) >> 8 ); \
40 (b)[(i) + 3] = (unsigned char) ( (n) ); \
44 int unhexify(
unsigned char *obuf,
const char *ibuf)
47 int len = strlen(ibuf) / 2;
48 assert(!(strlen(ibuf) %1));
53 if( c >=
'0' && c <=
'9' )
55 else if( c >=
'a' && c <=
'f' )
57 else if( c >=
'A' && c <=
'F' )
63 if( c2 >=
'0' && c2 <=
'9' )
65 else if( c2 >=
'a' && c2 <=
'f' )
67 else if( c2 >=
'A' && c2 <=
'F' )
72 *obuf++ = ( c << 4 ) | c2;
78 void hexify(
unsigned char *obuf,
const unsigned char *ibuf,
int len)
90 *obuf++ =
'a' + h - 10;
95 *obuf++ =
'a' + l - 10;
111 static int rnd_std_rand(
void *rng_state,
unsigned char *output,
size_t len )
115 if( rng_state != NULL )
118 for( i = 0; i < len; ++i )
129 static int rnd_zero_rand(
void *rng_state,
unsigned char *output,
size_t len )
131 if( rng_state != NULL )
134 memset( output, 0, len );
161 if( rng_state == NULL )
170 memcpy( output, info->
buf, use_len );
171 info->
buf += use_len;
175 if( len - use_len > 0 )
176 return(
rnd_std_rand( NULL, output + use_len, len - use_len ) );
205 uint32_t i, *k, sum, delta=0x9E3779B9;
206 unsigned char result[4];
208 if( rng_state == NULL )
215 size_t use_len = ( len > 4 ) ? 4 : len;
218 for( i = 0; i < 32; i++ )
220 info->
v0 += (((info->
v1 << 4) ^ (info->
v1 >> 5)) + info->
v1) ^ (sum + k[sum & 3]);
222 info->
v1 += (((info->
v0 << 4) ^ (info->
v0 >> 5)) + info->
v0) ^ (sum + k[(sum>>11) & 3]);
226 memcpy( output, result, use_len );
236 #ifdef POLARSSL_RSA_C
237 #ifdef POLARSSL_BIGNUM_C
238 #ifdef POLARSSL_GENPRIME
241 FCT_SUITE_BGN(test_suite_rsa)
243 #ifdef POLARSSL_SHA1_C
245 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_1)
247 unsigned char message_str[1000];
248 unsigned char hash_result[1000];
249 unsigned char result_str[1000];
254 memset( message_str, 0x00, 1000 );
255 memset( hash_result, 0x00, 1000 );
256 memset( result_str, 0x00, 1000 );
259 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
264 msg_len =
unhexify( message_str,
"d6248c3e96b1a7e5fea978870fcc4c9786b4e5156e16b7faef4557d667f730b8bc4c784ef00c624df5309513c3a5de8ca94c2152e0459618666d3148092562ebc256ffca45b27fd2d63c68bd5e0a0aefbe496e9e63838a361b1db6fc272464f191490bf9c029643c49d2d9cd08833b8a70b4b3431f56fb1eb55ccd39e77a9c92" );
265 unhexify( result_str,
"3203b7647fb7e345aa457681e5131777f1adc371f2fba8534928c4e52ef6206a856425d6269352ecbf64db2f6ad82397768cafdd8cd272e512d617ad67992226da6bc291c31404c17fd4b7e2beb20eff284a44f4d7af47fd6629e2c95809fa7f2241a04f70ac70d3271bb13258af1ed5c5988c95df7fa26603515791075feccd" );
269 #ifdef POLARSSL_MD2_C
271 md2( message_str, msg_len, hash_result );
274 #ifdef POLARSSL_MD4_C
276 md4( message_str, msg_len, hash_result );
279 #ifdef POLARSSL_MD5_C
281 md5( message_str, msg_len, hash_result );
284 #ifdef POLARSSL_SHA1_C
286 sha1( message_str, msg_len, hash_result );
289 #ifdef POLARSSL_SHA2_C
291 sha2( message_str, msg_len, hash_result, 1 );
294 sha2( message_str, msg_len, hash_result, 0 );
297 #ifdef POLARSSL_SHA4_C
299 sha4( message_str, msg_len, hash_result, 1 );
302 sha4( message_str, msg_len, hash_result, 0 );
314 #ifdef POLARSSL_SHA1_C
316 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_2)
318 unsigned char message_str[1000];
319 unsigned char hash_result[1000];
320 unsigned char result_str[1000];
325 memset( message_str, 0x00, 1000 );
326 memset( hash_result, 0x00, 1000 );
327 memset( result_str, 0x00, 1000 );
330 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
335 msg_len =
unhexify( message_str,
"206ef4bf396c6087f8229ef196fd35f37ccb8de5efcdb238f20d556668f114257a11fbe038464a67830378e62ae9791453953dac1dbd7921837ba98e84e856eb80ed9487e656d0b20c28c8ba5e35db1abbed83ed1c7720a97701f709e3547a4bfcabca9c89c57ad15c3996577a0ae36d7c7b699035242f37954646c1cd5c08ac" );
336 unhexify( result_str,
"5abc01f5de25b70867ff0c24e222c61f53c88daf42586fddcd56f3c4588f074be3c328056c063388688b6385a8167957c6e5355a510e005b8a851d69c96b36ec6036644078210e5d7d326f96365ee0648882921492bc7b753eb9c26cdbab37555f210df2ca6fec1b25b463d38b81c0dcea202022b04af5da58aa03d77be949b7" );
340 #ifdef POLARSSL_MD2_C
342 md2( message_str, msg_len, hash_result );
345 #ifdef POLARSSL_MD4_C
347 md4( message_str, msg_len, hash_result );
350 #ifdef POLARSSL_MD5_C
352 md5( message_str, msg_len, hash_result );
355 #ifdef POLARSSL_SHA1_C
357 sha1( message_str, msg_len, hash_result );
360 #ifdef POLARSSL_SHA2_C
362 sha2( message_str, msg_len, hash_result, 1 );
365 sha2( message_str, msg_len, hash_result, 0 );
368 #ifdef POLARSSL_SHA4_C
370 sha4( message_str, msg_len, hash_result, 1 );
373 sha4( message_str, msg_len, hash_result, 0 );
385 #ifdef POLARSSL_SHA1_C
387 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_3)
389 unsigned char message_str[1000];
390 unsigned char hash_result[1000];
391 unsigned char result_str[1000];
396 memset( message_str, 0x00, 1000 );
397 memset( hash_result, 0x00, 1000 );
398 memset( result_str, 0x00, 1000 );
401 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
406 msg_len =
unhexify( message_str,
"206ef4bf396c6087f8229ef196fd35f37ccb8de5efcdb238f20d556668f114257a11fbe038464a67830378e62ae9791453953dac1dbd7921837ba98e84e856eb80ed9487e656d0b20c28c8ba5e35db1abbed83ed1c7720a97701f709e3547a4bfcabca9c89c57ad15c3996577a0ae36d7c7b699035242f37954646c1cd5c08ac" );
407 unhexify( result_str,
"5abc01f5de25b70867ff0c24e222c61f53c88daf42586fddcd56f3c4588f074be3c328056c063388688b6385a8167957c6e5355a510e005b8a851d69c96b36ec6036644078210e5d7d326f96365ee0648882921492bc7b753eb9c26cdbab37555f210df2ca6fec1b25b463d38b81c0dcea202022b04af5da58aa03d77be949b7" );
411 #ifdef POLARSSL_MD2_C
413 md2( message_str, msg_len, hash_result );
416 #ifdef POLARSSL_MD4_C
418 md4( message_str, msg_len, hash_result );
421 #ifdef POLARSSL_MD5_C
423 md5( message_str, msg_len, hash_result );
426 #ifdef POLARSSL_SHA1_C
428 sha1( message_str, msg_len, hash_result );
431 #ifdef POLARSSL_SHA2_C
433 sha2( message_str, msg_len, hash_result, 1 );
436 sha2( message_str, msg_len, hash_result, 0 );
439 #ifdef POLARSSL_SHA4_C
441 sha4( message_str, msg_len, hash_result, 1 );
444 sha4( message_str, msg_len, hash_result, 0 );
456 #ifdef POLARSSL_SHA2_C
458 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_4)
460 unsigned char message_str[1000];
461 unsigned char hash_result[1000];
462 unsigned char result_str[1000];
467 memset( message_str, 0x00, 1000 );
468 memset( hash_result, 0x00, 1000 );
469 memset( result_str, 0x00, 1000 );
472 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
477 msg_len =
unhexify( message_str,
"867ac26e11a13b7ac34a42a1e177648692861226effb55bb597fbde10f299bf7fffd6fc8ddb2a46a73b97b67387a461b23e1d65dc119366286979add615b926b9272832fc0c058b946fc752dcffceca12233f4c63f7897cbaa08aa7e07cf02b5e7e3e5ece252bf2fe61d163bce84c0e0368454a98e9fdebf6edbd70b290d549b" );
478 unhexify( result_str,
"3bb7b1c5f3391de4549e2e96fd33afa4d647dd90e321d9d576f3808e32213e948b697ef4fd2dd12923de6ec3ffd625078a57f86af38dc07052bb50547c616ed51fa1352b3ab66788408168d21263ef2d3388d567d2ce8cf674f45491ab2b0319d47be1266bda39e343b2a38ea2d6aaaee6c4465aee1d7bb33e93a1c40a8e3ae4" );
482 #ifdef POLARSSL_MD2_C
484 md2( message_str, msg_len, hash_result );
487 #ifdef POLARSSL_MD4_C
489 md4( message_str, msg_len, hash_result );
492 #ifdef POLARSSL_MD5_C
494 md5( message_str, msg_len, hash_result );
497 #ifdef POLARSSL_SHA1_C
499 sha1( message_str, msg_len, hash_result );
502 #ifdef POLARSSL_SHA2_C
504 sha2( message_str, msg_len, hash_result, 1 );
507 sha2( message_str, msg_len, hash_result, 0 );
510 #ifdef POLARSSL_SHA4_C
512 sha4( message_str, msg_len, hash_result, 1 );
515 sha4( message_str, msg_len, hash_result, 0 );
527 #ifdef POLARSSL_SHA2_C
529 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_5)
531 unsigned char message_str[1000];
532 unsigned char hash_result[1000];
533 unsigned char result_str[1000];
538 memset( message_str, 0x00, 1000 );
539 memset( hash_result, 0x00, 1000 );
540 memset( result_str, 0x00, 1000 );
543 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
548 msg_len =
unhexify( message_str,
"cd810e97dc21095ea7a0238027a7bafd343e01444785ea9184a44a79f80438c41fc0b57aa95693407da38fe5ff0ec1398e03361e51a3dbe134b99cca2df0cef1c444ca54d2b7db2789455b6bb41918c24001fd82fc20ee089de3f34f053699c1c5f7954ce0aaabb9d26fce39d032894152229d98cf64ecafc7089530073c61d9" );
549 unhexify( result_str,
"7b5fba70ec5b521638f182bcab39cec30b76e7bc017bdbd1059658a9a1db0969ab482dce32f3e9865952f0a0de0978272c951e3c015328ea3758f47029a379ab4200550fba58f11d51264878406fc717d5f7b72b3582946f16a7e5314a220881fc820f7d29949710273421533d8ac0a449dc6d0fd1a21c22444edd1c0d5b44d3" );
553 #ifdef POLARSSL_MD2_C
555 md2( message_str, msg_len, hash_result );
558 #ifdef POLARSSL_MD4_C
560 md4( message_str, msg_len, hash_result );
563 #ifdef POLARSSL_MD5_C
565 md5( message_str, msg_len, hash_result );
568 #ifdef POLARSSL_SHA1_C
570 sha1( message_str, msg_len, hash_result );
573 #ifdef POLARSSL_SHA2_C
575 sha2( message_str, msg_len, hash_result, 1 );
578 sha2( message_str, msg_len, hash_result, 0 );
581 #ifdef POLARSSL_SHA4_C
583 sha4( message_str, msg_len, hash_result, 1 );
586 sha4( message_str, msg_len, hash_result, 0 );
598 #ifdef POLARSSL_SHA4_C
600 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_6)
602 unsigned char message_str[1000];
603 unsigned char hash_result[1000];
604 unsigned char result_str[1000];
609 memset( message_str, 0x00, 1000 );
610 memset( hash_result, 0x00, 1000 );
611 memset( result_str, 0x00, 1000 );
614 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
619 msg_len =
unhexify( message_str,
"44637d3b8de525fd589237bc81229c8966d3af24540850c24036330db8007e6d19a19486018b2b02074da590aaba9d2c8848c0a2d1b6de4dfaf24025b6393df9228008f83f13cc76a67cfbed77a6e3429342824a0b6a9b8dd884094acc6a54bbc8c8829930c52fe39ce5e0dcd02d9553ef899d26eb6cae0940b63584e2daeb3b" );
620 unhexify( result_str,
"38fc4f6f0430bb3ea9f470a4c0f5cebdabac4dbeb3b9c99d4168e7b00f5eb294ec0ece1908eded1f3e14f1e69d10f9feb425bda0c998af945ef864298a60a675f0bb5c540a7be3f534d5faddff974eea8bffe182a44e2ee1f4f653e71967a11869ee1a850edb03cb44a340378cb7a1bc9616d3649b78002b390a05a7e54edec6" );
624 #ifdef POLARSSL_MD2_C
626 md2( message_str, msg_len, hash_result );
629 #ifdef POLARSSL_MD4_C
631 md4( message_str, msg_len, hash_result );
634 #ifdef POLARSSL_MD5_C
636 md5( message_str, msg_len, hash_result );
639 #ifdef POLARSSL_SHA1_C
641 sha1( message_str, msg_len, hash_result );
644 #ifdef POLARSSL_SHA2_C
646 sha2( message_str, msg_len, hash_result, 1 );
649 sha2( message_str, msg_len, hash_result, 0 );
652 #ifdef POLARSSL_SHA4_C
654 sha4( message_str, msg_len, hash_result, 1 );
657 sha4( message_str, msg_len, hash_result, 0 );
669 #ifdef POLARSSL_SHA4_C
671 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_7)
673 unsigned char message_str[1000];
674 unsigned char hash_result[1000];
675 unsigned char result_str[1000];
680 memset( message_str, 0x00, 1000 );
681 memset( hash_result, 0x00, 1000 );
682 memset( result_str, 0x00, 1000 );
685 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
690 msg_len =
unhexify( message_str,
"d03f12276f6ba7545b8fce719471bd253791878809694e8754f3b389f26c9253a758ed28b4c62535a8d5702d7a778731d5759ff2b3b39b192db680e791632918b6093c0e8ca25c2bf756a07fde4144a37f769fe4054455a45cb8cefe4462e7a9a45ce71f2189b4fef01b47aee8585d44dc9d6fa627a3e5f08801871731f234cd" );
691 unhexify( result_str,
"d93a878c1ce86571590b0e43794b3edb23552797c4b8c9e3da4fe1cc4ac0566acd3b10541fe9a7a79f5ea4892d3069ca6903efb5c40c47eb8a9c781eb4249281d40c3d96aae16da1bb4daaece6a26eca5f41c062b4124a64fc9d340cba5ab0d1f5affff6515a87f0933774fd4322d2fa497cd6f708a429ca56dcb1fd3db623d0" );
695 #ifdef POLARSSL_MD2_C
697 md2( message_str, msg_len, hash_result );
700 #ifdef POLARSSL_MD4_C
702 md4( message_str, msg_len, hash_result );
705 #ifdef POLARSSL_MD5_C
707 md5( message_str, msg_len, hash_result );
710 #ifdef POLARSSL_SHA1_C
712 sha1( message_str, msg_len, hash_result );
715 #ifdef POLARSSL_SHA2_C
717 sha2( message_str, msg_len, hash_result, 1 );
720 sha2( message_str, msg_len, hash_result, 0 );
723 #ifdef POLARSSL_SHA4_C
725 sha4( message_str, msg_len, hash_result, 1 );
728 sha4( message_str, msg_len, hash_result, 0 );
740 #ifdef POLARSSL_SHA4_C
742 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_8)
744 unsigned char message_str[1000];
745 unsigned char hash_result[1000];
746 unsigned char result_str[1000];
751 memset( message_str, 0x00, 1000 );
752 memset( hash_result, 0x00, 1000 );
753 memset( result_str, 0x00, 1000 );
756 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
761 msg_len =
unhexify( message_str,
"b2f2e6e09fd19b0a8c06447554d6a236c69e2b334017488881d8c02ab81d74cae0c64efd50a374998eeec162651975e637cb2ba594250c750a4943253f1db0613e4ce1d50f8e3e968a2a83bd6cb97455ab2ccc77071076b3e211ffb251bd4c1a738b88b2021c61c727c074ce933c054acbcbf4f0c362ec09af38de191686aebe" );
762 unhexify( result_str,
"a853e67f928281d11506c9d39e5ea9b2d742782c663c37d0a7c9e9fe15379cde1e75d94adbfb1ca08691f320af4ff2b0a29a4d2ea10a20cb95d85f3dabac3d56cca9039c851d0181408c00b385fc82cafa4cfa7380d0c2c024fb83fec59d5ee591d63806dcb18b21ea440c3d3f12c1e7795eb15b7ce4c4b288d646cf1d34bdf1" );
766 #ifdef POLARSSL_MD2_C
768 md2( message_str, msg_len, hash_result );
771 #ifdef POLARSSL_MD4_C
773 md4( message_str, msg_len, hash_result );
776 #ifdef POLARSSL_MD5_C
778 md5( message_str, msg_len, hash_result );
781 #ifdef POLARSSL_SHA1_C
783 sha1( message_str, msg_len, hash_result );
786 #ifdef POLARSSL_SHA2_C
788 sha2( message_str, msg_len, hash_result, 1 );
791 sha2( message_str, msg_len, hash_result, 0 );
794 #ifdef POLARSSL_SHA4_C
796 sha4( message_str, msg_len, hash_result, 1 );
799 sha4( message_str, msg_len, hash_result, 0 );
811 #ifdef POLARSSL_SHA1_C
813 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_9)
815 unsigned char message_str[1000];
816 unsigned char hash_result[1000];
817 unsigned char result_str[1000];
822 memset( message_str, 0x00, 1000 );
823 memset( hash_result, 0x00, 1000 );
824 memset( result_str, 0x00, 1000 );
827 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
832 msg_len =
unhexify( message_str,
"647586ba587b09aa555d1b8da4cdf5c6e777e08859379ca45789019f2041e708d97c4408d4d6943b11dd7ebe05c6b48a9b5f1b0079452cc484579acfa66a34c0cf3f0e7339b2dbd5f1339ef7937a8261547705a846885c43d8ef139a9c83f5604ea52b231176a821fb48c45ed45226f31ba7e8a94a69f6c65c39b7278bf3f08f" );
833 unhexify( result_str,
"e27a90b644c3a11f234132d6727ada397774cd7fdf5eb0160a665ffccedabb8ae9e357966939a71c973e75e5ff771fb01a6483fcaf82f16dee65e6826121e2ae9c69d2c92387b33a641f397676776cde501e7314a9a4e76c0f4538edeea163e8de7bd21c93c298df748c6f5c26b7d03bfa3671f2a7488fe311309e8218a71171" );
837 #ifdef POLARSSL_MD2_C
839 md2( message_str, msg_len, hash_result );
842 #ifdef POLARSSL_MD4_C
844 md4( message_str, msg_len, hash_result );
847 #ifdef POLARSSL_MD5_C
849 md5( message_str, msg_len, hash_result );
852 #ifdef POLARSSL_SHA1_C
854 sha1( message_str, msg_len, hash_result );
857 #ifdef POLARSSL_SHA2_C
859 sha2( message_str, msg_len, hash_result, 1 );
862 sha2( message_str, msg_len, hash_result, 0 );
865 #ifdef POLARSSL_SHA4_C
867 sha4( message_str, msg_len, hash_result, 1 );
870 sha4( message_str, msg_len, hash_result, 0 );
882 #ifdef POLARSSL_SHA1_C
884 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_10)
886 unsigned char message_str[1000];
887 unsigned char hash_result[1000];
888 unsigned char result_str[1000];
893 memset( message_str, 0x00, 1000 );
894 memset( hash_result, 0x00, 1000 );
895 memset( result_str, 0x00, 1000 );
898 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
903 msg_len =
unhexify( message_str,
"55013a489e09b6553262aab59fb041b49437b86d52876f8e5d5e405b77ca0ff6ce8ea2dd75c7b3b411cf4445d56233c5b0ff0e58c49128d81b4fedd295e172d225c451e13defb34b87b7aea6d6f0d20f5c55feb71d2a789fa31f3d9ff47896adc16bec5ce0c9dda3fde190e08ca2451c01ff3091449887695f96dac97ad6a30e" );
904 unhexify( result_str,
"dd82b7be791c454fbbf6f1de47cbe585a687e4e8bbae0b6e2a77f8ca4efd06d71498f9a74b931bd59c377e71daf708a624c51303f377006c676487bad57f7067b09b7bb94a6189119ab8cf7321c321b2dc7df565bfbec833a28b86625fb5fd6a035d4ed79ff0f9aee9fa78935eec65069439ee449d7f5249cdae6fdd6d8c2a63" );
908 #ifdef POLARSSL_MD2_C
910 md2( message_str, msg_len, hash_result );
913 #ifdef POLARSSL_MD4_C
915 md4( message_str, msg_len, hash_result );
918 #ifdef POLARSSL_MD5_C
920 md5( message_str, msg_len, hash_result );
923 #ifdef POLARSSL_SHA1_C
925 sha1( message_str, msg_len, hash_result );
928 #ifdef POLARSSL_SHA2_C
930 sha2( message_str, msg_len, hash_result, 1 );
933 sha2( message_str, msg_len, hash_result, 0 );
936 #ifdef POLARSSL_SHA4_C
938 sha4( message_str, msg_len, hash_result, 1 );
941 sha4( message_str, msg_len, hash_result, 0 );
953 #ifdef POLARSSL_SHA2_C
955 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_11)
957 unsigned char message_str[1000];
958 unsigned char hash_result[1000];
959 unsigned char result_str[1000];
964 memset( message_str, 0x00, 1000 );
965 memset( hash_result, 0x00, 1000 );
966 memset( result_str, 0x00, 1000 );
969 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
974 msg_len =
unhexify( message_str,
"f4a990b8d434a5914340c0ca3ca4e4a70856c55e13e938c1f854e91cdef54c6107d6d682a62e6c1ff12b1c6178ee0b26b5d8ae5ee4043db4151465727f313e9e174d7c6961abe9cb86a21367a89e41b47267ac5ef3a6eceaaca5b19ae756b3904b97ec35aeb404dc2a2d0da373ba709a678d2728e7d72daae68d335cbf6c957d" );
975 unhexify( result_str,
"d8ef7bdc0f111b1249d5ad6515b6fe37f2ff327f493832f1385c10e975c07b0266497716fcb84f5039cd60f5a050614fde27f354a6c45e8a7d74f9821e2f301500ac1953feafeb9d98cf88d2c928413f337813135c66abfc3dc7a4d80655d925bf96f21872ca2b3a2684b976ca768fe37feae20a69eeec3cc8f1de0db34b3462" );
979 #ifdef POLARSSL_MD2_C
981 md2( message_str, msg_len, hash_result );
984 #ifdef POLARSSL_MD4_C
986 md4( message_str, msg_len, hash_result );
989 #ifdef POLARSSL_MD5_C
991 md5( message_str, msg_len, hash_result );
994 #ifdef POLARSSL_SHA1_C
996 sha1( message_str, msg_len, hash_result );
999 #ifdef POLARSSL_SHA2_C
1001 sha2( message_str, msg_len, hash_result, 1 );
1004 sha2( message_str, msg_len, hash_result, 0 );
1007 #ifdef POLARSSL_SHA4_C
1009 sha4( message_str, msg_len, hash_result, 1 );
1012 sha4( message_str, msg_len, hash_result, 0 );
1024 #ifdef POLARSSL_SHA2_C
1026 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_12)
1028 unsigned char message_str[1000];
1029 unsigned char hash_result[1000];
1030 unsigned char result_str[1000];
1035 memset( message_str, 0x00, 1000 );
1036 memset( hash_result, 0x00, 1000 );
1037 memset( result_str, 0x00, 1000 );
1040 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
1045 msg_len =
unhexify( message_str,
"c81f04c79982971fa176d64e8f7f8812f86a94c49e84672ff10996a2d6dfc444a884c7a87c4606a1aab22558894ee59b798b457827f5ee0b0cadcd94371902cc4ddaf97acefed641997717bcb3cc74cd440f0a31e20fb95812cecb740c36d6d1bf07e3641514cfa678aff2a39562ff4d60e02b17583a92bf0c56d66bde9e09f8" );
1046 unhexify( result_str,
"52111f4798da3c11b3c74394358348ab0fc797bde99080f238d33a69b04b08ac2bd767b33872473943e23af27ca32fd568a43a8c7d6cc55b4fbb380212fdfcb60487e20694d4287e233efdf7b04737c0037a592d03077801828b051998c42b9f9e2420063331d5b2349918a64d8b65b21a2011ee7318fcef48aced95b8ddf501" );
1050 #ifdef POLARSSL_MD2_C
1052 md2( message_str, msg_len, hash_result );
1055 #ifdef POLARSSL_MD4_C
1057 md4( message_str, msg_len, hash_result );
1060 #ifdef POLARSSL_MD5_C
1062 md5( message_str, msg_len, hash_result );
1065 #ifdef POLARSSL_SHA1_C
1067 sha1( message_str, msg_len, hash_result );
1070 #ifdef POLARSSL_SHA2_C
1072 sha2( message_str, msg_len, hash_result, 1 );
1075 sha2( message_str, msg_len, hash_result, 0 );
1078 #ifdef POLARSSL_SHA4_C
1080 sha4( message_str, msg_len, hash_result, 1 );
1083 sha4( message_str, msg_len, hash_result, 0 );
1095 #ifdef POLARSSL_SHA4_C
1097 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_13)
1099 unsigned char message_str[1000];
1100 unsigned char hash_result[1000];
1101 unsigned char result_str[1000];
1106 memset( message_str, 0x00, 1000 );
1107 memset( hash_result, 0x00, 1000 );
1108 memset( result_str, 0x00, 1000 );
1111 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
1116 msg_len =
unhexify( message_str,
"a97824871770b79da979a111f6decfb1dd11bd946cfa800b008f0ad5aea5aa92e205d27a46c31d4fe6cb909091bd21f082fb75074000ee46c2f3e530d77b34c7c5d6f8453025950d3e0afae1f9752655f5bbea8432e9f1014357ff11b08076179a101e4f9d3f25bffb5e656bf6afe6c97d7aa4740b5d9224cde4dede035a7768" );
1117 unhexify( result_str,
"d5dcd27c74e040ea86f106b63d3275fa7b7e98d2dd701f38ec15fc7301b72df127f6d3bd5571253a0b9e0e719d7d522893896941a1aeccc697912282b5308d829b91905b5dd7b7e1b8fe27e2bd4003b09dfe7fe295f8a43c076c0cb52f2aac067e87de7ffe3a275d21a870c3dfc9b1d06d7f018667de9eb187bdf53d282e5d8b" );
1121 #ifdef POLARSSL_MD2_C
1123 md2( message_str, msg_len, hash_result );
1126 #ifdef POLARSSL_MD4_C
1128 md4( message_str, msg_len, hash_result );
1131 #ifdef POLARSSL_MD5_C
1133 md5( message_str, msg_len, hash_result );
1136 #ifdef POLARSSL_SHA1_C
1138 sha1( message_str, msg_len, hash_result );
1141 #ifdef POLARSSL_SHA2_C
1143 sha2( message_str, msg_len, hash_result, 1 );
1146 sha2( message_str, msg_len, hash_result, 0 );
1149 #ifdef POLARSSL_SHA4_C
1151 sha4( message_str, msg_len, hash_result, 1 );
1154 sha4( message_str, msg_len, hash_result, 0 );
1166 #ifdef POLARSSL_SHA4_C
1168 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_14)
1170 unsigned char message_str[1000];
1171 unsigned char hash_result[1000];
1172 unsigned char result_str[1000];
1177 memset( message_str, 0x00, 1000 );
1178 memset( hash_result, 0x00, 1000 );
1179 memset( result_str, 0x00, 1000 );
1182 fct_chk(
mpi_read_string( &ctx.
N, 16,
"e28a13548525e5f36dccb24ecb7cc332cc689dfd64012604c9c7816d72a16c3f5fcdc0e86e7c03280b1c69b586ce0cd8aec722cc73a5d3b730310bf7dfebdc77ce5d94bbc369dc18a2f7b07bd505ab0f82224aef09fdc1e5063234255e0b3c40a52e9e8ae60898eb88a766bdd788fe9493d8fd86bcdd2884d5c06216c65469e5" ) == 0 );
1187 msg_len =
unhexify( message_str,
"4ce61930c79dc017c2dea0c5085d73a3b0e4a6f341e9a5061a6658af11e5edf95bdad915ac3619969e39bee15788a8de667f92f4efc84f35082d52d562aa74e12cc7f22d3425b58f5056d74afcf162cd44e65b9ee510ff91af094c3d2d42c3b088536d62a98f1c689edcf3ea3fc228d711c109d76ae83d82d6a34dcfbad563cf" );
1188 unhexify( result_str,
"27280b92eab5cbf0d787ff6fa6b0151d6610adfd25116113f2f186f3f8d39736d91ae510ec2bd96f2de135aefda79178138696dcc6d302e4a79ddabbe16e39ab96075776afce863e84a2e6013cb457e4047e22d43f67bf64ae5e1d844a7c12ac696efbb3cda7c0e0aca71f8a7ada9a0547bfaefe1ba2e04058c672c803720dd9" );
1192 #ifdef POLARSSL_MD2_C
1194 md2( message_str, msg_len, hash_result );
1197 #ifdef POLARSSL_MD4_C
1199 md4( message_str, msg_len, hash_result );
1202 #ifdef POLARSSL_MD5_C
1204 md5( message_str, msg_len, hash_result );
1207 #ifdef POLARSSL_SHA1_C
1209 sha1( message_str, msg_len, hash_result );
1212 #ifdef POLARSSL_SHA2_C
1214 sha2( message_str, msg_len, hash_result, 1 );
1217 sha2( message_str, msg_len, hash_result, 0 );
1220 #ifdef POLARSSL_SHA4_C
1222 sha4( message_str, msg_len, hash_result, 1 );
1225 sha4( message_str, msg_len, hash_result, 0 );
1237 #ifdef POLARSSL_SHA1_C
1239 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_15)
1241 unsigned char message_str[1000];
1242 unsigned char hash_result[1000];
1243 unsigned char result_str[1000];
1248 memset( message_str, 0x00, 1000 );
1249 memset( hash_result, 0x00, 1000 );
1250 memset( result_str, 0x00, 1000 );
1253 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1258 msg_len =
unhexify( message_str,
"224ecd3b630581da948216366c741015a9723c5ea43de67e28454d0a846f54a6df167a25cc500cf21f729aaefed6a71a3bdba438e12e20ad0c48396afe38568b70a3187f26098d6ac649a7c7ea68ed52748e7125225102216236a28f67753b077cfd8d9198b86b0b331027cb59b24b85fd92896e8f2ff5a1d11872c2e6af6ae2" );
1259 unhexify( result_str,
"1f7938b20a9cd8bb8ca26bad9e79ea92373174203f3ab212a06de34a9a3e14e102d19a8878c28a2fc8083a97c06b19c1ae62678289d5d071a904aed1d364655d9e2d16480a6fd18f4c8edf204844a34d573b1b988b82d495caefd9298c1635083e196a11f4a7df6a7e3cc4db7b9642e7682d22ec7038c3bad791e1365fe8836976092460e6df749dc032baf1e026684f55936beb9369845c53c3d217941c1f8d8f54a32333a4c049c3f2d527125778032f5d390040d1d4cce83dc353ce250152" );
1263 #ifdef POLARSSL_MD2_C
1265 md2( message_str, msg_len, hash_result );
1268 #ifdef POLARSSL_MD4_C
1270 md4( message_str, msg_len, hash_result );
1273 #ifdef POLARSSL_MD5_C
1275 md5( message_str, msg_len, hash_result );
1278 #ifdef POLARSSL_SHA1_C
1280 sha1( message_str, msg_len, hash_result );
1283 #ifdef POLARSSL_SHA2_C
1285 sha2( message_str, msg_len, hash_result, 1 );
1288 sha2( message_str, msg_len, hash_result, 0 );
1291 #ifdef POLARSSL_SHA4_C
1293 sha4( message_str, msg_len, hash_result, 1 );
1296 sha4( message_str, msg_len, hash_result, 0 );
1308 #ifdef POLARSSL_SHA2_C
1310 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_16)
1312 unsigned char message_str[1000];
1313 unsigned char hash_result[1000];
1314 unsigned char result_str[1000];
1319 memset( message_str, 0x00, 1000 );
1320 memset( hash_result, 0x00, 1000 );
1321 memset( result_str, 0x00, 1000 );
1324 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1329 msg_len =
unhexify( message_str,
"6ecc722d233dad1aca45e6bc3e1a0b99fb1f89c0ec63bc657e6aaacbf931f267106cff42b712819f341b1ede798964a0b1a5032c198b391111e88d0d7303c02e23fa0137e74e604579a285b2dbc0a23aebdda65c371eb403125bd366e822e72dceffe0d55dfa3155c16283020dc9abb0d150da1aef251484aa49e49e00974dac" );
1330 unhexify( result_str,
"339dce3a1937669d9fb14c4f652378861fd5adc4da88eaf833b16020b55a24ddc83b7ae3395a9a49b426bb9a4170cb765b02652faa9594b457aeefdae4f802e93d8e65c687ddc723701465a5ef19249ed5d2617b5121c58557b34eb99a663bbcf4453a6e1db5d88723de449fcf58ca8ef514daf08cfdc71be155bb3d0724df0c0a6fd5aa7737433cc376640b9b8b4c7ddd09776bae0245729cddb56e36f28edad6aecaed0821ec8d843a96348e722bf0a84cf060a793a2179f054138f907d0c3" );
1334 #ifdef POLARSSL_MD2_C
1336 md2( message_str, msg_len, hash_result );
1339 #ifdef POLARSSL_MD4_C
1341 md4( message_str, msg_len, hash_result );
1344 #ifdef POLARSSL_MD5_C
1346 md5( message_str, msg_len, hash_result );
1349 #ifdef POLARSSL_SHA1_C
1351 sha1( message_str, msg_len, hash_result );
1354 #ifdef POLARSSL_SHA2_C
1356 sha2( message_str, msg_len, hash_result, 1 );
1359 sha2( message_str, msg_len, hash_result, 0 );
1362 #ifdef POLARSSL_SHA4_C
1364 sha4( message_str, msg_len, hash_result, 1 );
1367 sha4( message_str, msg_len, hash_result, 0 );
1379 #ifdef POLARSSL_SHA2_C
1381 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_17)
1383 unsigned char message_str[1000];
1384 unsigned char hash_result[1000];
1385 unsigned char result_str[1000];
1390 memset( message_str, 0x00, 1000 );
1391 memset( hash_result, 0x00, 1000 );
1392 memset( result_str, 0x00, 1000 );
1395 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1400 msg_len =
unhexify( message_str,
"72f0b1ae27e1f5e5bfa15ded204c2c54b47b2420750a3eb5471f9ff98b67c8b5f1a30d3f8d6448562e12ce4deb33a26cfeeae993d6be9e20679d8713c5216870f11276e5f22b0ead2821a7b4dee106fc1e19b13fc9fba5d6e73e4bd93b65a9881a43d5e97ebfb0b357d5d06b21ddbecdbb10626d7748bb9e6e07d49316bbf3c4" );
1401 unhexify( result_str,
"8117a6897e14c183737661cf5741350a84ae00495cd9ee8fb033582e559f79701ab424706660515ee5821a69a6850647ec641676a625d1a3899932aaa52161fbc0c0a825db82fde0585b3c9b9c16de43e26da6a30fe5a601dae68bded1e29ec34557b5f6962efb10b9450d6f096655f68e8499cfa16a0adeb9075e7b91851fef84243132d08273d35d01ad89c17e1e6e4deaf1cb233050b275fa9d2cae57e9e1a0e23139267040aa39b6abd8f10fa1cec38ce2183573ddc11626fc262e1a0ced" );
1405 #ifdef POLARSSL_MD2_C
1407 md2( message_str, msg_len, hash_result );
1410 #ifdef POLARSSL_MD4_C
1412 md4( message_str, msg_len, hash_result );
1415 #ifdef POLARSSL_MD5_C
1417 md5( message_str, msg_len, hash_result );
1420 #ifdef POLARSSL_SHA1_C
1422 sha1( message_str, msg_len, hash_result );
1425 #ifdef POLARSSL_SHA2_C
1427 sha2( message_str, msg_len, hash_result, 1 );
1430 sha2( message_str, msg_len, hash_result, 0 );
1433 #ifdef POLARSSL_SHA4_C
1435 sha4( message_str, msg_len, hash_result, 1 );
1438 sha4( message_str, msg_len, hash_result, 0 );
1450 #ifdef POLARSSL_SHA4_C
1452 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_18)
1454 unsigned char message_str[1000];
1455 unsigned char hash_result[1000];
1456 unsigned char result_str[1000];
1461 memset( message_str, 0x00, 1000 );
1462 memset( hash_result, 0x00, 1000 );
1463 memset( result_str, 0x00, 1000 );
1466 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1471 msg_len =
unhexify( message_str,
"f80c94a2b53736978adf041886ad97ab2aeb9e91c08bd4eeef6b2f2b8dd75a99b4506657188bbd7597bd5759121630627c8bf9cc30d90dd488c7a81cabab5350a62fa30abf5523f305b98f2c2c1743ec980cf26ab8219bfd9505b981ab1abbfef733b384519d5259fc5c14577cb6b88fa7f6f332ff6a65b23faecc24342c78e9" );
1472 unhexify( result_str,
"6b49553ed964ae196a41ea281f4d2a250ce7d1e7434e45cf6a82f7bed17554f39c3f0241e0364702fcb87475eb0c0839ffd2180890fa05b4bbf31bbfa4bf5119dea0c9f88e1e9617fcdadabc6fa1945136cc66e039b905d78ed365c5806d38aec88b3edfb86c05ff446dbfd51d7cd75cbf8d3b85154c783765386f51637532221f52429db5612dcc034968bb8feab7dc6f5ed1f2feb557f6dd49c980296117be2c4195ec7b6101ea767df9d16a56fc9709b49308a54dab63dbc4d609f959ce17" );
1476 #ifdef POLARSSL_MD2_C
1478 md2( message_str, msg_len, hash_result );
1481 #ifdef POLARSSL_MD4_C
1483 md4( message_str, msg_len, hash_result );
1486 #ifdef POLARSSL_MD5_C
1488 md5( message_str, msg_len, hash_result );
1491 #ifdef POLARSSL_SHA1_C
1493 sha1( message_str, msg_len, hash_result );
1496 #ifdef POLARSSL_SHA2_C
1498 sha2( message_str, msg_len, hash_result, 1 );
1501 sha2( message_str, msg_len, hash_result, 0 );
1504 #ifdef POLARSSL_SHA4_C
1506 sha4( message_str, msg_len, hash_result, 1 );
1509 sha4( message_str, msg_len, hash_result, 0 );
1521 #ifdef POLARSSL_SHA4_C
1523 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_19)
1525 unsigned char message_str[1000];
1526 unsigned char hash_result[1000];
1527 unsigned char result_str[1000];
1532 memset( message_str, 0x00, 1000 );
1533 memset( hash_result, 0x00, 1000 );
1534 memset( result_str, 0x00, 1000 );
1537 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1542 msg_len =
unhexify( message_str,
"4eb97094bb42aaa58b040bd06a8f324396b9eca9e39359b7039c4a010434ee131a53aebd9f7a55ae58ea7444fa1505a3ec524e054fd408513cddc1ee4c2f7fd95ec4a6f594be1ba39fa1aa933dc0a5dafff5ce44509577ebb3a3e8084c44010aa27321e5a3f646ade99175633b795c0f570b360eeebeefaef15788f80b5cbecd" );
1543 unhexify( result_str,
"2b8b794a8621d492eec18a4efd239e0e077c89340a34b0fdbf467f2bf3112c7f33d00ee736f2988af8569c1a74891efbefa839e295fffdf4d908c1ede61a861a4d24b154a09d1b3f923fd2bb7906994cf82a97da285bf48e61f90cc3596f9350ab9b66a216ffca323195bb213f5a77fe8c697475595a1857dbee58128cbf1be7cb220229ce52766fefd88cc129ad5cbbdcd31fb4eede6c4fdd3193a9aaaa54362bcea4082981d9b7c40483814828f3297d95ad933c76f31c47e37a93ffaf0d4a" );
1547 #ifdef POLARSSL_MD2_C
1549 md2( message_str, msg_len, hash_result );
1552 #ifdef POLARSSL_MD4_C
1554 md4( message_str, msg_len, hash_result );
1557 #ifdef POLARSSL_MD5_C
1559 md5( message_str, msg_len, hash_result );
1562 #ifdef POLARSSL_SHA1_C
1564 sha1( message_str, msg_len, hash_result );
1567 #ifdef POLARSSL_SHA2_C
1569 sha2( message_str, msg_len, hash_result, 1 );
1572 sha2( message_str, msg_len, hash_result, 0 );
1575 #ifdef POLARSSL_SHA4_C
1577 sha4( message_str, msg_len, hash_result, 1 );
1580 sha4( message_str, msg_len, hash_result, 0 );
1592 #ifdef POLARSSL_SHA1_C
1594 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_20)
1596 unsigned char message_str[1000];
1597 unsigned char hash_result[1000];
1598 unsigned char result_str[1000];
1603 memset( message_str, 0x00, 1000 );
1604 memset( hash_result, 0x00, 1000 );
1605 memset( result_str, 0x00, 1000 );
1608 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1613 msg_len =
unhexify( message_str,
"a3edb0f52c6166d7b76e71634761f402337c3e9667549d00cd7877e6055396b35c54c4dffc4c987060178fc10b7e5e827a5c870057002ba6efd31fc4e63a429029be0d6b256b6b653775cb026322743f48e319d053c4aeac34077acb8e0c6c2ef375b2210f8788bd23d24eb0b614de41875b1c8ec56acf18825eaf826691be96" );
1614 unhexify( result_str,
"180630d2f4dc91ddb1159978e278cda7ac4b178e82477f9770c4d2e1c5017d2f222348658044c1be4cda24ce3c9ba3d423536a39bf60324c1b30eabdad700b0982e58072f7e18216e7e4c07e17674ec3eabcfbafce317d2f539f129902d80031ca201a8b325629a96ca4a70b51294c2fddd1d0aca1537d7d8b780e1e62d34be2f98104d876a4990396c8628e6498d9651f468bdf1139664eabe9166efbe909bf87d7305d5f60f1acc3599ed339fcf4e009fbad4059af1a50264cb0a4ec1d23f3" );
1618 #ifdef POLARSSL_MD2_C
1620 md2( message_str, msg_len, hash_result );
1623 #ifdef POLARSSL_MD4_C
1625 md4( message_str, msg_len, hash_result );
1628 #ifdef POLARSSL_MD5_C
1630 md5( message_str, msg_len, hash_result );
1633 #ifdef POLARSSL_SHA1_C
1635 sha1( message_str, msg_len, hash_result );
1638 #ifdef POLARSSL_SHA2_C
1640 sha2( message_str, msg_len, hash_result, 1 );
1643 sha2( message_str, msg_len, hash_result, 0 );
1646 #ifdef POLARSSL_SHA4_C
1648 sha4( message_str, msg_len, hash_result, 1 );
1651 sha4( message_str, msg_len, hash_result, 0 );
1663 #ifdef POLARSSL_SHA1_C
1665 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_21)
1667 unsigned char message_str[1000];
1668 unsigned char hash_result[1000];
1669 unsigned char result_str[1000];
1674 memset( message_str, 0x00, 1000 );
1675 memset( hash_result, 0x00, 1000 );
1676 memset( result_str, 0x00, 1000 );
1679 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1684 msg_len =
unhexify( message_str,
"ac58fd024208d7f045d81a56cd55aad40ab86b0d216ab55136c7027aca23ea13480a52c0dacce0d98139b25965aa4ff76a41dd92037195d24bc0750d52cb3467b48b7b3e71d852c5f82bd9ee85a8388ead5cd8bc38c3d4792e8daa9734a137d31963e245ad3217fad235f7dfd5584de0fe91c4526568588e08b60bdf1badd99f" );
1685 unhexify( result_str,
"a142b0d9456f8f4772675265a08613a66c416bd1ae712975c69d9ca5fb8c1be9c24359a04fd15460bf6136a8a11f13e3ce2de2171524f10cb715f0d71e3db15281ab99eadbe86cf8c5c518162c638ef27a4f7bfb4a1a3873f3c384a5b1c3b4966c837b9d8d192ac34e03943b7ae191355aa1ff3b9cd041bb2668f1f81cf0d015b3d3608cd9ac79398212c0f132f1bd45d47768b999fcf3c05fe2069593ceecedc851a7fc465abcfef0fabba9b9460153f6ba8723a5c6e766c83a446aef3ee327" );
1689 #ifdef POLARSSL_MD2_C
1691 md2( message_str, msg_len, hash_result );
1694 #ifdef POLARSSL_MD4_C
1696 md4( message_str, msg_len, hash_result );
1699 #ifdef POLARSSL_MD5_C
1701 md5( message_str, msg_len, hash_result );
1704 #ifdef POLARSSL_SHA1_C
1706 sha1( message_str, msg_len, hash_result );
1709 #ifdef POLARSSL_SHA2_C
1711 sha2( message_str, msg_len, hash_result, 1 );
1714 sha2( message_str, msg_len, hash_result, 0 );
1717 #ifdef POLARSSL_SHA4_C
1719 sha4( message_str, msg_len, hash_result, 1 );
1722 sha4( message_str, msg_len, hash_result, 0 );
1734 #ifdef POLARSSL_SHA2_C
1736 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_22)
1738 unsigned char message_str[1000];
1739 unsigned char hash_result[1000];
1740 unsigned char result_str[1000];
1745 memset( message_str, 0x00, 1000 );
1746 memset( hash_result, 0x00, 1000 );
1747 memset( result_str, 0x00, 1000 );
1750 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1755 msg_len =
unhexify( message_str,
"027f767928a5821e2723d6f36c43e6b498b6f0b381852571794a096bd49f1c36a4d7bacec7ec402c24b970163169173bb930ec7fdc39bc9457dfc4ca051f5f28a64de1bbe007c22e8368ff9b117dbda17efd2fb73434bbbf5a4158df56813b8c904bb2e779de504dcd974a291568210d6f85810291606a1c0cd88d51ceadf98a" );
1756 unhexify( result_str,
"0676e64daaa18f4af46e9dfbe234db389b8a527b0fe1db97eb7f404e3155226cba70d318800f83160fa1aa19916e5c09f079331079f18cb8ab1a4b884cb28501824974f683ed2b9babae9f8c15bea30802805c6b2152119764811bbf5f3994d2e97fa2fe8c5ab15a23c14d7ae56be00eaa8bc26678481ff5ba59b0acfb0e43341bff9fc638e5625480a73dbc5d8d13bd2b9e64037c6b79df0c60869980c6a22ec46f80fb859cb4ee5d2032ac1fe538cfd85c70a7f33b4af50a93395917c2cfb6" );
1760 #ifdef POLARSSL_MD2_C
1762 md2( message_str, msg_len, hash_result );
1765 #ifdef POLARSSL_MD4_C
1767 md4( message_str, msg_len, hash_result );
1770 #ifdef POLARSSL_MD5_C
1772 md5( message_str, msg_len, hash_result );
1775 #ifdef POLARSSL_SHA1_C
1777 sha1( message_str, msg_len, hash_result );
1780 #ifdef POLARSSL_SHA2_C
1782 sha2( message_str, msg_len, hash_result, 1 );
1785 sha2( message_str, msg_len, hash_result, 0 );
1788 #ifdef POLARSSL_SHA4_C
1790 sha4( message_str, msg_len, hash_result, 1 );
1793 sha4( message_str, msg_len, hash_result, 0 );
1805 #ifdef POLARSSL_SHA2_C
1807 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_23)
1809 unsigned char message_str[1000];
1810 unsigned char hash_result[1000];
1811 unsigned char result_str[1000];
1816 memset( message_str, 0x00, 1000 );
1817 memset( hash_result, 0x00, 1000 );
1818 memset( result_str, 0x00, 1000 );
1821 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1826 msg_len =
unhexify( message_str,
"06dcd9d4c056b6a45b9ed2ae5f6c1cfa43aae06fe01ee098264aa7a80e901abbcf9a505e55f9a352ef0c078d48249b8298e57ea21bf0e423c3bf69002acfa541ca05007c704bc79cee7a80e1107c7b28d2b2aa6dd093b28efe9642519952a4a95ee49235f9924a0ac0aee5b2a1bce47459d70cd6e75074614199dca44561407c" );
1827 unhexify( result_str,
"5e08f399258e6de075b67a0a6a822ceb21b1eb7a0342eca6a4295739f644547dee3456243cf32bd6ea6f357c88632508457130f3dae04f7806efaed43d1d501e16c961dfbd6c71a42b480e95c7027f8275063d05a9aac3eef0520867b9896ebe8ec358f7d121beb4e61ddfdc3dcd835dfe265f2ba68d300ef566ed1284f9f3d7b1af363ed47bfa2e5f0492925444df7e5fcb1e79e690c746117650b543a5e82c39553552f0f44e617b5cf773c533050f4129e893ac22af69b1eb9afb4b5ba5f5" );
1831 #ifdef POLARSSL_MD2_C
1833 md2( message_str, msg_len, hash_result );
1836 #ifdef POLARSSL_MD4_C
1838 md4( message_str, msg_len, hash_result );
1841 #ifdef POLARSSL_MD5_C
1843 md5( message_str, msg_len, hash_result );
1846 #ifdef POLARSSL_SHA1_C
1848 sha1( message_str, msg_len, hash_result );
1851 #ifdef POLARSSL_SHA2_C
1853 sha2( message_str, msg_len, hash_result, 1 );
1856 sha2( message_str, msg_len, hash_result, 0 );
1859 #ifdef POLARSSL_SHA4_C
1861 sha4( message_str, msg_len, hash_result, 1 );
1864 sha4( message_str, msg_len, hash_result, 0 );
1876 #ifdef POLARSSL_SHA2_C
1878 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_24)
1880 unsigned char message_str[1000];
1881 unsigned char hash_result[1000];
1882 unsigned char result_str[1000];
1887 memset( message_str, 0x00, 1000 );
1888 memset( hash_result, 0x00, 1000 );
1889 memset( result_str, 0x00, 1000 );
1892 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1897 msg_len =
unhexify( message_str,
"1240028c6d7ab3992ada0e5ca55ee4f3d62f8de575302d5861d73685423c2e6a6d6fb3be090fbc2a701821b6d8fd5e8233f794b6549cd0bb52b390ac31478307bffa91a9bd9c1bf93ffc846356fef008ebee4bb3ee148e0fb1893d188e4934d0d088a433d14a596c5f2e3e49648a22edc6bdbcc58dc1edbd440046b3a169ca2b" );
1898 unhexify( result_str,
"a003ae9cf0704d58763b214f20446ecc4099c566f25384e28d0dd6540c58705fc8d0bfe1ceaa06096ed1e230146edb82056e39e6727abec09f25e44079b6ce1ca2c6a540dec7aa34444d7d435f41e5fca9b0bba62759ae2780638e5160e031bb60409c2e85674ac7a776b444b37b9d7f4dbaa557e88b8562a584f2dbe90729b241aede95dfcc7e05b10deef06255cb89f0e7ccff23354818756a1f8bb9f00fd18f6cd22ca1b4bfc38027562bb37562c77c7883b5d735170d75521195fd3f2bd3" );
1902 #ifdef POLARSSL_MD2_C
1904 md2( message_str, msg_len, hash_result );
1907 #ifdef POLARSSL_MD4_C
1909 md4( message_str, msg_len, hash_result );
1912 #ifdef POLARSSL_MD5_C
1914 md5( message_str, msg_len, hash_result );
1917 #ifdef POLARSSL_SHA1_C
1919 sha1( message_str, msg_len, hash_result );
1922 #ifdef POLARSSL_SHA2_C
1924 sha2( message_str, msg_len, hash_result, 1 );
1927 sha2( message_str, msg_len, hash_result, 0 );
1930 #ifdef POLARSSL_SHA4_C
1932 sha4( message_str, msg_len, hash_result, 1 );
1935 sha4( message_str, msg_len, hash_result, 0 );
1947 #ifdef POLARSSL_SHA4_C
1949 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_25)
1951 unsigned char message_str[1000];
1952 unsigned char hash_result[1000];
1953 unsigned char result_str[1000];
1958 memset( message_str, 0x00, 1000 );
1959 memset( hash_result, 0x00, 1000 );
1960 memset( result_str, 0x00, 1000 );
1963 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
1968 msg_len =
unhexify( message_str,
"67922a8b9cbc95cf7c555ff2d73cfc62ee04c3f0df9bfc8f64293a58bd3bebd2eb212d711f94e35c729d0873d6b244914d21bd0e59b23089b38740e43f480e8f407d090ac93b08a57403968b55e78cfe31eee6e4ecbacf834168fe89b6b8454fce6e675e80f82b33e850ae3f3d24fd320335e37981fd000576941b4f08d4ba99" );
1969 unhexify( result_str,
"2c6b301852cc55a993a933e2c080eb9dabfe19e9dc3571066caeabed1492d3501cd838de1c01784932df7a5ad5bbfb48c78f53a45f76e9812d046f23bd968495ef7e981e5add4acfc538fe33a5205de74bb37d3d9b6b87b2d174e85a73f216fd67d5738fc469dff7ea6b852e8dd08bc8df036597372d4d51185e6f47a45fbe1b9bdb06a4018783425ec95294de41f27235ad3b3263a890b8b62b17410a9bb08673393ff205a866ee2057e99c6517c6bbc84f8d87717b83d6f64de7ee215e1e8d" );
1973 #ifdef POLARSSL_MD2_C
1975 md2( message_str, msg_len, hash_result );
1978 #ifdef POLARSSL_MD4_C
1980 md4( message_str, msg_len, hash_result );
1983 #ifdef POLARSSL_MD5_C
1985 md5( message_str, msg_len, hash_result );
1988 #ifdef POLARSSL_SHA1_C
1990 sha1( message_str, msg_len, hash_result );
1993 #ifdef POLARSSL_SHA2_C
1995 sha2( message_str, msg_len, hash_result, 1 );
1998 sha2( message_str, msg_len, hash_result, 0 );
2001 #ifdef POLARSSL_SHA4_C
2003 sha4( message_str, msg_len, hash_result, 1 );
2006 sha4( message_str, msg_len, hash_result, 0 );
2018 #ifdef POLARSSL_SHA4_C
2020 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_26)
2022 unsigned char message_str[1000];
2023 unsigned char hash_result[1000];
2024 unsigned char result_str[1000];
2029 memset( message_str, 0x00, 1000 );
2030 memset( hash_result, 0x00, 1000 );
2031 memset( result_str, 0x00, 1000 );
2034 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
2039 msg_len =
unhexify( message_str,
"1428b4a449698a994ef84c46a517c3aa6359c48e4264ef65f1f69d77ae26133e17edfc103de416fffb4f2bfe865b434544a418f6e2faca00a165d443f0663ff64080154614f7194057d8b5f1f33934cc9fc2314cf86d4fdad4892bf0d3058f7f37ebe98ef52bfb240b9ad369153afe081bbcf9d7ae43e8ba336b8ac57e8a6da0" );
2040 unhexify( result_str,
"8e10a1ae470e6e57a8d234185f78fdb600cc636c41565a9f3694a84ae102f6251984f54d11a7785fdcfdfaf80a821e05d57ef6b8edc03d9076755779322fd53eb98c805da77dc9316744e393c2fecd291a7e6043b1ca89fd8248f661e1d53110211b91edb41b31e848cde1115d8afd9963ebcc36aff5a27085949f0781bc69167c140ecfe71c44aacaf4123e557eaf2b528c6d0ea875b4ceefa942fe338af8df10562c438af04cd7521da912b3e3899cef0d75722161be6abed5e4e9009dbf40" );
2044 #ifdef POLARSSL_MD2_C
2046 md2( message_str, msg_len, hash_result );
2049 #ifdef POLARSSL_MD4_C
2051 md4( message_str, msg_len, hash_result );
2054 #ifdef POLARSSL_MD5_C
2056 md5( message_str, msg_len, hash_result );
2059 #ifdef POLARSSL_SHA1_C
2061 sha1( message_str, msg_len, hash_result );
2064 #ifdef POLARSSL_SHA2_C
2066 sha2( message_str, msg_len, hash_result, 1 );
2069 sha2( message_str, msg_len, hash_result, 0 );
2072 #ifdef POLARSSL_SHA4_C
2074 sha4( message_str, msg_len, hash_result, 1 );
2077 sha4( message_str, msg_len, hash_result, 0 );
2089 #ifdef POLARSSL_SHA1_C
2091 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_27)
2093 unsigned char message_str[1000];
2094 unsigned char hash_result[1000];
2095 unsigned char result_str[1000];
2100 memset( message_str, 0x00, 1000 );
2101 memset( hash_result, 0x00, 1000 );
2102 memset( result_str, 0x00, 1000 );
2105 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
2110 msg_len =
unhexify( message_str,
"4871adc05f6b3ecf296680b0dd8d86715b0d5264c064008037dc410512520b5f193c8f4d21eb6c42e10d220c0275c9b3751f03a4096e2f0e3db9df8d52068c06a51589d23ca1361e9fe27691e95663301ec1407fbf73aee99cc92362eaf6994b95038396d815052a0aef6489bbb7bcb0fffdf13f0af9e7d9fd14f6ce00ab98f7" );
2111 unhexify( result_str,
"180caf03781b391aacebe5b3f5e1d3b01c68a00df4ecfb6c4bf14217aed7cfca0adac099ec1d6e1f0b43b09b86788533fee6691d773807af0df6cc3bbdde3cf34bf5b848fa59c8bc10227cc3eba3452a85e0520fccdb2d8d32dd99672d302756a2d7f7f2693db3a48be17bd34d9d891f4ba44449c5bad1de91b788f524500a7703cccbaa77b9fe8791f5c8aa7b8f055336f28fcfc01733712e33cfb3d33fe71ddb9ced2a31931ec38007f5ad4a0d19acc428124b0e5ee6e0746fb33c1a4d90c8" );
2115 #ifdef POLARSSL_MD2_C
2117 md2( message_str, msg_len, hash_result );
2120 #ifdef POLARSSL_MD4_C
2122 md4( message_str, msg_len, hash_result );
2125 #ifdef POLARSSL_MD5_C
2127 md5( message_str, msg_len, hash_result );
2130 #ifdef POLARSSL_SHA1_C
2132 sha1( message_str, msg_len, hash_result );
2135 #ifdef POLARSSL_SHA2_C
2137 sha2( message_str, msg_len, hash_result, 1 );
2140 sha2( message_str, msg_len, hash_result, 0 );
2143 #ifdef POLARSSL_SHA4_C
2145 sha4( message_str, msg_len, hash_result, 1 );
2148 sha4( message_str, msg_len, hash_result, 0 );
2160 #ifdef POLARSSL_SHA2_C
2162 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_28)
2164 unsigned char message_str[1000];
2165 unsigned char hash_result[1000];
2166 unsigned char result_str[1000];
2171 memset( message_str, 0x00, 1000 );
2172 memset( hash_result, 0x00, 1000 );
2173 memset( result_str, 0x00, 1000 );
2176 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
2181 msg_len =
unhexify( message_str,
"3bba64de38438a71b95ab9c94539d5870c1fb08d7a9937600c00e9d063438edc97e625d0cd4b1eb00c31c9d94c7a0fe6d03160d1b6cbec5acdad16ada6ef253fee603df9faca8f98a477cc5456f3dfbf6414dbf19f3832e227ce291780188881e82e96a2e84744f12a34a9808a2daedc6fd00b345c6772bec26a095719451e6a" );
2182 unhexify( result_str,
"8c846e75e32ce5f9964bdd8f6dcf1d2996a646b233bcf1bd6394e13e856691b89bedd18290a0f9f7c90dca307271b3108e795340490513b25e6789e93722c65ec064b4c43457295a31d1f07dd605e133fd6eaafc58cda132df2939f5f693e0205af34550afaa137f3e482885e50dfb48333a15c0821e7a19642acdddc6fea3c7487c691246a2b083dac439889d5ae741b7e08c47937530b4b069f1a260cd07fe4a0ddd530ab11534fb805e9b562118ee0e97932966008aadfc83f3b8a10de8ee" );
2186 #ifdef POLARSSL_MD2_C
2188 md2( message_str, msg_len, hash_result );
2191 #ifdef POLARSSL_MD4_C
2193 md4( message_str, msg_len, hash_result );
2196 #ifdef POLARSSL_MD5_C
2198 md5( message_str, msg_len, hash_result );
2201 #ifdef POLARSSL_SHA1_C
2203 sha1( message_str, msg_len, hash_result );
2206 #ifdef POLARSSL_SHA2_C
2208 sha2( message_str, msg_len, hash_result, 1 );
2211 sha2( message_str, msg_len, hash_result, 0 );
2214 #ifdef POLARSSL_SHA4_C
2216 sha4( message_str, msg_len, hash_result, 1 );
2219 sha4( message_str, msg_len, hash_result, 0 );
2231 #ifdef POLARSSL_SHA2_C
2233 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_29)
2235 unsigned char message_str[1000];
2236 unsigned char hash_result[1000];
2237 unsigned char result_str[1000];
2242 memset( message_str, 0x00, 1000 );
2243 memset( hash_result, 0x00, 1000 );
2244 memset( result_str, 0x00, 1000 );
2247 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
2252 msg_len =
unhexify( message_str,
"f7857ce04bf4292ea1755f9e587822372f4dcdf10bddfc0ff498a8af60ae94a0b482e873085c1cd52a5d181ce6b99a1f8520d74b947d65f3e7e358e8ddc4ac4ae465e39d408eee1f09865159733f83f553cd93cfde1c114fb3e32cf51cd418359016b3867df467b645d752808671a4609f3c49a67023c9ca617e6cffa544a10a" );
2253 unhexify( result_str,
"9677300bbee003be3c445634f8ed5beb152b63f46f84cf5a8e721e0fafe8f3f7e99a6d50741f23f449d3026da3e8a7ac36be99ab44831803486ae552f7aa01f075287829b231d2d0840908e09081ae177ed888fe46a9d937a0871eb5d52ec541c8411c4cbf7efea6ca213b12cea513b0739eedca7c9473e10a7796936f4eaa0c5d3a9013ca5536781ac68eb2ca5779144de23da2e9875114aca885b3219dfc292d73940c5992ea3c4882889e7543430652860e441a01a45d9f4005a012421493" );
2257 #ifdef POLARSSL_MD2_C
2259 md2( message_str, msg_len, hash_result );
2262 #ifdef POLARSSL_MD4_C
2264 md4( message_str, msg_len, hash_result );
2267 #ifdef POLARSSL_MD5_C
2269 md5( message_str, msg_len, hash_result );
2272 #ifdef POLARSSL_SHA1_C
2274 sha1( message_str, msg_len, hash_result );
2277 #ifdef POLARSSL_SHA2_C
2279 sha2( message_str, msg_len, hash_result, 1 );
2282 sha2( message_str, msg_len, hash_result, 0 );
2285 #ifdef POLARSSL_SHA4_C
2287 sha4( message_str, msg_len, hash_result, 1 );
2290 sha4( message_str, msg_len, hash_result, 0 );
2302 #ifdef POLARSSL_SHA2_C
2304 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_30)
2306 unsigned char message_str[1000];
2307 unsigned char hash_result[1000];
2308 unsigned char result_str[1000];
2313 memset( message_str, 0x00, 1000 );
2314 memset( hash_result, 0x00, 1000 );
2315 memset( result_str, 0x00, 1000 );
2318 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
2323 msg_len =
unhexify( message_str,
"ca312774f2756ac2019f213a01a63c9a0b4a49ccafecf25e97a4c632668e3c77e664f4d7635241f25205e50c37061b02c546db8346fa597c3da8cfd44a827c5a4ff4ecfcd1797b39a1b215d9bbb93fdb6eb35bafbda427a5068888a6e19f86224b0897490491207e35ce39085668b10b4fb851b7dd9465c03869790ef38a61b5" );
2324 unhexify( result_str,
"a202c33eb831b9d8e818b6c3bcdb42818e1d9c22a06ddd73a17a21e49d18cda44df349a066477cae068e1a5d2b518b0885e889ef796ca9e6f42a69ac755b8a6405fbaef93fe0130d98de35d689addfee3eecd26658903f774bda481c3f40ee0e9569a3c3e2da7ad576c7de82159d933e36fa29cfef99367005e34ab5082d80f48276d37dabc88dbb023bd01585329d2ccf417f78ec508aaa29751007d31f1669296b981d44c8fa99130c5df7a071725b496859314aaf9baf0ebc780355914249" );
2328 #ifdef POLARSSL_MD2_C
2330 md2( message_str, msg_len, hash_result );
2333 #ifdef POLARSSL_MD4_C
2335 md4( message_str, msg_len, hash_result );
2338 #ifdef POLARSSL_MD5_C
2340 md5( message_str, msg_len, hash_result );
2343 #ifdef POLARSSL_SHA1_C
2345 sha1( message_str, msg_len, hash_result );
2348 #ifdef POLARSSL_SHA2_C
2350 sha2( message_str, msg_len, hash_result, 1 );
2353 sha2( message_str, msg_len, hash_result, 0 );
2356 #ifdef POLARSSL_SHA4_C
2358 sha4( message_str, msg_len, hash_result, 1 );
2361 sha4( message_str, msg_len, hash_result, 0 );
2373 #ifdef POLARSSL_SHA4_C
2375 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_31)
2377 unsigned char message_str[1000];
2378 unsigned char hash_result[1000];
2379 unsigned char result_str[1000];
2384 memset( message_str, 0x00, 1000 );
2385 memset( hash_result, 0x00, 1000 );
2386 memset( result_str, 0x00, 1000 );
2389 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
2394 msg_len =
unhexify( message_str,
"2abe079077290ceb6c80ac5c61062ce8da814b1fb99a1a9fb2860ed900e6541856ec64bf19c0d9d1cc2280b7cc50af3e3d2ad8e044945d44761ca60891dd72bd6aa26a33274ffcf7ae7d661b5e651135fcff21aaf06b4a2db18fe5827e0243884f2841760b9f1c65fbda870f7f0cfbd6ff484f0825e688614928f2d12d1e7080" );
2395 unhexify( result_str,
"402631f3cddfb02cc4d9cb58ef1ab6726bd787a50e12e98567c9702bfdf47af85904aec5a2f6c5df9a10f08f90f93728eb090ae2ac21ded9f38faecd8195f3eb3d4107521b1cee956e7a214245b038adae912fa35ec97cb3bdc41352e8aaff80173561284cb740f999a3cd6653a6c3d5a3f911a416f41e2155083982c99eb5998a0a74d77f1ae999d901ee24a7f2c424179a3f92b07dc0b3498c1884e60677bee0175e810b426c4ad008d2743cd19b00b33177bf8be3fed7f7406e1bce0c2ea3" );
2399 #ifdef POLARSSL_MD2_C
2401 md2( message_str, msg_len, hash_result );
2404 #ifdef POLARSSL_MD4_C
2406 md4( message_str, msg_len, hash_result );
2409 #ifdef POLARSSL_MD5_C
2411 md5( message_str, msg_len, hash_result );
2414 #ifdef POLARSSL_SHA1_C
2416 sha1( message_str, msg_len, hash_result );
2419 #ifdef POLARSSL_SHA2_C
2421 sha2( message_str, msg_len, hash_result, 1 );
2424 sha2( message_str, msg_len, hash_result, 0 );
2427 #ifdef POLARSSL_SHA4_C
2429 sha4( message_str, msg_len, hash_result, 1 );
2432 sha4( message_str, msg_len, hash_result, 0 );
2444 #ifdef POLARSSL_SHA4_C
2446 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_32)
2448 unsigned char message_str[1000];
2449 unsigned char hash_result[1000];
2450 unsigned char result_str[1000];
2455 memset( message_str, 0x00, 1000 );
2456 memset( hash_result, 0x00, 1000 );
2457 memset( result_str, 0x00, 1000 );
2460 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
2465 msg_len =
unhexify( message_str,
"da9505809dc92cfd8e01a1857dde52df6677c40d98f4577c1659ca7d3e9f01f9a809065f51b54fe2f9723fe2c9d1eea7397f2d5531d1c51c6ea100b028596bf9f24dd90be14eab58f07b4f24a35b073aeb29ecde4a6f320237d7adbdc43d94f87e08866b95bbcac83dc7db3553a42400441f088e2bf6259539a2da8b5a74065f" );
2466 unhexify( result_str,
"57edd0560df9840a25c28ff6d254e432395a5cd2d92248b3b44d7eab0fc65b3c4e545a916a8e90ce89745119db9ec9799aa8890f5250fb589cfc12dac1b6e406a39bc3b3663892da5354ba453cbd5e4c89bdce82d0ffe97052a03a5c3308819c1139ebc780c13cf6dc1477faf734abcb1db3fafaed6f22885c9c0222ff5deacb8cc6d027f2e959c3075011b382e88c4b27b83b4f2e6fda022e331c3602d19f5ac7bccfe95ea1e93d736dbd918ae5b1f468cd0b5b536a2f918d5e27a0757e75b7" );
2470 #ifdef POLARSSL_MD2_C
2472 md2( message_str, msg_len, hash_result );
2475 #ifdef POLARSSL_MD4_C
2477 md4( message_str, msg_len, hash_result );
2480 #ifdef POLARSSL_MD5_C
2482 md5( message_str, msg_len, hash_result );
2485 #ifdef POLARSSL_SHA1_C
2487 sha1( message_str, msg_len, hash_result );
2490 #ifdef POLARSSL_SHA2_C
2492 sha2( message_str, msg_len, hash_result, 1 );
2495 sha2( message_str, msg_len, hash_result, 0 );
2498 #ifdef POLARSSL_SHA4_C
2500 sha4( message_str, msg_len, hash_result, 1 );
2503 sha4( message_str, msg_len, hash_result, 0 );
2515 #ifdef POLARSSL_SHA4_C
2517 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_33)
2519 unsigned char message_str[1000];
2520 unsigned char hash_result[1000];
2521 unsigned char result_str[1000];
2526 memset( message_str, 0x00, 1000 );
2527 memset( hash_result, 0x00, 1000 );
2528 memset( result_str, 0x00, 1000 );
2531 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
2536 msg_len =
unhexify( message_str,
"d0cd038c65b3acca45822eaf91ea5176e82043268876dec0b62e2abd619023b7023abc67c6b823cfef5447b8772f985ff7910d6cc87e6c23688ac6de1fee40bbe2da1a92770de92adaa427ace02fee571a0a0176fceb0c8f3eb72dde839ab201395625f5c0db8641ce19d7711212dec61733262c6ce4476c025e67a3d5bc01f3" );
2537 unhexify( result_str,
"2f30629c1117d013bb36e6099dee931dcaf0a1032b07ec23e2b262898a8945e569c9573d81e22bb0a5f8a28b0d7b8ff01367dd7f089c68ed1daa11cf53a96ee91b38e6b839b6e90bea34d14b78f5d2c7629b68c5b4f2ecfff66b483b2233cb14f95df533c867a2b610aebcdbb7ea3109aaf2f5762ab3edc2571deccc7da0c9a5b443ca2b924c0f18de7bbb736a08fed3916795018a436a3ae62c85d554a53a6d48623908e06e7d275f4251d3b3bd530bd11e155dcf2b5c2adf030cdf931ae749" );
2541 #ifdef POLARSSL_MD2_C
2543 md2( message_str, msg_len, hash_result );
2546 #ifdef POLARSSL_MD4_C
2548 md4( message_str, msg_len, hash_result );
2551 #ifdef POLARSSL_MD5_C
2553 md5( message_str, msg_len, hash_result );
2556 #ifdef POLARSSL_SHA1_C
2558 sha1( message_str, msg_len, hash_result );
2561 #ifdef POLARSSL_SHA2_C
2563 sha2( message_str, msg_len, hash_result, 1 );
2566 sha2( message_str, msg_len, hash_result, 0 );
2569 #ifdef POLARSSL_SHA4_C
2571 sha4( message_str, msg_len, hash_result, 1 );
2574 sha4( message_str, msg_len, hash_result, 0 );
2586 #ifdef POLARSSL_SHA4_C
2588 FCT_TEST_BGN(rsa_pkcs1_verify_v15_cavs_34)
2590 unsigned char message_str[1000];
2591 unsigned char hash_result[1000];
2592 unsigned char result_str[1000];
2597 memset( message_str, 0x00, 1000 );
2598 memset( hash_result, 0x00, 1000 );
2599 memset( result_str, 0x00, 1000 );
2602 fct_chk(
mpi_read_string( &ctx.
N, 16,
"a59d9b7269b102b7be684ec5e28db79992e6d3231e77c90b78960c2638b35ef6dbdac1ac59e7249d96d426e7f99397eabc6b8903fe1942da580322b98bafacd81bb911c29666f83886a2a2864f3552044300e60cedd5a8c321c43e280413dc41673c39a11b98a885486f8187a70f270185c4c12bc48a1968305269776c070ef69d4913589a887c4d0f5e7dd58bd806d0d49a14a1762c38665cef4646ff13a0cd29c3a60460703c3d051d5b28c660bffb5f8bd43d495ffa64175f72b8abe5fddd" ) == 0 );
2607 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
2608 unhexify( result_str,
"0b4d96f411c727a262d6d0ade34195b78603551061917d060f89add47b09dfe8715f4f9147d327dc25e91fe457e5d1a2f22cd8fe6fe8e29d2060658307c87a40640650fef3d4b289a6c3febc5a100b29a8b56623afb29fd3c13ea372bf3c638c1db25f8bd8c74c821beec7b5affcace1d05d056a6c2d3035926c7a268df4751a54bc20a6b8cfd729a7cba309ae817daccbef9950a482cf23950a8ca1d3a13ddb7d8d0f87ad5587d4d9ebe19fe93457597a7bdd056c2fd4cea7d31e4a0e595a7b" );
2612 #ifdef POLARSSL_MD2_C
2614 md2( message_str, msg_len, hash_result );
2617 #ifdef POLARSSL_MD4_C
2619 md4( message_str, msg_len, hash_result );
2622 #ifdef POLARSSL_MD5_C
2624 md5( message_str, msg_len, hash_result );
2627 #ifdef POLARSSL_SHA1_C
2629 sha1( message_str, msg_len, hash_result );
2632 #ifdef POLARSSL_SHA2_C
2634 sha2( message_str, msg_len, hash_result, 1 );
2637 sha2( message_str, msg_len, hash_result, 0 );
2640 #ifdef POLARSSL_SHA4_C
2642 sha4( message_str, msg_len, hash_result, 1 );
2645 sha4( message_str, msg_len, hash_result, 0 );
2657 #ifdef POLARSSL_SHA4_C
2659 FCT_TEST_BGN(rsa_pkcs1_sign_1_sha512_1536_bits_rsa)
2661 unsigned char message_str[1000];
2662 unsigned char hash_result[1000];
2663 unsigned char output[1000];
2664 unsigned char output_str[1000];
2672 memset( message_str, 0x00, 1000 );
2673 memset( hash_result, 0x00, 1000 );
2674 memset( output, 0x00, 1000 );
2675 memset( output_str, 0x00, 1000 );
2678 fct_chk(
mpi_read_string( &ctx.
P, 16,
"c8c67df894c882045ede26a9008ab09ea0672077d7bc71d412511cd93981ddde8f91b967da404056c39f105f7f239abdaff92923859920f6299e82b95bd5b8c959948f4a035cbd693ad83014294d349813d1ad57911a6355d0731fe3a034e9db" ) == 0 );
2679 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"f15147d0e7c04a1e3f37adde802cdc610999bf7ab0088434aaeda0c0ab3910b14d2ce56cb66bffd97552195fae8b061077e03920814d8b9cfb5a3958b3a82c2a7fc97e55db5978b47a922156eb8a3e55c06a54a45d1670abdfb995489c4d0051" ) == 0 );
2680 fct_chk(
mpi_read_string( &ctx.
N, 16,
"bd429bb7c3b00bbea19ba664c0f8172d1a73c3cfa05e2ed656d570c1590918bb7e372ed25e2cd71395ba0a9b1a30f3ee012ffb0546cab8e3581fe3e23f44ab57a8aee9717e71a936a580fa8572d450fb00339a6f6704b717df0c149a465bab768c61500cd93b61113ff3e4389167f7b2c8e3c0da2d4765286bee555b0bcb4998f59b14fad03180a17c8b4f69bcd1234f4ae85950137665ac2ba80b55cc9b1aafb454b83771aa755acd2a00e93ddb65e696dbed8bdca69fb5e0c5c2097b9cfe4b" ) == 0 );
2686 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
2694 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
2698 #ifdef POLARSSL_MD2_C
2700 md2( message_str, msg_len, hash_result );
2703 #ifdef POLARSSL_MD4_C
2705 md4( message_str, msg_len, hash_result );
2708 #ifdef POLARSSL_MD5_C
2710 md5( message_str, msg_len, hash_result );
2713 #ifdef POLARSSL_SHA1_C
2715 sha1( message_str, msg_len, hash_result );
2718 #ifdef POLARSSL_SHA2_C
2720 sha2( message_str, msg_len, hash_result, 1 );
2723 sha2( message_str, msg_len, hash_result, 0 );
2726 #ifdef POLARSSL_SHA4_C
2728 sha4( message_str, msg_len, hash_result, 1 );
2731 sha4( message_str, msg_len, hash_result, 0 );
2741 fct_chk( strcasecmp( (
char *) output_str,
"93b6fa99485c116ca6efdd4202ea1cf49f4c6345fae692584413743ce5b65510e8e4690aee9a19ea1ff10d57f22aa3548d839f28a8525a34354e9e58e0f3947e056ce2554e21bf287e220b98db3b551258cd42b495e5d1a3bbc83c9d1a02f2a300ef6d866ea75108e44ebb3e16b47df2f6de28feb2be3874dbbf21599451082d86e9f2f462575a8185c69aa1f1fcb6a363c5d71aeba2103449eaf3845285291148d5f78d1646b8dc95cbcc4082f987d948b0e7d4e80b60595f8a7517584e1643" ) == 0 );
2750 #ifdef POLARSSL_SHA4_C
2752 FCT_TEST_BGN(rsa_pkcs1_sign_1_verify)
2754 unsigned char message_str[1000];
2755 unsigned char hash_result[1000];
2756 unsigned char result_str[1000];
2761 memset( message_str, 0x00, 1000 );
2762 memset( hash_result, 0x00, 1000 );
2763 memset( result_str, 0x00, 1000 );
2766 fct_chk(
mpi_read_string( &ctx.
N, 16,
"bd429bb7c3b00bbea19ba664c0f8172d1a73c3cfa05e2ed656d570c1590918bb7e372ed25e2cd71395ba0a9b1a30f3ee012ffb0546cab8e3581fe3e23f44ab57a8aee9717e71a936a580fa8572d450fb00339a6f6704b717df0c149a465bab768c61500cd93b61113ff3e4389167f7b2c8e3c0da2d4765286bee555b0bcb4998f59b14fad03180a17c8b4f69bcd1234f4ae85950137665ac2ba80b55cc9b1aafb454b83771aa755acd2a00e93ddb65e696dbed8bdca69fb5e0c5c2097b9cfe4b" ) == 0 );
2771 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
2772 unhexify( result_str,
"93b6fa99485c116ca6efdd4202ea1cf49f4c6345fae692584413743ce5b65510e8e4690aee9a19ea1ff10d57f22aa3548d839f28a8525a34354e9e58e0f3947e056ce2554e21bf287e220b98db3b551258cd42b495e5d1a3bbc83c9d1a02f2a300ef6d866ea75108e44ebb3e16b47df2f6de28feb2be3874dbbf21599451082d86e9f2f462575a8185c69aa1f1fcb6a363c5d71aeba2103449eaf3845285291148d5f78d1646b8dc95cbcc4082f987d948b0e7d4e80b60595f8a7517584e1643" );
2776 #ifdef POLARSSL_MD2_C
2778 md2( message_str, msg_len, hash_result );
2781 #ifdef POLARSSL_MD4_C
2783 md4( message_str, msg_len, hash_result );
2786 #ifdef POLARSSL_MD5_C
2788 md5( message_str, msg_len, hash_result );
2791 #ifdef POLARSSL_SHA1_C
2793 sha1( message_str, msg_len, hash_result );
2796 #ifdef POLARSSL_SHA2_C
2798 sha2( message_str, msg_len, hash_result, 1 );
2801 sha2( message_str, msg_len, hash_result, 0 );
2804 #ifdef POLARSSL_SHA4_C
2806 sha4( message_str, msg_len, hash_result, 1 );
2809 sha4( message_str, msg_len, hash_result, 0 );
2821 #ifdef POLARSSL_SHA2_C
2823 FCT_TEST_BGN(rsa_pkcs1_sign_2_sha256_2048_bits_rsa)
2825 unsigned char message_str[1000];
2826 unsigned char hash_result[1000];
2827 unsigned char output[1000];
2828 unsigned char output_str[1000];
2836 memset( message_str, 0x00, 1000 );
2837 memset( hash_result, 0x00, 1000 );
2838 memset( output, 0x00, 1000 );
2839 memset( output_str, 0x00, 1000 );
2842 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
2843 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
2844 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
2850 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
2858 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
2862 #ifdef POLARSSL_MD2_C
2864 md2( message_str, msg_len, hash_result );
2867 #ifdef POLARSSL_MD4_C
2869 md4( message_str, msg_len, hash_result );
2872 #ifdef POLARSSL_MD5_C
2874 md5( message_str, msg_len, hash_result );
2877 #ifdef POLARSSL_SHA1_C
2879 sha1( message_str, msg_len, hash_result );
2882 #ifdef POLARSSL_SHA2_C
2884 sha2( message_str, msg_len, hash_result, 1 );
2887 sha2( message_str, msg_len, hash_result, 0 );
2890 #ifdef POLARSSL_SHA4_C
2892 sha4( message_str, msg_len, hash_result, 1 );
2895 sha4( message_str, msg_len, hash_result, 0 );
2905 fct_chk( strcasecmp( (
char *) output_str,
"5aee2b9dbc02a6a2d87ff64a64165dc0b9ce70c79bab2d287939e2601c3223e0493988d5468731ae4edc7d5f5d449335c204fdb0e192c1915c9d694d3a61c3be14df79c4b34d6ac73707829024d263c94f9107fa93f3783de3965522336e18d1e01a142b5103451bb97839eaf2f44703a63050a36b78aef4072ea1a8daaaf1a2918fc03ee957a9c09efdc7287bcb4d6aec4723290294b249b3e3dc63157b560ad9c867323a73ebeb360cc9e482111643b0d86c4e33dcf170155590f0eba7d170789e84de336b7fe2f6cf485ddca94607a4ff379fc49d375c730249dd1a210e7dccd762d1c23c7532e769c6aa88e38e8654ff90f7b34df4c07ba90e89099ec1ed" ) == 0 );
2914 #ifdef POLARSSL_SHA2_C
2916 FCT_TEST_BGN(rsa_pkcs1_sign_2_verify)
2918 unsigned char message_str[1000];
2919 unsigned char hash_result[1000];
2920 unsigned char result_str[1000];
2925 memset( message_str, 0x00, 1000 );
2926 memset( hash_result, 0x00, 1000 );
2927 memset( result_str, 0x00, 1000 );
2930 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
2935 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
2936 unhexify( result_str,
"5aee2b9dbc02a6a2d87ff64a64165dc0b9ce70c79bab2d287939e2601c3223e0493988d5468731ae4edc7d5f5d449335c204fdb0e192c1915c9d694d3a61c3be14df79c4b34d6ac73707829024d263c94f9107fa93f3783de3965522336e18d1e01a142b5103451bb97839eaf2f44703a63050a36b78aef4072ea1a8daaaf1a2918fc03ee957a9c09efdc7287bcb4d6aec4723290294b249b3e3dc63157b560ad9c867323a73ebeb360cc9e482111643b0d86c4e33dcf170155590f0eba7d170789e84de336b7fe2f6cf485ddca94607a4ff379fc49d375c730249dd1a210e7dccd762d1c23c7532e769c6aa88e38e8654ff90f7b34df4c07ba90e89099ec1ed" );
2940 #ifdef POLARSSL_MD2_C
2942 md2( message_str, msg_len, hash_result );
2945 #ifdef POLARSSL_MD4_C
2947 md4( message_str, msg_len, hash_result );
2950 #ifdef POLARSSL_MD5_C
2952 md5( message_str, msg_len, hash_result );
2955 #ifdef POLARSSL_SHA1_C
2957 sha1( message_str, msg_len, hash_result );
2960 #ifdef POLARSSL_SHA2_C
2962 sha2( message_str, msg_len, hash_result, 1 );
2965 sha2( message_str, msg_len, hash_result, 0 );
2968 #ifdef POLARSSL_SHA4_C
2970 sha4( message_str, msg_len, hash_result, 1 );
2973 sha4( message_str, msg_len, hash_result, 0 );
2985 #ifdef POLARSSL_SHA2_C
2987 FCT_TEST_BGN(rsa_pkcs1_sign_2_verify_fail)
2989 unsigned char message_str[1000];
2990 unsigned char hash_result[1000];
2991 unsigned char result_str[1000];
2996 memset( message_str, 0x00, 1000 );
2997 memset( hash_result, 0x00, 1000 );
2998 memset( result_str, 0x00, 1000 );
3001 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3006 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3007 unhexify( result_str,
"5aee2b9dbc02a6a2d87ff64a64165dc0b9ce70c79bab2d287939e2601c3223e0493988d5468731ae4edc7d5f5d449335c204fdb0e192c1915c9d694d3a61c3be14df79c4b34d6ac73707829024d263c94f9107fa93f3783de3965522336e18d1e01a142b5103451bb97839eaf2f44703a63050a36b78aef4072ea1a8daaaf1a2918fc03ee957a9c09efdc6287bcb4d6aec4723290294b249b3e3dc63157b560ad9c867323a73ebeb360cc9e482111643b0d86c4e33dcf170155590f0eba7d170789e84de336b7fe2f6cf485ddca94607a4ff379fc49d375c730249dd1a210e7dccd763d1c23c7532e769c6aa88e38e8654ff90f7b34df4c07ba90e89099ec1ed" );
3011 #ifdef POLARSSL_MD2_C
3013 md2( message_str, msg_len, hash_result );
3016 #ifdef POLARSSL_MD4_C
3018 md4( message_str, msg_len, hash_result );
3021 #ifdef POLARSSL_MD5_C
3023 md5( message_str, msg_len, hash_result );
3026 #ifdef POLARSSL_SHA1_C
3028 sha1( message_str, msg_len, hash_result );
3031 #ifdef POLARSSL_SHA2_C
3033 sha2( message_str, msg_len, hash_result, 1 );
3036 sha2( message_str, msg_len, hash_result, 0 );
3039 #ifdef POLARSSL_SHA4_C
3041 sha4( message_str, msg_len, hash_result, 1 );
3044 sha4( message_str, msg_len, hash_result, 0 );
3056 #ifdef POLARSSL_SHA2_C
3058 FCT_TEST_BGN(rsa_pkcs1_sign_3_sha224_2048_bits_rsa)
3060 unsigned char message_str[1000];
3061 unsigned char hash_result[1000];
3062 unsigned char output[1000];
3063 unsigned char output_str[1000];
3071 memset( message_str, 0x00, 1000 );
3072 memset( hash_result, 0x00, 1000 );
3073 memset( output, 0x00, 1000 );
3074 memset( output_str, 0x00, 1000 );
3077 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
3078 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
3079 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3085 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
3093 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3097 #ifdef POLARSSL_MD2_C
3099 md2( message_str, msg_len, hash_result );
3102 #ifdef POLARSSL_MD4_C
3104 md4( message_str, msg_len, hash_result );
3107 #ifdef POLARSSL_MD5_C
3109 md5( message_str, msg_len, hash_result );
3112 #ifdef POLARSSL_SHA1_C
3114 sha1( message_str, msg_len, hash_result );
3117 #ifdef POLARSSL_SHA2_C
3119 sha2( message_str, msg_len, hash_result, 1 );
3122 sha2( message_str, msg_len, hash_result, 0 );
3125 #ifdef POLARSSL_SHA4_C
3127 sha4( message_str, msg_len, hash_result, 1 );
3130 sha4( message_str, msg_len, hash_result, 0 );
3140 fct_chk( strcasecmp( (
char *) output_str,
"9d768b8b31421f9d9ced890aafaf8b3468656419049ed268f6e1992066f45dc3e4cd349e8c5ed5a06e4ef5badaba064ba94907dfedf3d708becaf44ae9b27c3866d329311ba93e8ddc7fc284fba05d1bb84fb1e060a5b76b7fa515cfcd2c8144474623672703cac1e15ff4fdf8ef19d365c51ba86e60f4cbbcd07f956060625751bfbecc47945646459cadaddd900603a8149a93b31a6d432e1da1a67eb765f5b2f0bd1adb9af12d731c7b02931b42dbbfd8c7cecde76b817e96f664147a2c5091c6ce4dc562c5f57159d6f9dc9ba2daa212db56677839621bd4805dde62955fb2d0cc2c448109d10ecc6206ea81f0a02e1646471358f3ec146cd3c75f2d390b" ) == 0 );
3149 #ifdef POLARSSL_SHA2_C
3151 FCT_TEST_BGN(rsa_pkcs1_sign_3_verify)
3153 unsigned char message_str[1000];
3154 unsigned char hash_result[1000];
3155 unsigned char result_str[1000];
3160 memset( message_str, 0x00, 1000 );
3161 memset( hash_result, 0x00, 1000 );
3162 memset( result_str, 0x00, 1000 );
3165 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3170 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3171 unhexify( result_str,
"9d768b8b31421f9d9ced890aafaf8b3468656419049ed268f6e1992066f45dc3e4cd349e8c5ed5a06e4ef5badaba064ba94907dfedf3d708becaf44ae9b27c3866d329311ba93e8ddc7fc284fba05d1bb84fb1e060a5b76b7fa515cfcd2c8144474623672703cac1e15ff4fdf8ef19d365c51ba86e60f4cbbcd07f956060625751bfbecc47945646459cadaddd900603a8149a93b31a6d432e1da1a67eb765f5b2f0bd1adb9af12d731c7b02931b42dbbfd8c7cecde76b817e96f664147a2c5091c6ce4dc562c5f57159d6f9dc9ba2daa212db56677839621bd4805dde62955fb2d0cc2c448109d10ecc6206ea81f0a02e1646471358f3ec146cd3c75f2d390b" );
3175 #ifdef POLARSSL_MD2_C
3177 md2( message_str, msg_len, hash_result );
3180 #ifdef POLARSSL_MD4_C
3182 md4( message_str, msg_len, hash_result );
3185 #ifdef POLARSSL_MD5_C
3187 md5( message_str, msg_len, hash_result );
3190 #ifdef POLARSSL_SHA1_C
3192 sha1( message_str, msg_len, hash_result );
3195 #ifdef POLARSSL_SHA2_C
3197 sha2( message_str, msg_len, hash_result, 1 );
3200 sha2( message_str, msg_len, hash_result, 0 );
3203 #ifdef POLARSSL_SHA4_C
3205 sha4( message_str, msg_len, hash_result, 1 );
3208 sha4( message_str, msg_len, hash_result, 0 );
3220 #ifdef POLARSSL_SHA4_C
3222 FCT_TEST_BGN(rsa_pkcs1_sign_4_sha384_2048_bits_rsa)
3224 unsigned char message_str[1000];
3225 unsigned char hash_result[1000];
3226 unsigned char output[1000];
3227 unsigned char output_str[1000];
3235 memset( message_str, 0x00, 1000 );
3236 memset( hash_result, 0x00, 1000 );
3237 memset( output, 0x00, 1000 );
3238 memset( output_str, 0x00, 1000 );
3241 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
3242 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
3243 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3249 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
3257 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3261 #ifdef POLARSSL_MD2_C
3263 md2( message_str, msg_len, hash_result );
3266 #ifdef POLARSSL_MD4_C
3268 md4( message_str, msg_len, hash_result );
3271 #ifdef POLARSSL_MD5_C
3273 md5( message_str, msg_len, hash_result );
3276 #ifdef POLARSSL_SHA1_C
3278 sha1( message_str, msg_len, hash_result );
3281 #ifdef POLARSSL_SHA2_C
3283 sha2( message_str, msg_len, hash_result, 1 );
3286 sha2( message_str, msg_len, hash_result, 0 );
3289 #ifdef POLARSSL_SHA4_C
3291 sha4( message_str, msg_len, hash_result, 1 );
3294 sha4( message_str, msg_len, hash_result, 0 );
3304 fct_chk( strcasecmp( (
char *) output_str,
"40dcc96822e5612eb33f1dca247a35109ba3845c7a3d556a60e656624bf1c103d94686ca7379e9e329ccd1b19b52bfd48b608df9f59a96a82d3feb0101096dbcb80e46da543b4c982ac6bb1717f24f9fe3f76b7154492b47525be1ddcaf4631d33481531be8f3e685837b40bdf4a02827d79f6a32374147174680f51c8e0d8eed9d5c445a563a7bce9ef4236e7cfdc12b2223ef457c3e8ccc6dd65cc23e977a1f03f5ef584feb9af00efc71a701f9d413b0290af17692cb821a1e863d5778e174b1130659f30583f434f09cb1212471a41dd65c102de64a194b6ae3e43cd75928049db78042c58e980aff3ea2774e42845bcf217410a118cf5deeaa64224dbc8" ) == 0 );
3313 #ifdef POLARSSL_SHA4_C
3315 FCT_TEST_BGN(rsa_pkcs1_sign_4_verify)
3317 unsigned char message_str[1000];
3318 unsigned char hash_result[1000];
3319 unsigned char result_str[1000];
3324 memset( message_str, 0x00, 1000 );
3325 memset( hash_result, 0x00, 1000 );
3326 memset( result_str, 0x00, 1000 );
3329 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3334 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3335 unhexify( result_str,
"40dcc96822e5612eb33f1dca247a35109ba3845c7a3d556a60e656624bf1c103d94686ca7379e9e329ccd1b19b52bfd48b608df9f59a96a82d3feb0101096dbcb80e46da543b4c982ac6bb1717f24f9fe3f76b7154492b47525be1ddcaf4631d33481531be8f3e685837b40bdf4a02827d79f6a32374147174680f51c8e0d8eed9d5c445a563a7bce9ef4236e7cfdc12b2223ef457c3e8ccc6dd65cc23e977a1f03f5ef584feb9af00efc71a701f9d413b0290af17692cb821a1e863d5778e174b1130659f30583f434f09cb1212471a41dd65c102de64a194b6ae3e43cd75928049db78042c58e980aff3ea2774e42845bcf217410a118cf5deeaa64224dbc8" );
3339 #ifdef POLARSSL_MD2_C
3341 md2( message_str, msg_len, hash_result );
3344 #ifdef POLARSSL_MD4_C
3346 md4( message_str, msg_len, hash_result );
3349 #ifdef POLARSSL_MD5_C
3351 md5( message_str, msg_len, hash_result );
3354 #ifdef POLARSSL_SHA1_C
3356 sha1( message_str, msg_len, hash_result );
3359 #ifdef POLARSSL_SHA2_C
3361 sha2( message_str, msg_len, hash_result, 1 );
3364 sha2( message_str, msg_len, hash_result, 0 );
3367 #ifdef POLARSSL_SHA4_C
3369 sha4( message_str, msg_len, hash_result, 1 );
3372 sha4( message_str, msg_len, hash_result, 0 );
3384 #ifdef POLARSSL_MD2_C
3386 FCT_TEST_BGN(rsa_pkcs1_sign_5_md2_2048_bits_rsa)
3388 unsigned char message_str[1000];
3389 unsigned char hash_result[1000];
3390 unsigned char output[1000];
3391 unsigned char output_str[1000];
3399 memset( message_str, 0x00, 1000 );
3400 memset( hash_result, 0x00, 1000 );
3401 memset( output, 0x00, 1000 );
3402 memset( output_str, 0x00, 1000 );
3405 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
3406 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
3407 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3413 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
3421 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3425 #ifdef POLARSSL_MD2_C
3427 md2( message_str, msg_len, hash_result );
3430 #ifdef POLARSSL_MD4_C
3432 md4( message_str, msg_len, hash_result );
3435 #ifdef POLARSSL_MD5_C
3437 md5( message_str, msg_len, hash_result );
3440 #ifdef POLARSSL_SHA1_C
3442 sha1( message_str, msg_len, hash_result );
3445 #ifdef POLARSSL_SHA2_C
3447 sha2( message_str, msg_len, hash_result, 1 );
3450 sha2( message_str, msg_len, hash_result, 0 );
3453 #ifdef POLARSSL_SHA4_C
3455 sha4( message_str, msg_len, hash_result, 1 );
3458 sha4( message_str, msg_len, hash_result, 0 );
3468 fct_chk( strcasecmp( (
char *) output_str,
"6cbb0e4019d64dd5cd2d48fa43446e5cba1a7edbb79d91b199be75c7d3e7ae0820c44d3a120cd2910f73cbb315e15963a60ea7da3452015d9d6beb5ac998fddbd1fa3e5908abc9151f3ffb70365aaee6fb0cd440d3f5591868fc136fae38ac7bcdb3bde3c6a0362dd8b814f7edadd4a51b2edf2227a40d1e34c29f608add7746731425858eb93661c633b7a90942fca3cd594ab4ec170052d44105643518020782e76235def34d014135bad8daed590200482325c3416c3d66417e80d9f9c6322a54683638247b577445ecd0be2765ce96c4ee45213204026dfba24d5ee89e1ea75538ba39f7149a5ac0fc12d7c53cbc12481d4a8e2d410ec633d800ad4b4304" ) == 0 );
3477 #ifdef POLARSSL_MD2_C
3479 FCT_TEST_BGN(rsa_pkcs1_sign_5_verify)
3481 unsigned char message_str[1000];
3482 unsigned char hash_result[1000];
3483 unsigned char result_str[1000];
3488 memset( message_str, 0x00, 1000 );
3489 memset( hash_result, 0x00, 1000 );
3490 memset( result_str, 0x00, 1000 );
3493 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3498 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3499 unhexify( result_str,
"6cbb0e4019d64dd5cd2d48fa43446e5cba1a7edbb79d91b199be75c7d3e7ae0820c44d3a120cd2910f73cbb315e15963a60ea7da3452015d9d6beb5ac998fddbd1fa3e5908abc9151f3ffb70365aaee6fb0cd440d3f5591868fc136fae38ac7bcdb3bde3c6a0362dd8b814f7edadd4a51b2edf2227a40d1e34c29f608add7746731425858eb93661c633b7a90942fca3cd594ab4ec170052d44105643518020782e76235def34d014135bad8daed590200482325c3416c3d66417e80d9f9c6322a54683638247b577445ecd0be2765ce96c4ee45213204026dfba24d5ee89e1ea75538ba39f7149a5ac0fc12d7c53cbc12481d4a8e2d410ec633d800ad4b4304" );
3503 #ifdef POLARSSL_MD2_C
3505 md2( message_str, msg_len, hash_result );
3508 #ifdef POLARSSL_MD4_C
3510 md4( message_str, msg_len, hash_result );
3513 #ifdef POLARSSL_MD5_C
3515 md5( message_str, msg_len, hash_result );
3518 #ifdef POLARSSL_SHA1_C
3520 sha1( message_str, msg_len, hash_result );
3523 #ifdef POLARSSL_SHA2_C
3525 sha2( message_str, msg_len, hash_result, 1 );
3528 sha2( message_str, msg_len, hash_result, 0 );
3531 #ifdef POLARSSL_SHA4_C
3533 sha4( message_str, msg_len, hash_result, 1 );
3536 sha4( message_str, msg_len, hash_result, 0 );
3548 #ifdef POLARSSL_MD4_C
3550 FCT_TEST_BGN(rsa_pkcs1_sign_6_md4_2048_bits_rsa)
3552 unsigned char message_str[1000];
3553 unsigned char hash_result[1000];
3554 unsigned char output[1000];
3555 unsigned char output_str[1000];
3563 memset( message_str, 0x00, 1000 );
3564 memset( hash_result, 0x00, 1000 );
3565 memset( output, 0x00, 1000 );
3566 memset( output_str, 0x00, 1000 );
3569 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
3570 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
3571 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3577 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
3585 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3589 #ifdef POLARSSL_MD2_C
3591 md2( message_str, msg_len, hash_result );
3594 #ifdef POLARSSL_MD4_C
3596 md4( message_str, msg_len, hash_result );
3599 #ifdef POLARSSL_MD5_C
3601 md5( message_str, msg_len, hash_result );
3604 #ifdef POLARSSL_SHA1_C
3606 sha1( message_str, msg_len, hash_result );
3609 #ifdef POLARSSL_SHA2_C
3611 sha2( message_str, msg_len, hash_result, 1 );
3614 sha2( message_str, msg_len, hash_result, 0 );
3617 #ifdef POLARSSL_SHA4_C
3619 sha4( message_str, msg_len, hash_result, 1 );
3622 sha4( message_str, msg_len, hash_result, 0 );
3632 fct_chk( strcasecmp( (
char *) output_str,
"b0e60dc4dfaf0f636a3a4414eae2d7bce7c3ce505a46e38f3f654d8769b31b7891ba18f89672fce204bbac6e3764355e65447c087994731cd44f086710e79e8c3ebc6e2cb61edc5d3e05848ab733d95efe2d0252a691e810c17fa57fd2dd296374c9ba17fea704685677f45d668a386c8ca433fbbb56d3bbfb43a489ed9518b1c9ab13ce497a1cec91467453bfe533145a31a095c2de541255141768ccc6fdff3fc790b5050f1122c93c3044a9346947e1b23e8125bf7edbf38c64a4286dfc1b829e983db3117959a2559a8ef97687ab673e231be213d88edc632637b58cdb2d69c51fbf6bf894cff319216718b1e696f75cd4366f53dc2e28b2a00017984207" ) == 0 );
3641 #ifdef POLARSSL_MD4_C
3643 FCT_TEST_BGN(rsa_pkcs1_sign_6_verify)
3645 unsigned char message_str[1000];
3646 unsigned char hash_result[1000];
3647 unsigned char result_str[1000];
3652 memset( message_str, 0x00, 1000 );
3653 memset( hash_result, 0x00, 1000 );
3654 memset( result_str, 0x00, 1000 );
3657 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3662 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3663 unhexify( result_str,
"b0e60dc4dfaf0f636a3a4414eae2d7bce7c3ce505a46e38f3f654d8769b31b7891ba18f89672fce204bbac6e3764355e65447c087994731cd44f086710e79e8c3ebc6e2cb61edc5d3e05848ab733d95efe2d0252a691e810c17fa57fd2dd296374c9ba17fea704685677f45d668a386c8ca433fbbb56d3bbfb43a489ed9518b1c9ab13ce497a1cec91467453bfe533145a31a095c2de541255141768ccc6fdff3fc790b5050f1122c93c3044a9346947e1b23e8125bf7edbf38c64a4286dfc1b829e983db3117959a2559a8ef97687ab673e231be213d88edc632637b58cdb2d69c51fbf6bf894cff319216718b1e696f75cd4366f53dc2e28b2a00017984207" );
3667 #ifdef POLARSSL_MD2_C
3669 md2( message_str, msg_len, hash_result );
3672 #ifdef POLARSSL_MD4_C
3674 md4( message_str, msg_len, hash_result );
3677 #ifdef POLARSSL_MD5_C
3679 md5( message_str, msg_len, hash_result );
3682 #ifdef POLARSSL_SHA1_C
3684 sha1( message_str, msg_len, hash_result );
3687 #ifdef POLARSSL_SHA2_C
3689 sha2( message_str, msg_len, hash_result, 1 );
3692 sha2( message_str, msg_len, hash_result, 0 );
3695 #ifdef POLARSSL_SHA4_C
3697 sha4( message_str, msg_len, hash_result, 1 );
3700 sha4( message_str, msg_len, hash_result, 0 );
3712 #ifdef POLARSSL_MD5_C
3714 FCT_TEST_BGN(rsa_pkcs1_sign_7_md5_2048_bits_rsa)
3716 unsigned char message_str[1000];
3717 unsigned char hash_result[1000];
3718 unsigned char output[1000];
3719 unsigned char output_str[1000];
3727 memset( message_str, 0x00, 1000 );
3728 memset( hash_result, 0x00, 1000 );
3729 memset( output, 0x00, 1000 );
3730 memset( output_str, 0x00, 1000 );
3733 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
3734 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
3735 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3741 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
3749 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3753 #ifdef POLARSSL_MD2_C
3755 md2( message_str, msg_len, hash_result );
3758 #ifdef POLARSSL_MD4_C
3760 md4( message_str, msg_len, hash_result );
3763 #ifdef POLARSSL_MD5_C
3765 md5( message_str, msg_len, hash_result );
3768 #ifdef POLARSSL_SHA1_C
3770 sha1( message_str, msg_len, hash_result );
3773 #ifdef POLARSSL_SHA2_C
3775 sha2( message_str, msg_len, hash_result, 1 );
3778 sha2( message_str, msg_len, hash_result, 0 );
3781 #ifdef POLARSSL_SHA4_C
3783 sha4( message_str, msg_len, hash_result, 1 );
3786 sha4( message_str, msg_len, hash_result, 0 );
3796 fct_chk( strcasecmp( (
char *) output_str,
"3bcf673c3b27f6e2ece4bb97c7a37161e6c6ee7419ef366efc3cfee0f15f415ff6d9d4390937386c6fec1771acba73f24ec6b0469ea8b88083f0b4e1b6069d7bf286e67cf94182a548663137e82a6e09c35de2c27779da0503f1f5bedfebadf2a875f17763a0564df4a6d945a5a3e46bc90fb692af3a55106aafc6b577587456ff8d49cfd5c299d7a2b776dbe4c1ae777b0f64aa3bab27689af32d6cc76157c7dc6900a3469e18a7d9b6bfe4951d1105a08864575e4f4ec05b3e053f9b7a2d5653ae085e50a63380d6bdd6f58ab378d7e0a2be708c559849891317089ab04c82d8bc589ea088b90b11dea5cf85856ff7e609cc1adb1d403beead4c126ff29021" ) == 0 );
3805 #ifdef POLARSSL_MD5_C
3807 FCT_TEST_BGN(rsa_pkcs1_sign_7_verify)
3809 unsigned char message_str[1000];
3810 unsigned char hash_result[1000];
3811 unsigned char result_str[1000];
3816 memset( message_str, 0x00, 1000 );
3817 memset( hash_result, 0x00, 1000 );
3818 memset( result_str, 0x00, 1000 );
3821 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3826 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3827 unhexify( result_str,
"3bcf673c3b27f6e2ece4bb97c7a37161e6c6ee7419ef366efc3cfee0f15f415ff6d9d4390937386c6fec1771acba73f24ec6b0469ea8b88083f0b4e1b6069d7bf286e67cf94182a548663137e82a6e09c35de2c27779da0503f1f5bedfebadf2a875f17763a0564df4a6d945a5a3e46bc90fb692af3a55106aafc6b577587456ff8d49cfd5c299d7a2b776dbe4c1ae777b0f64aa3bab27689af32d6cc76157c7dc6900a3469e18a7d9b6bfe4951d1105a08864575e4f4ec05b3e053f9b7a2d5653ae085e50a63380d6bdd6f58ab378d7e0a2be708c559849891317089ab04c82d8bc589ea088b90b11dea5cf85856ff7e609cc1adb1d403beead4c126ff29021" );
3831 #ifdef POLARSSL_MD2_C
3833 md2( message_str, msg_len, hash_result );
3836 #ifdef POLARSSL_MD4_C
3838 md4( message_str, msg_len, hash_result );
3841 #ifdef POLARSSL_MD5_C
3843 md5( message_str, msg_len, hash_result );
3846 #ifdef POLARSSL_SHA1_C
3848 sha1( message_str, msg_len, hash_result );
3851 #ifdef POLARSSL_SHA2_C
3853 sha2( message_str, msg_len, hash_result, 1 );
3856 sha2( message_str, msg_len, hash_result, 0 );
3859 #ifdef POLARSSL_SHA4_C
3861 sha4( message_str, msg_len, hash_result, 1 );
3864 sha4( message_str, msg_len, hash_result, 0 );
3877 FCT_TEST_BGN(rsa_pkcs1_sign_8_raw_2048_bits_rsa)
3879 unsigned char message_str[1000];
3880 unsigned char hash_result[1000];
3881 unsigned char output[1000];
3882 unsigned char output_str[1000];
3890 memset( message_str, 0x00, 1000 );
3891 memset( hash_result, 0x00, 1000 );
3892 memset( output, 0x00, 1000 );
3893 memset( output_str, 0x00, 1000 );
3896 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
3897 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
3898 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3904 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
3912 unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3913 hash_len =
unhexify( hash_result,
"1234567890deadbeef" );
3919 fct_chk( strcasecmp( (
char *) output_str,
"605baf947c0de49e4f6a0dfb94a43ae318d5df8ed20ba4ba5a37a73fb009c5c9e5cce8b70a25b1c7580f389f0d7092485cdfa02208b70d33482edf07a7eafebdc54862ca0e0396a5a7d09991b9753eb1ffb6091971bb5789c6b121abbcd0a3cbaa39969fa7c28146fce96c6d03272e3793e5be8f5abfa9afcbebb986d7b3050604a2af4d3a40fa6c003781a539a60259d1e84f13322da9e538a49c369b83e7286bf7d30b64bbb773506705da5d5d5483a563a1ffacc902fb75c9a751b1e83cdc7a6db0470056883f48b5a5446b43b1d180ea12ba11a6a8d93b3b32a30156b6084b7fb142998a2a0d28014b84098ece7d9d5e4d55cc342ca26f5a0167a679dec8" ) == 0 );
3927 FCT_TEST_BGN(rsa_pkcs1_sign_8_verify)
3929 unsigned char message_str[1000];
3930 unsigned char hash_result[1000];
3931 unsigned char result_str[1000];
3936 memset( message_str, 0x00, 1000 );
3937 memset( hash_result, 0x00, 1000 );
3938 memset( result_str, 0x00, 1000 );
3941 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3946 unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3947 hash_len =
unhexify( hash_result,
"1234567890deadbeef" );
3948 unhexify( result_str,
"605baf947c0de49e4f6a0dfb94a43ae318d5df8ed20ba4ba5a37a73fb009c5c9e5cce8b70a25b1c7580f389f0d7092485cdfa02208b70d33482edf07a7eafebdc54862ca0e0396a5a7d09991b9753eb1ffb6091971bb5789c6b121abbcd0a3cbaa39969fa7c28146fce96c6d03272e3793e5be8f5abfa9afcbebb986d7b3050604a2af4d3a40fa6c003781a539a60259d1e84f13322da9e538a49c369b83e7286bf7d30b64bbb773506705da5d5d5483a563a1ffacc902fb75c9a751b1e83cdc7a6db0470056883f48b5a5446b43b1d180ea12ba11a6a8d93b3b32a30156b6084b7fb142998a2a0d28014b84098ece7d9d5e4d55cc342ca26f5a0167a679dec8" );
3957 FCT_TEST_BGN(rsa_pkcs1_sign_8_verify_wrong_raw_hash)
3959 unsigned char message_str[1000];
3960 unsigned char hash_result[1000];
3961 unsigned char result_str[1000];
3966 memset( message_str, 0x00, 1000 );
3967 memset( hash_result, 0x00, 1000 );
3968 memset( result_str, 0x00, 1000 );
3971 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
3976 unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
3977 hash_len =
unhexify( hash_result,
"1234567890deadcafe" );
3978 unhexify( result_str,
"605baf947c0de49e4f6a0dfb94a43ae318d5df8ed20ba4ba5a37a73fb009c5c9e5cce8b70a25b1c7580f389f0d7092485cdfa02208b70d33482edf07a7eafebdc54862ca0e0396a5a7d09991b9753eb1ffb6091971bb5789c6b121abbcd0a3cbaa39969fa7c28146fce96c6d03272e3793e5be8f5abfa9afcbebb986d7b3050604a2af4d3a40fa6c003781a539a60259d1e84f13322da9e538a49c369b83e7286bf7d30b64bbb773506705da5d5d5483a563a1ffacc902fb75c9a751b1e83cdc7a6db0470056883f48b5a5446b43b1d180ea12ba11a6a8d93b3b32a30156b6084b7fb142998a2a0d28014b84098ece7d9d5e4d55cc342ca26f5a0167a679dec8" );
3987 FCT_TEST_BGN(rsa_pkcs1_sign_9_invalid_digest_type)
3989 unsigned char message_str[1000];
3990 unsigned char hash_result[1000];
3991 unsigned char output[1000];
3992 unsigned char output_str[1000];
4000 memset( message_str, 0x00, 1000 );
4001 memset( hash_result, 0x00, 1000 );
4002 memset( output, 0x00, 1000 );
4003 memset( output_str, 0x00, 1000 );
4006 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4007 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4008 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4014 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
4022 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
4026 #ifdef POLARSSL_MD2_C
4028 md2( message_str, msg_len, hash_result );
4031 #ifdef POLARSSL_MD4_C
4033 md4( message_str, msg_len, hash_result );
4036 #ifdef POLARSSL_MD5_C
4038 md5( message_str, msg_len, hash_result );
4041 #ifdef POLARSSL_SHA1_C
4043 sha1( message_str, msg_len, hash_result );
4046 #ifdef POLARSSL_SHA2_C
4048 sha2( message_str, msg_len, hash_result, 1 );
4051 sha2( message_str, msg_len, hash_result, 0 );
4054 #ifdef POLARSSL_SHA4_C
4056 sha4( message_str, msg_len, hash_result, 1 );
4059 sha4( message_str, msg_len, hash_result, 0 );
4069 fct_chk( strcasecmp( (
char *) output_str,
"3bcf673c3b27f6e2ece4bb97c7a37161e6c6ee7419ef366efc3cfee0f15f415ff6d9d4390937386c6fec1771acba73f24ec6b0469ea8b88083f0b4e1b6069d7bf286e67cf94182a548663137e82a6e09c35de2c27779da0503f1f5bedfebadf2a875f17763a0564df4a6d945a5a3e46bc90fb692af3a55106aafc6b577587456ff8d49cfd5c299d7a2b776dbe4c1ae777b0f64aa3bab27689af32d6cc76157c7dc6900a3469e18a7d9b6bfe4951d1105a08864575e4f4ec05b3e053f9b7a2d5653ae085e50a63380d6bdd6f58ab378d7e0a2be708c559849891317089ab04c82d8bc589ea088b90b11dea5cf85856ff7e609cc1adb1d403beead4c126ff29021" ) == 0 );
4078 FCT_TEST_BGN(rsa_pkcs1_sign_9_verify_invalid_digest_type)
4080 unsigned char message_str[1000];
4081 unsigned char hash_result[1000];
4082 unsigned char result_str[1000];
4087 memset( message_str, 0x00, 1000 );
4088 memset( hash_result, 0x00, 1000 );
4089 memset( result_str, 0x00, 1000 );
4092 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4097 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
4098 unhexify( result_str,
"3bcf673c3b27f6e2ece4bb97c7a37161e6c6ee7419ef366efc3cfee0f15f415ff6d9d4390937386c6fec1771acba73f24ec6b0469ea8b88083f0b4e1b6069d7bf286e67cf94182a548663137e82a6e09c35de2c27779da0503f1f5bedfebadf2a875f17763a0564df4a6d945a5a3e46bc90fb692af3a55106aafc6b577587456ff8d49cfd5c299d7a2b776dbe4c1ae777b0f64aa3bab27689af32d6cc76157c7dc6900a3469e18a7d9b6bfe4951d1105a08864575e4f4ec05b3e053f9b7a2d5653ae085e50a63380d6bdd6f58ab378d7e0a2be708c559849891317089ab04c82d8bc589ea088b90b11dea5cf85856ff7e609cc1adb1d403beead4c126ff29021" );
4102 #ifdef POLARSSL_MD2_C
4104 md2( message_str, msg_len, hash_result );
4107 #ifdef POLARSSL_MD4_C
4109 md4( message_str, msg_len, hash_result );
4112 #ifdef POLARSSL_MD5_C
4114 md5( message_str, msg_len, hash_result );
4117 #ifdef POLARSSL_SHA1_C
4119 sha1( message_str, msg_len, hash_result );
4122 #ifdef POLARSSL_SHA2_C
4124 sha2( message_str, msg_len, hash_result, 1 );
4127 sha2( message_str, msg_len, hash_result, 0 );
4130 #ifdef POLARSSL_SHA4_C
4132 sha4( message_str, msg_len, hash_result, 1 );
4135 sha4( message_str, msg_len, hash_result, 0 );
4147 FCT_TEST_BGN(rsa_pkcs1_sign_8_invalid_padding_type)
4149 unsigned char message_str[1000];
4150 unsigned char hash_result[1000];
4151 unsigned char output[1000];
4152 unsigned char output_str[1000];
4160 memset( message_str, 0x00, 1000 );
4161 memset( hash_result, 0x00, 1000 );
4162 memset( output, 0x00, 1000 );
4163 memset( output_str, 0x00, 1000 );
4166 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4167 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4168 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4174 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
4182 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
4186 #ifdef POLARSSL_MD2_C
4188 md2( message_str, msg_len, hash_result );
4191 #ifdef POLARSSL_MD4_C
4193 md4( message_str, msg_len, hash_result );
4196 #ifdef POLARSSL_MD5_C
4198 md5( message_str, msg_len, hash_result );
4201 #ifdef POLARSSL_SHA1_C
4203 sha1( message_str, msg_len, hash_result );
4206 #ifdef POLARSSL_SHA2_C
4208 sha2( message_str, msg_len, hash_result, 1 );
4211 sha2( message_str, msg_len, hash_result, 0 );
4214 #ifdef POLARSSL_SHA4_C
4216 sha4( message_str, msg_len, hash_result, 1 );
4219 sha4( message_str, msg_len, hash_result, 0 );
4229 fct_chk( strcasecmp( (
char *) output_str,
"3bcf673c3b27f6e2ece4bb97c7a37161e6c6ee7419ef366efc3cfee0f15f415ff6d9d4390937386c6fec1771acba73f24ec6b0469ea8b88083f0b4e1b6069d7bf286e67cf94182a548663137e82a6e09c35de2c27779da0503f1f5bedfebadf2a875f17763a0564df4a6d945a5a3e46bc90fb692af3a55106aafc6b577587456ff8d49cfd5c299d7a2b776dbe4c1ae777b0f64aa3bab27689af32d6cc76157c7dc6900a3469e18a7d9b6bfe4951d1105a08864575e4f4ec05b3e053f9b7a2d5653ae085e50a63380d6bdd6f58ab378d7e0a2be708c559849891317089ab04c82d8bc589ea088b90b11dea5cf85856ff7e609cc1adb1d403beead4c126ff29021" ) == 0 );
4238 FCT_TEST_BGN(rsa_pkcs1_sign_8_verify_invalid_padding_type)
4240 unsigned char message_str[1000];
4241 unsigned char hash_result[1000];
4242 unsigned char result_str[1000];
4247 memset( message_str, 0x00, 1000 );
4248 memset( hash_result, 0x00, 1000 );
4249 memset( result_str, 0x00, 1000 );
4252 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4257 msg_len =
unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
4258 unhexify( result_str,
"3bcf673c3b27f6e2ece4bb97c7a37161e6c6ee7419ef366efc3cfee0f15f415ff6d9d4390937386c6fec1771acba73f24ec6b0469ea8b88083f0b4e1b6069d7bf286e67cf94182a548663137e82a6e09c35de2c27779da0503f1f5bedfebadf2a875f17763a0564df4a6d945a5a3e46bc90fb692af3a55106aafc6b577587456ff8d49cfd5c299d7a2b776dbe4c1ae777b0f64aa3bab27689af32d6cc76157c7dc6900a3469e18a7d9b6bfe4951d1105a08864575e4f4ec05b3e053f9b7a2d5653ae085e50a63380d6bdd6f58ab378d7e0a2be708c559849891317089ab04c82d8bc589ea088b90b11dea5cf85856ff7e609cc1adb1d403beead4c126ff29021" );
4262 #ifdef POLARSSL_MD2_C
4264 md2( message_str, msg_len, hash_result );
4267 #ifdef POLARSSL_MD4_C
4269 md4( message_str, msg_len, hash_result );
4272 #ifdef POLARSSL_MD5_C
4274 md5( message_str, msg_len, hash_result );
4277 #ifdef POLARSSL_SHA1_C
4279 sha1( message_str, msg_len, hash_result );
4282 #ifdef POLARSSL_SHA2_C
4284 sha2( message_str, msg_len, hash_result, 1 );
4287 sha2( message_str, msg_len, hash_result, 0 );
4290 #ifdef POLARSSL_SHA4_C
4292 sha4( message_str, msg_len, hash_result, 1 );
4295 sha4( message_str, msg_len, hash_result, 0 );
4307 FCT_TEST_BGN(rsa_pkcs1_encrypt_1)
4309 unsigned char message_str[1000];
4310 unsigned char output[1000];
4311 unsigned char output_str[1000];
4319 memset( message_str, 0x00, 1000 );
4320 memset( output, 0x00, 1000 );
4321 memset( output_str, 0x00, 1000 );
4324 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4329 msg_len =
unhexify( message_str,
"4E636AF98E40F3ADCFCCB698F4E80B9F" );
4336 fct_chk( strcasecmp( (
char *) output_str,
"b0c0b193ba4a5b4502bfacd1a9c2697da5510f3e3ab7274cf404418afd2c62c89b98d83bbc21c8c1bf1afe6d8bf40425e053e9c03e03a3be0edbe1eda073fade1cc286cc0305a493d98fe795634c3cad7feb513edb742d66d910c87d07f6b0055c3488bb262b5fd1ce8747af64801fb39d2d3a3e57086ffe55ab8d0a2ca86975629a0f85767a4990c532a7c2dab1647997ebb234d0b28a0008bfebfc905e7ba5b30b60566a5e0190417465efdbf549934b8f0c5c9f36b7c5b6373a47ae553ced0608a161b1b70dfa509375cf7a3598223a6d7b7a1d1a06ac74d345a9bb7c0e44c8388858a4f1d8115f2bd769ffa69020385fa286302c80e950f9e2751308666c" ) == 0 );
4344 FCT_TEST_BGN(rsa_pkcs1_decrypt_1_verify)
4346 unsigned char message_str[1000];
4347 unsigned char output[1000];
4348 unsigned char output_str[1000];
4356 memset( message_str, 0x00, 1000 );
4357 memset( output, 0x00, 1000 );
4358 memset( output_str, 0x00, 1000 );
4361 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4362 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4363 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4369 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
4377 unhexify( message_str,
"a42eda41e56235e666e7faaa77100197f657288a1bf183e4820f0c37ce2c456b960278d6003e0bbcd4be4a969f8e8fd9231e1f492414f00ed09844994c86ec32db7cde3bec7f0c3dbf6ae55baeb2712fa609f5fc3207a824eb3dace31849cd6a6084318523912bccb84cf42e3c6d6d1685131d69bb545acec827d2b0dfdd5568b7dcc4f5a11d6916583fefa689d367f8c9e1d95dcd2240895a9470b0c1730f97cd6e8546860bd254801769f54be96e16362ddcbf34d56035028890199e0f48db38642cb66a4181e028a6443a404fea284ce02b4614b683367d40874e505611d23142d49f06feea831d52d347b13610b413c4efc43a6de9f0b08d2a951dc503b6" );
4385 fct_chk( strncasecmp( (
char *) output_str,
"4E636AF98E40F3ADCFCCB698F4E80B9F", strlen(
"4E636AF98E40F3ADCFCCB698F4E80B9F" ) ) == 0 );
4394 FCT_TEST_BGN(rsa_pkcs1_encrypt_2_data_too_large)
4396 unsigned char message_str[1000];
4397 unsigned char output[1000];
4398 unsigned char output_str[1000];
4406 memset( message_str, 0x00, 1000 );
4407 memset( output, 0x00, 1000 );
4408 memset( output_str, 0x00, 1000 );
4411 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4416 msg_len =
unhexify( message_str,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" );
4423 fct_chk( strcasecmp( (
char *) output_str,
"a42eda41e56235e666e7faaa77100197f657288a1bf183e4820f0c37ce2c456b960278d6003e0bbcd4be4a969f8e8fd9231e1f492414f00ed09844994c86ec32db7cde3bec7f0c3dbf6ae55baeb2712fa609f5fc3207a824eb3dace31849cd6a6084318523912bccb84cf42e3c6d6d1685131d69bb545acec827d2b0dfdd5568b7dcc4f5a11d6916583fefa689d367f8c9e1d95dcd2240895a9470b0c1730f97cd6e8546860bd254801769f54be96e16362ddcbf34d56035028890199e0f48db38642cb66a4181e028a6443a404fea284ce02b4614b683367d40874e505611d23142d49f06feea831d52d347b13610b413c4efc43a6de9f0b08d2a951dc503b6" ) == 0 );
4431 FCT_TEST_BGN(rsa_pkcs1_decrypt_2_data_too_small)
4433 unsigned char message_str[1000];
4434 unsigned char output[1000];
4435 unsigned char output_str[1000];
4443 memset( message_str, 0x00, 1000 );
4444 memset( output, 0x00, 1000 );
4445 memset( output_str, 0x00, 1000 );
4448 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4449 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4450 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4456 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
4464 unhexify( message_str,
"deadbeafcafedeadbeeffedcba9876" );
4472 fct_chk( strncasecmp( (
char *) output_str,
"4E636AF98E40F3ADCFCCB698F4E80B9F", strlen(
"4E636AF98E40F3ADCFCCB698F4E80B9F" ) ) == 0 );
4481 FCT_TEST_BGN(rsa_pkcs1_encrypt_3_invalid_padding_mode)
4483 unsigned char message_str[1000];
4484 unsigned char output[1000];
4485 unsigned char output_str[1000];
4493 memset( message_str, 0x00, 1000 );
4494 memset( output, 0x00, 1000 );
4495 memset( output_str, 0x00, 1000 );
4498 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4503 msg_len =
unhexify( message_str,
"4E636AF98E40F3ADCFCCB698F4E80B9F" );
4510 fct_chk( strcasecmp( (
char *) output_str,
"a42eda41e56235e666e7faaa77100197f657288a1bf183e4820f0c37ce2c456b960278d6003e0bbcd4be4a969f8e8fd9231e1f492414f00ed09844994c86ec32db7cde3bec7f0c3dbf6ae55baeb2712fa609f5fc3207a824eb3dace31849cd6a6084318523912bccb84cf42e3c6d6d1685131d69bb545acec827d2b0dfdd5568b7dcc4f5a11d6916583fefa689d367f8c9e1d95dcd2240895a9470b0c1730f97cd6e8546860bd254801769f54be96e16362ddcbf34d56035028890199e0f48db38642cb66a4181e028a6443a404fea284ce02b4614b683367d40874e505611d23142d49f06feea831d52d347b13610b413c4efc43a6de9f0b08d2a951dc503b6" ) == 0 );
4518 FCT_TEST_BGN(rsa_pkcs1_decrypt_3_invalid_padding_mode)
4520 unsigned char message_str[1000];
4521 unsigned char output[1000];
4522 unsigned char output_str[1000];
4530 memset( message_str, 0x00, 1000 );
4531 memset( output, 0x00, 1000 );
4532 memset( output_str, 0x00, 1000 );
4535 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4536 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4537 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4543 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
4551 unhexify( message_str,
"a42eda41e56235e666e7faaa77100197f657288a1bf183e4820f0c37ce2c456b960278d6003e0bbcd4be4a969f8e8fd9231e1f492414f00ed09844994c86ec32db7cde3bec7f0c3dbf6ae55baeb2712fa609f5fc3207a824eb3dace31849cd6a6084318523912bccb84cf42e3c6d6d1685131d69bb545acec827d2b0dfdd5568b7dcc4f5a11d6916583fefa689d367f8c9e1d95dcd2240895a9470b0c1730f97cd6e8546860bd254801769f54be96e16362ddcbf34d56035028890199e0f48db38642cb66a4181e028a6443a404fea284ce02b4614b683367d40874e505611d23142d49f06feea831d52d347b13610b413c4efc43a6de9f0b08d2a951dc503b6" );
4559 fct_chk( strncasecmp( (
char *) output_str,
"4E636AF98E40F3ADCFCCB698F4E80B9F", strlen(
"4E636AF98E40F3ADCFCCB698F4E80B9F" ) ) == 0 );
4568 FCT_TEST_BGN(rsa_pkcs1_decrypt_4_output_buffer_too_small)
4570 unsigned char message_str[1000];
4571 unsigned char output[1000];
4572 unsigned char output_str[1000];
4580 memset( message_str, 0x00, 1000 );
4581 memset( output, 0x00, 1000 );
4582 memset( output_str, 0x00, 1000 );
4585 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4586 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4587 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4593 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
4601 unhexify( message_str,
"a42eda41e56235e666e7faaa77100197f657288a1bf183e4820f0c37ce2c456b960278d6003e0bbcd4be4a969f8e8fd9231e1f492414f00ed09844994c86ec32db7cde3bec7f0c3dbf6ae55baeb2712fa609f5fc3207a824eb3dace31849cd6a6084318523912bccb84cf42e3c6d6d1685131d69bb545acec827d2b0dfdd5568b7dcc4f5a11d6916583fefa689d367f8c9e1d95dcd2240895a9470b0c1730f97cd6e8546860bd254801769f54be96e16362ddcbf34d56035028890199e0f48db38642cb66a4181e028a6443a404fea284ce02b4614b683367d40874e505611d23142d49f06feea831d52d347b13610b413c4efc43a6de9f0b08d2a951dc503b6" );
4609 fct_chk( strncasecmp( (
char *) output_str,
"4E636AF98E40F3ADCFCCB698F4E80B9F", strlen(
"4E636AF98E40F3ADCFCCB698F4E80B9F" ) ) == 0 );
4618 FCT_TEST_BGN(rsa_check_empty_private_key)
4628 FCT_TEST_BGN(rsa_check_private_key_1_correct)
4635 if( strlen(
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) )
4637 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4639 if( strlen(
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) )
4641 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4643 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
4645 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4651 if( strlen(
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) )
4653 fct_chk(
mpi_read_string( &ctx.
D, 16,
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) == 0 );
4655 if( strlen(
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) )
4657 fct_chk(
mpi_read_string( &ctx.
DP, 16,
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) == 0 );
4659 if( strlen(
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) )
4661 fct_chk(
mpi_read_string( &ctx.
DQ, 16,
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) == 0 );
4663 if( strlen(
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) )
4665 fct_chk(
mpi_read_string( &ctx.
QP, 16,
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) == 0 );
4675 FCT_TEST_BGN(rsa_check_private_key_2_no_p)
4686 if( strlen(
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) )
4688 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4690 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
4692 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4698 if( strlen(
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) )
4700 fct_chk(
mpi_read_string( &ctx.
D, 16,
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) == 0 );
4702 if( strlen(
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) )
4704 fct_chk(
mpi_read_string( &ctx.
DP, 16,
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) == 0 );
4706 if( strlen(
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) )
4708 fct_chk(
mpi_read_string( &ctx.
DQ, 16,
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) == 0 );
4710 if( strlen(
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) )
4712 fct_chk(
mpi_read_string( &ctx.
QP, 16,
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) == 0 );
4722 FCT_TEST_BGN(rsa_check_private_key_3_no_q)
4729 if( strlen(
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) )
4731 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4737 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
4739 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4745 if( strlen(
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) )
4747 fct_chk(
mpi_read_string( &ctx.
D, 16,
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) == 0 );
4749 if( strlen(
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) )
4751 fct_chk(
mpi_read_string( &ctx.
DP, 16,
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) == 0 );
4753 if( strlen(
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) )
4755 fct_chk(
mpi_read_string( &ctx.
DQ, 16,
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) == 0 );
4757 if( strlen(
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) )
4759 fct_chk(
mpi_read_string( &ctx.
QP, 16,
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) == 0 );
4769 FCT_TEST_BGN(rsa_check_private_key_4_no_n)
4776 if( strlen(
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) )
4778 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4780 if( strlen(
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) )
4782 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4792 if( strlen(
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) )
4794 fct_chk(
mpi_read_string( &ctx.
D, 16,
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) == 0 );
4796 if( strlen(
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) )
4798 fct_chk(
mpi_read_string( &ctx.
DP, 16,
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) == 0 );
4800 if( strlen(
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) )
4802 fct_chk(
mpi_read_string( &ctx.
DQ, 16,
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) == 0 );
4804 if( strlen(
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) )
4806 fct_chk(
mpi_read_string( &ctx.
QP, 16,
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) == 0 );
4816 FCT_TEST_BGN(rsa_check_private_key_5_no_e)
4823 if( strlen(
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) )
4825 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4827 if( strlen(
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) )
4829 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4831 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
4833 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4839 if( strlen(
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) )
4841 fct_chk(
mpi_read_string( &ctx.
D, 16,
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) == 0 );
4843 if( strlen(
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) )
4845 fct_chk(
mpi_read_string( &ctx.
DP, 16,
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) == 0 );
4847 if( strlen(
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) )
4849 fct_chk(
mpi_read_string( &ctx.
DQ, 16,
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) == 0 );
4851 if( strlen(
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) )
4853 fct_chk(
mpi_read_string( &ctx.
QP, 16,
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) == 0 );
4863 FCT_TEST_BGN(rsa_check_private_key_6_no_d)
4870 if( strlen(
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) )
4872 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4874 if( strlen(
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) )
4876 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4878 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
4880 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4890 if( strlen(
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) )
4892 fct_chk(
mpi_read_string( &ctx.
DP, 16,
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) == 0 );
4894 if( strlen(
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) )
4896 fct_chk(
mpi_read_string( &ctx.
DQ, 16,
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) == 0 );
4898 if( strlen(
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) )
4900 fct_chk(
mpi_read_string( &ctx.
QP, 16,
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) == 0 );
4910 FCT_TEST_BGN(rsa_check_private_key_7_no_dp)
4917 if( strlen(
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) )
4919 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4921 if( strlen(
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) )
4923 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4925 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
4927 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4933 if( strlen(
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) )
4935 fct_chk(
mpi_read_string( &ctx.
D, 16,
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) == 0 );
4941 if( strlen(
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) )
4943 fct_chk(
mpi_read_string( &ctx.
DQ, 16,
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) == 0 );
4945 if( strlen(
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) )
4947 fct_chk(
mpi_read_string( &ctx.
QP, 16,
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) == 0 );
4957 FCT_TEST_BGN(rsa_check_private_key_8_no_dq)
4964 if( strlen(
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) )
4966 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
4968 if( strlen(
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) )
4970 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
4972 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
4974 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
4980 if( strlen(
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) )
4982 fct_chk(
mpi_read_string( &ctx.
D, 16,
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) == 0 );
4984 if( strlen(
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) )
4986 fct_chk(
mpi_read_string( &ctx.
DP, 16,
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) == 0 );
4992 if( strlen(
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) )
4994 fct_chk(
mpi_read_string( &ctx.
QP, 16,
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) == 0 );
5004 FCT_TEST_BGN(rsa_check_private_key_9_no_qp)
5011 if( strlen(
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) )
5013 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
5015 if( strlen(
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) )
5017 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
5019 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
5021 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
5027 if( strlen(
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) )
5029 fct_chk(
mpi_read_string( &ctx.
D, 16,
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCB" ) == 0 );
5031 if( strlen(
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) )
5033 fct_chk(
mpi_read_string( &ctx.
DP, 16,
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) == 0 );
5035 if( strlen(
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) )
5037 fct_chk(
mpi_read_string( &ctx.
DQ, 16,
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) == 0 );
5051 FCT_TEST_BGN(rsa_check_private_key_10_incorrect)
5058 if( strlen(
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) )
5060 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
5062 if( strlen(
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) )
5064 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
5066 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
5068 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
5074 if( strlen(
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCC" ) )
5076 fct_chk(
mpi_read_string( &ctx.
D, 16,
"77B1D99300D6A54E864962DA09AE10CF19A7FB888456BC2672B72AEA52B204914493D16C184AD201EC3F762E1FBD8702BA796EF953D9EA2F26300D285264F11B0C8301D0207FEB1E2C984445C899B0ACEBAA74EF014DD1D4BDDB43202C08D2FF9692D8D788478DEC829EB52AFB5AE068FBDBAC499A27FACECC391E75C936D55F07BB45EE184DAB45808E15722502F279F89B38C1CB292557E5063597F52C75D61001EDC33F4739353E33E56AD273B067C1A2760208529EA421774A5FFFCB3423B1E0051E7702A55D80CBF2141569F18F87BFF538A1DA8EDBB2693A539F68E0D62D77743F89EACF3B1723BDB25CE2F333FA63CACF0E67DF1A431893BB9B352FCC" ) == 0 );
5078 if( strlen(
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) )
5080 fct_chk(
mpi_read_string( &ctx.
DP, 16,
"9A66CF76572A71A17475794FA1C8C70D987E581E990D772BB27C77C53FF1ECBB31260E9EDAFAEBC79991807E48918EAB8C3A5F03A600F30C69511546AE788EDF53168E2D035D300EDCD5E4BF3AA2A6D603EA0A7BD11E1C1089657306DF8A64E7F1BC6B266B825C1A6C5F0FC85775F4CF7ACD63367E42EAFE46511D58AD6DFE0F" ) == 0 );
5082 if( strlen(
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) )
5084 fct_chk(
mpi_read_string( &ctx.
DQ, 16,
"844DBDD20925D9164F9A1E2F707076C261CCA8337D0241392B38AE3C12342F3AC14F8FD6DF4A1C36839662BD0D227344CD55A32AE5DBD2309A9A2B8A2C82BE6DDDDCE81D1B694775D9047AA765CA0C6E1BB8E61C8B7BE27ED711E8EE2FEAD87F3491F76A6D2262C14189EACDFD4CEFE0BF9D0A5B49857E0ED22CBEB98DC8D45B" ) == 0 );
5086 if( strlen(
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) )
5088 fct_chk(
mpi_read_string( &ctx.
QP, 16,
"4951A7B174DF972C37BADCC38457B5EDD1F078BC613E75CE25E08814E12461C7A1C189A70EB8138294298D141244C7A9DE31AB4F6D38B40B04D6353CD30F77ADBF66BBDE41C7BE463C5E30AAA3F7BAD6CEE99506DEAAFA2F335C1B1C5C88B8ABB0D0387EE0D1B4E7027F7F085A025CEDB5CCE18B88C0462F1C3C910D47C0D4AB" ) == 0 );
5098 FCT_TEST_BGN(rsa_check_public_key_1_correct)
5104 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
5106 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
5120 FCT_TEST_BGN(rsa_check_public_key_2_even_n)
5126 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a20340" ) )
5128 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a20340" ) == 0 );
5142 FCT_TEST_BGN(rsa_check_public_key_3_even_e)
5148 if( strlen(
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a20340" ) )
5150 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a20340" ) == 0 );
5152 if( strlen(
"65536" ) )
5164 FCT_TEST_BGN(rsa_check_public_key_4_n_exactly_128_bits)
5170 if( strlen(
"fedcba9876543210deadbeefcafe4321" ) )
5172 fct_chk(
mpi_read_string( &ctx.
N, 16,
"fedcba9876543210deadbeefcafe4321" ) == 0 );
5186 FCT_TEST_BGN(rsa_check_public_key_5_n_smaller_than_128_bits)
5192 if( strlen(
"7edcba9876543210deadbeefcafe4321" ) )
5194 fct_chk(
mpi_read_string( &ctx.
N, 16,
"7edcba9876543210deadbeefcafe4321" ) == 0 );
5208 FCT_TEST_BGN(rsa_check_public_key_6_n_exactly_4096_bits)
5214 if( strlen(
"00b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034fb38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
5216 fct_chk(
mpi_read_string( &ctx.
N, 16,
"00b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034fb38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
5230 FCT_TEST_BGN(rsa_check_public_key_7_n_larger_than_4096_bits)
5236 if( strlen(
"01b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034fb38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) )
5238 fct_chk(
mpi_read_string( &ctx.
N, 16,
"01b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034fb38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
5252 FCT_TEST_BGN(rsa_check_public_key_8_e_exactly_2_bits)
5258 if( strlen(
"fedcba9876543210deadbeefcafe4321" ) )
5260 fct_chk(
mpi_read_string( &ctx.
N, 16,
"fedcba9876543210deadbeefcafe4321" ) == 0 );
5274 FCT_TEST_BGN(rsa_check_public_key_8_e_exactly_1_bits)
5280 if( strlen(
"fedcba9876543210deadbeefcafe4321" ) )
5282 fct_chk(
mpi_read_string( &ctx.
N, 16,
"fedcba9876543210deadbeefcafe4321" ) == 0 );
5296 FCT_TEST_BGN(rsa_check_public_key_8_e_exactly_64_bits)
5302 if( strlen(
"fedcba9876543210deadbeefcafe4321" ) )
5304 fct_chk(
mpi_read_string( &ctx.
N, 16,
"fedcba9876543210deadbeefcafe4321" ) == 0 );
5306 if( strlen(
"00fedcba9876543213" ) )
5318 FCT_TEST_BGN(rsa_check_public_key_8_e_larger_than_64_bits)
5324 if( strlen(
"fedcba9876543210deadbeefcafe4321" ) )
5326 fct_chk(
mpi_read_string( &ctx.
N, 16,
"fedcba9876543210deadbeefcafe4321" ) == 0 );
5328 if( strlen(
"01fedcba9876543213" ) )
5340 FCT_TEST_BGN(rsa_private_correct)
5342 unsigned char message_str[1000];
5343 unsigned char output[1000];
5344 unsigned char output_str[1000];
5351 memset( message_str, 0x00, 1000 );
5352 memset( output, 0x00, 1000 );
5353 memset( output_str, 0x00, 1000 );
5356 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
5357 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
5358 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
5364 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
5372 unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
5374 fct_chk(
rsa_private( &ctx, message_str, output ) == 0 );
5379 fct_chk( strcasecmp( (
char *) output_str,
"48ce62658d82be10737bd5d3579aed15bc82617e6758ba862eeb12d049d7bacaf2f62fce8bf6e980763d1951f7f0eae3a493df9890d249314b39d00d6ef791de0daebf2c50f46e54aeb63a89113defe85de6dbe77642aae9f2eceb420f3a47a56355396e728917f17876bb829fabcaeef8bf7ef6de2ff9e84e6108ea2e52bbb62b7b288efa0a3835175b8b08fac56f7396eceb1c692d419ecb79d80aef5bc08a75d89de9f2b2d411d881c0e3ffad24c311a19029d210d3d3534f1b626f982ea322b4d1cfba476860ef20d4f672f38c371084b5301b429b747ea051a619e4430e0dac33c12f9ee41ca4d81a4f6da3e495aa8524574bdc60d290dd1f7a62e90a67" ) == 0 );
5388 FCT_TEST_BGN(rsa_private_data_larger_than_n)
5390 unsigned char message_str[1000];
5391 unsigned char output[1000];
5392 unsigned char output_str[1000];
5399 memset( message_str, 0x00, 1000 );
5400 memset( output, 0x00, 1000 );
5401 memset( output_str, 0x00, 1000 );
5404 fct_chk(
mpi_read_string( &ctx.
P, 16,
"e79a373182bfaa722eb035f772ad2a9464bd842de59432c18bbab3a7dfeae318c9b915ee487861ab665a40bd6cda560152578e8579016c929df99fea05b4d64efca1d543850bc8164b40d71ed7f3fa4105df0fb9b9ad2a18ce182c8a4f4f975bea9aa0b9a1438a27a28e97ac8330ef37383414d1bd64607d6979ac050424fd17" ) == 0 );
5405 fct_chk(
mpi_read_string( &ctx.
Q, 16,
"c6749cbb0db8c5a177672d4728a8b22392b2fc4d3b8361d5c0d5055a1b4e46d821f757c24eef2a51c561941b93b3ace7340074c058c9bb48e7e7414f42c41da4cccb5c2ba91deb30c586b7fb18af12a52995592ad139d3be429add6547e044becedaf31fa3b39421e24ee034fbf367d11f6b8f88ee483d163b431e1654ad3e89" ) == 0 );
5406 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
5412 fct_chk(
mpi_gcd( &G, &ctx.
E, &H ) == 0 );
5420 unhexify( message_str,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" );
5427 fct_chk( strcasecmp( (
char *) output_str,
"605baf947c0de49e4f6a0dfb94a43ae318d5df8ed20ba4ba5a37a73fb009c5c9e5cce8b70a25b1c7580f389f0d7092485cdfa02208b70d33482edf07a7eafebdc54862ca0e0396a5a7d09991b9753eb1ffb6091971bb5789c6b121abbcd0a3cbaa39969fa7c28146fce96c6d03272e3793e5be8f5abfa9afcbebb986d7b3050604a2af4d3a40fa6c003781a539a60259d1e84f13322da9e538a49c369b83e7286bf7d30b64bbb773506705da5d5d5483a563a1ffacc902fb75c9a751b1e83cdc7a6db0470056883f48b5a5446b43b1d180ea12ba11a6a8d93b3b32a30156b6084b7fb142998a2a0d28014b84098ece7d9d5e4d55cc342ca26f5a0167a679dec8" ) == 0 );
5436 FCT_TEST_BGN(rsa_public_correct)
5438 unsigned char message_str[1000];
5439 unsigned char output[1000];
5440 unsigned char output_str[1000];
5444 memset( message_str, 0x00, 1000 );
5445 memset( output, 0x00, 1000 );
5446 memset( output_str, 0x00, 1000 );
5449 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
5454 unhexify( message_str,
"59779fd2a39e56640c4fc1e67b60aeffcecd78aed7ad2bdfa464e93d04198d48466b8da7445f25bfa19db2844edd5c8f539cf772cc132b483169d390db28a43bc4ee0f038f6568ffc87447746cb72fefac2d6d90ee3143a915ac4688028805905a68eb8f8a96674b093c495eddd8704461eaa2b345efbb2ad6930acd8023f870" );
5456 fct_chk(
rsa_public( &ctx, message_str, output ) == 0 );
5461 fct_chk( strcasecmp( (
char *) output_str,
"1f5e927c13ff231090b0f18c8c3526428ed0f4a7561457ee5afe4d22d5d9220c34ef5b9a34d0c07f7248a1f3d57f95d10f7936b3063e40660b3a7ca3e73608b013f85a6e778ac7c60d576e9d9c0c5a79ad84ceea74e4722eb3553bdb0c2d7783dac050520cb27ca73478b509873cb0dcbd1d51dd8fccb96c29ad314f36d67cc57835d92d94defa0399feb095fd41b9f0b2be10f6041079ed4290040449f8a79aba50b0a1f8cf83c9fb8772b0686ec1b29cb1814bb06f9c024857db54d395a8da9a2c6f9f53b94bec612a0cb306a3eaa9fc80992e85d9d232e37a50cabe48c9343f039601ff7d95d60025e582aec475d031888310e8ec3833b394a5cf0599101e" ) == 0 );
5469 FCT_TEST_BGN(rsa_public_data_larger_than_n)
5471 unsigned char message_str[1000];
5472 unsigned char output[1000];
5473 unsigned char output_str[1000];
5477 memset( message_str, 0x00, 1000 );
5478 memset( output, 0x00, 1000 );
5479 memset( output_str, 0x00, 1000 );
5482 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
5487 unhexify( message_str,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" );
5494 fct_chk( strcasecmp( (
char *) output_str,
"605baf947c0de49e4f6a0dfb94a43ae318d5df8ed20ba4ba5a37a73fb009c5c9e5cce8b70a25b1c7580f389f0d7092485cdfa02208b70d33482edf07a7eafebdc54862ca0e0396a5a7d09991b9753eb1ffb6091971bb5789c6b121abbcd0a3cbaa39969fa7c28146fce96c6d03272e3793e5be8f5abfa9afcbebb986d7b3050604a2af4d3a40fa6c003781a539a60259d1e84f13322da9e538a49c369b83e7286bf7d30b64bbb773506705da5d5d5483a563a1ffacc902fb75c9a751b1e83cdc7a6db0470056883f48b5a5446b43b1d180ea12ba11a6a8d93b3b32a30156b6084b7fb142998a2a0d28014b84098ece7d9d5e4d55cc342ca26f5a0167a679dec8" ) == 0 );
5501 #ifdef POLARSSL_ENTROPY_C
5502 #ifdef POLARSSL_CTR_DRBG_C
5504 FCT_TEST_BGN(rsa_generate_key)
5509 const char *pers =
"test_suite_rsa";
5513 (
const unsigned char *) pers, strlen( pers ) ) == 0 );
5529 #ifdef POLARSSL_ENTROPY_C
5530 #ifdef POLARSSL_CTR_DRBG_C
5532 FCT_TEST_BGN(rsa_generate_key_number_of_bits_too_small)
5537 const char *pers =
"test_suite_rsa";
5541 (
const unsigned char *) pers, strlen( pers ) ) == 0 );
5557 #ifdef POLARSSL_ENTROPY_C
5558 #ifdef POLARSSL_CTR_DRBG_C
5560 FCT_TEST_BGN(rsa_generate_key_exponent_too_small)
5565 const char *pers =
"test_suite_rsa";
5569 (
const unsigned char *) pers, strlen( pers ) ) == 0 );
5585 #ifdef POLARSSL_ENTROPY_C
5586 #ifdef POLARSSL_CTR_DRBG_C
5588 FCT_TEST_BGN(rsa_generate_key)
5593 const char *pers =
"test_suite_rsa";
5597 (
const unsigned char *) pers, strlen( pers ) ) == 0 );
5614 FCT_TEST_BGN(rsa_pkcs1_encrypt_bad_rng)
5616 unsigned char message_str[1000];
5617 unsigned char output[1000];
5618 unsigned char output_str[1000];
5623 memset( message_str, 0x00, 1000 );
5624 memset( output, 0x00, 1000 );
5625 memset( output_str, 0x00, 1000 );
5628 fct_chk(
mpi_read_string( &ctx.
N, 16,
"b38ac65c8141f7f5c96e14470e851936a67bf94cc6821a39ac12c05f7c0b06d9e6ddba2224703b02e25f31452f9c4a8417b62675fdc6df46b94813bc7b9769a892c482b830bfe0ad42e46668ace68903617faf6681f4babf1cc8e4b0420d3c7f61dc45434c6b54e2c3ee0fc07908509d79c9826e673bf8363255adb0add2401039a7bcd1b4ecf0fbe6ec8369d2da486eec59559dd1d54c9b24190965eafbdab203b35255765261cd0909acf93c3b8b8428cbb448de4715d1b813d0c94829c229543d391ce0adab5351f97a3810c1f73d7b1458b97daed4209c50e16d064d2d5bfda8c23893d755222793146d0a78c3d64f35549141486c3b0961a7b4c1a2034f" ) == 0 );
5633 msg_len =
unhexify( message_str,
"4E636AF98E40F3ADCFCCB698F4E80B9F" );
5640 fct_chk( strcasecmp( (
char *) output_str,
"a42eda41e56235e666e7faaa77100197f657288a1bf183e4820f0c37ce2c456b960278d6003e0bbcd4be4a969f8e8fd9231e1f492414f00ed09844994c86ec32db7cde3bec7f0c3dbf6ae55baeb2712fa609f5fc3207a824eb3dace31849cd6a6084318523912bccb84cf42e3c6d6d1685131d69bb545acec827d2b0dfdd5568b7dcc4f5a11d6916583fefa689d367f8c9e1d95dcd2240895a9470b0c1730f97cd6e8546860bd254801769f54be96e16362ddcbf34d56035028890199e0f48db38642cb66a4181e028a6443a404fea284ce02b4614b683367d40874e505611d23142d49f06feea831d52d347b13610b413c4efc43a6de9f0b08d2a951dc503b6" ) == 0 );
5647 #ifdef POLARSSL_SELF_TEST
5649 FCT_TEST_BGN(rsa_selftest)