From 6282acaec22062195fb222589d68afed3bcb98e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Sun, 10 Feb 2013 11:15:11 +0100 Subject: [PATCH] Add basic tests for ecp_tls_*_point --- tests/suites/test_suite_ecp.data | 6 ++ tests/suites/test_suite_ecp.function | 86 +++++++++++++++++++++------- 2 files changed, 70 insertions(+), 22 deletions(-) diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data index 9dec01bb10..c2524e3b14 100644 --- a/tests/suites/test_suite_ecp.data +++ b/tests/suites/test_suite_ecp.data @@ -181,6 +181,12 @@ ecp_read_binary:SECP192R1:"0548d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc99336ce ECP read binary #6 (non-zero, OK) ecp_read_binary:SECP192R1:"0448d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc99336ceed4d7cba482e288669ee1b6415626d6f34d28501e060c":"48d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc9933":"6ceed4d7cba482e288669ee1b6415626d6f34d28501e060c":"01":0 +ECP tls write-read point #1 +ecp_tls_write_read_point:SECP192R1 + +ECP tls write-read point #2 +ecp_tls_write_read_point:SECP521R1 + ECP read params #1 (record too short) ecp_read_params:"0313":POLARSSL_ERR_ECP_BAD_INPUT_DATA:0 diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 55354ad8bf..d07531c979 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -293,6 +293,70 @@ ecp_read_binary:id:input:x:y:z:ret } END_CASE +BEGIN_CASE +ecp_tls_write_read_point:id +{ + ecp_group grp; + ecp_point pt; + unsigned char buf[256]; + + ecp_group_init( &grp ); + ecp_point_init( &pt ); + memset( buf, 0x00, sizeof( buf ) ); + + TEST_ASSERT( ecp_use_known_dp( &grp, POLARSSL_ECP_DP_{id} ) == 0 ); + + TEST_ASSERT( ecp_tls_write_point( &grp, &grp.G, + POLARSSL_ECP_PF_COMPRESSED, buf, 256 ) == 0 ); + TEST_ASSERT( ecp_tls_read_point( &grp, &pt, buf, 256 ) + == POLARSSL_ERR_ECP_BAD_INPUT_DATA ); + + TEST_ASSERT( ecp_tls_write_point( &grp, &grp.G, + POLARSSL_ECP_PF_UNCOMPRESSED, buf, 256 ) == 0 ); + TEST_ASSERT( ecp_tls_read_point( &grp, &pt, buf, 256 ) == 0 ); + TEST_ASSERT( mpi_cmp_mpi( &grp.G.X, &pt.X ) == 0 ); + TEST_ASSERT( mpi_cmp_mpi( &grp.G.Y, &pt.Y ) == 0 ); + TEST_ASSERT( mpi_cmp_mpi( &grp.G.Z, &pt.Z ) == 0 ); + + TEST_ASSERT( ecp_set_zero( &pt ) == 0 ); + TEST_ASSERT( ecp_tls_write_point( &grp, &pt, + POLARSSL_ECP_PF_COMPRESSED, buf, 256 ) == 0 ); + TEST_ASSERT( ecp_tls_read_point( &grp, &pt, buf, 256 ) == 0 ); + TEST_ASSERT( ecp_is_zero( &pt ) ); + + TEST_ASSERT( ecp_set_zero( &pt ) == 0 ); + TEST_ASSERT( ecp_tls_write_point( &grp, &pt, + POLARSSL_ECP_PF_UNCOMPRESSED, buf, 256 ) == 0 ); + TEST_ASSERT( ecp_tls_read_point( &grp, &pt, buf, 256 ) == 0 ); + TEST_ASSERT( ecp_is_zero( &pt ) ); + + ecp_group_free( &grp ); + ecp_point_free( &pt ); +} +END_CASE + +BEGIN_CASE +ecp_read_params:record:ret:bits +{ + ecp_group grp; + unsigned char buf[10]; + int len, ret; + + ecp_group_init( &grp ); + memset( buf, 0x00, sizeof( buf ) ); + + len = unhexify( buf, {record} ); + + ret = ecp_tls_read_group( &grp, buf, len ); + + TEST_ASSERT( ret == {ret} ); + if( ret == 0) + TEST_ASSERT( mpi_msb( &grp.P ) == {bits} ); + + ecp_group_free( &grp ); +} +END_CASE + BEGIN_CASE ecp_gen_keypair:id { @@ -320,28 +384,6 @@ ecp_gen_keypair:id } END_CASE -BEGIN_CASE -ecp_read_params:record:ret:bits -{ - ecp_group grp; - unsigned char buf[10]; - int len, ret; - - ecp_group_init( &grp ); - memset( buf, 0x00, sizeof( buf ) ); - - len = unhexify( buf, {record} ); - - ret = ecp_tls_read_group( &grp, buf, len ); - - TEST_ASSERT( ret == {ret} ); - if( ret == 0) - TEST_ASSERT( mpi_msb( &grp.P ) == {bits} ); - - ecp_group_free( &grp ); -} -END_CASE - BEGIN_CASE ecp_selftest: {