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++ ) {