Add repro instructions for LMS test data
Add more interop tests, and use real data for the negative tests
Signed-off-by: Raef Coles <raef.coles@arm.com>
diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function
index 9c966cf..f69ca9e 100644
--- a/tests/suites/test_suite_lms.function
+++ b/tests/suites/test_suite_lms.function
@@ -97,35 +97,35 @@
/* Test negative cases if the input data is valid */
if( expected_rc == 0 )
{
- /* Altering first message byte must cause verification failure */
- msg->x[0] ^= 1;
- TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ),
- MBEDTLS_ERR_LMS_VERIFY_FAILED);
- msg->x[0] ^= 1;
+ if( msg->len >= 1 )
+ {
+ /* Altering first message byte must cause verification failure */
+ msg->x[0] ^= 1;
+ TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ),
+ MBEDTLS_ERR_LMS_VERIFY_FAILED);
+ msg->x[0] ^= 1;
- /* Altering last message byte must cause verification failure */
- msg->x[msg->len - 1] ^= 1;
- TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ),
- MBEDTLS_ERR_LMS_VERIFY_FAILED);
- msg->x[msg->len - 1] ^= 1;
+ /* Altering last message byte must cause verification failure */
+ msg->x[msg->len - 1] ^= 1;
+ TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ),
+ MBEDTLS_ERR_LMS_VERIFY_FAILED);
+ msg->x[msg->len - 1] ^= 1;
+ }
- /* Altering first signature byte must cause verification failure */
- sig->x[0] ^= 1;
- TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ),
- MBEDTLS_ERR_LMS_VERIFY_FAILED);
- sig->x[0] ^= 1;
+ if( sig->len >= 1 )
+ {
+ /* Altering first signature byte must cause verification failure */
+ sig->x[0] ^= 1;
+ TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ),
+ MBEDTLS_ERR_LMS_VERIFY_FAILED);
+ sig->x[0] ^= 1;
- /* Altering first signature byte must cause verification failure */
- sig->x[0] ^= 1;
- TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ),
- MBEDTLS_ERR_LMS_VERIFY_FAILED);
- sig->x[0] ^= 1;
-
- /* Altering last signature byte must cause verification failure */
- sig->x[sig->len - 1] ^= 1;
- TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ),
- MBEDTLS_ERR_LMS_VERIFY_FAILED);
- sig->x[sig->len - 1] ^= 1;
+ /* Altering last signature byte must cause verification failure */
+ sig->x[sig->len - 1] ^= 1;
+ TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ),
+ MBEDTLS_ERR_LMS_VERIFY_FAILED);
+ sig->x[sig->len - 1] ^= 1;
+ }
/* Signatures of all sizes must not verify, whether shorter or longer */
for( size = 0; size < sig->len; size++ ) {