Add modex tests for zero padded operands, as in ASN encoding.

Signed-off-by: Gowrishankar Muthukrishnan <gmuthukri...@marvell.com>
---
 app/test/test_cryptodev_asym.c             | 16 +++++
 app/test/test_cryptodev_mod_test_vectors.h | 71 ++++++++++++++++++++++
 2 files changed, 87 insertions(+)

diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c
index 32fb198f96..26afa082af 100644
--- a/app/test/test_cryptodev_asym.c
+++ b/app/test/test_cryptodev_asym.c
@@ -3518,6 +3518,14 @@ static struct unit_test_suite 
cryptodev_openssl_asym_testsuite  = {
                        "Modex test",
                        ut_setup_asym, ut_teardown_asym,
                        modular_exponentiation, &modex_test_cases[0]),
+               TEST_CASE_NAMED_WITH_DATA(
+                       "Modex test for zero padding",
+                       ut_setup_asym, ut_teardown_asym,
+                       modular_exponentiation, &modex_test_cases[1]),
+               TEST_CASE_NAMED_WITH_DATA(
+                       "Modex test for zero padding (2)",
+                       ut_setup_asym, ut_teardown_asym,
+                       modular_exponentiation, &modex_test_cases[2]),
                TEST_CASE_NAMED_WITH_DATA(
                        "Modex Group 5 test",
                        ut_setup_asym, ut_teardown_asym,
@@ -3596,6 +3604,14 @@ static struct unit_test_suite 
cryptodev_octeontx_asym_testsuite  = {
                        "Modex test",
                        ut_setup_asym, ut_teardown_asym,
                        modular_exponentiation, &modex_test_cases[0]),
+               TEST_CASE_NAMED_WITH_DATA(
+                       "Modex test for zero padding",
+                       ut_setup_asym, ut_teardown_asym,
+                       modular_exponentiation, &modex_test_cases[1]),
+               TEST_CASE_NAMED_WITH_DATA(
+                       "Modex test for zero padding (2)",
+                       ut_setup_asym, ut_teardown_asym,
+                       modular_exponentiation, &modex_test_cases[2]),
                TEST_CASE_NAMED_WITH_DATA(
                        "Modex Group 5 test",
                        ut_setup_asym, ut_teardown_asym,
diff --git a/app/test/test_cryptodev_mod_test_vectors.h 
b/app/test/test_cryptodev_mod_test_vectors.h
index e7b930b765..9a7f3e710b 100644
--- a/app/test/test_cryptodev_mod_test_vectors.h
+++ b/app/test/test_cryptodev_mod_test_vectors.h
@@ -327,6 +327,77 @@ modex_test_data modex_test_cases[] = {
                },
                .len = 129
        }
+},
+{
+       .description = "Modular Exponentiation (mod=20, base=20, exp=12, 
res=18)",
+       .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
+       .base = {
+               .data = {
+                       0x00, 0x00, 0x45, 0xCA, 0x2C, 0x5C, 0x3A, 0x90,
+                       0x00, 0xC4, 0xD7, 0x47, 0xA8, 0x2B, 0x12, 0x07,
+                       0xBD, 0x1F, 0xD7, 0x81
+               },
+               .len = 20
+       },
+       .exponent = {
+               .data = {
+                       0x00, 0x00, 0x00, 0x75, 0x74, 0x19, 0x19, 0x69,
+                       0xBF, 0x15, 0x2A, 0xAC
+               },
+               .len = 12
+       },
+       .reminder = {
+               .data = {
+                       0x5c, 0x94, 0x8f, 0x00, 0x79, 0xe3, 0xe1, 0x0b,
+                       0x3f, 0x3e, 0x36, 0x75, 0xed, 0x1d, 0x84, 0xc6,
+                       0x36, 0x9e
+               },
+               .len = 18
+       },
+       .modulus = {
+               .data = {
+                       0x00, 0x00, 0x99, 0x28, 0x09, 0x8A, 0xE9, 0x89,
+                       0xBB, 0x81, 0x3B, 0x07, 0x0E, 0x31, 0x00, 0x7F,
+                       0x79, 0x97, 0xED, 0x35
+               },
+               .len = 20
+       }
+},
+{
+       .description = "Modular Exponentiation (mod=32, base=20, exp=12, 
res=17)",
+       .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
+       .base = {
+               .data = {
+                       0x01, 0x31, 0x72, 0xFB, 0x81, 0x9D, 0x81, 0x7A,
+                       0x91, 0xDC, 0xE6, 0x6C, 0x2D, 0x55, 0xD9, 0x25,
+                       0x7A, 0xB2, 0xFF, 0xFF
+               },
+               .len = 20
+       },
+       .exponent = {
+               .data = {
+                       0x00, 0x00, 0x00, 0x02, 0x36, 0x38, 0x31, 0x47,
+                       0x3C, 0x07, 0x36, 0x21
+               },
+               .len = 12
+       },
+       .reminder = {
+               .data = {
+                       0x02, 0x99, 0x2F, 0xE3, 0x00, 0x9F, 0xF0, 0x9E,
+                       0x65, 0x3C, 0x0B, 0x4A, 0xD3, 0x1B, 0x7C, 0x7F,
+                       0x1C
+               },
+               .len = 17
+       },
+       .modulus = {
+               .data = {
+                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+                       0xCE, 0xF0, 0x7C, 0x13, 0x26, 0x90, 0xAF, 0x49,
+                       0x06, 0x4D, 0xA4, 0x5C, 0xB2, 0x43, 0x13, 0x25,
+               },
+               .len = 32
+       }
 }
 };
 
-- 
2.25.1

Reply via email to