From d6b462ab050a8093d1392eed97061954f0e68adc Mon Sep 17 00:00:00 2001 From: Mohit Rajbhar Date: Sun, 26 Apr 2026 01:36:17 +0530 Subject: [PATCH] Refactor Junit5 for BaseTestSHA3_384KAT and BaseTestSHA3_512KAT tests This change consolidates the tests previously associated with BaseTestSHA3_384KAT into the parameterized TestSHA3_384KAT test class, and the tests from BaseTestSHA3_512KAT into the parameterized TestSHA3_512KAT test class. Signed-off-by: Mohit Rajbhar --- .../ibm/jceplus/junit/TestMultithread.java | 2 - .../jceplus/junit/TestMultithreadFIPS.java | 2 - .../jceplus/junit/openjceplus/TestAll.java | 2 - .../junit/openjceplus/TestSHA3_384.java | 24 ---- .../junit/openjceplus/TestSHA3_512.java | 24 ---- .../openjceplus/multithread/TestSHA3_384.java | 25 ---- .../openjceplus/multithread/TestSHA3_512.java | 25 ---- .../junit/openjceplusfips/TestAll.java | 2 - .../junit/openjceplusfips/TestSHA3_384.java | 24 ---- .../junit/openjceplusfips/TestSHA3_512.java | 24 ---- .../multithread/TestSHA3_384.java | 25 ---- .../multithread/TestSHA3_512.java | 25 ---- .../junit/tests/BaseTestMessageDigest.java | 133 ++++++++++++++++++ .../TestSHA3_384KAT.java} | 28 +++- .../TestSHA3_512KAT.java} | 28 +++- 15 files changed, 177 insertions(+), 216 deletions(-) delete mode 100644 src/test/java/ibm/jceplus/junit/openjceplus/TestSHA3_384.java delete mode 100644 src/test/java/ibm/jceplus/junit/openjceplus/TestSHA3_512.java delete mode 100644 src/test/java/ibm/jceplus/junit/openjceplus/multithread/TestSHA3_384.java delete mode 100644 src/test/java/ibm/jceplus/junit/openjceplus/multithread/TestSHA3_512.java delete mode 100644 src/test/java/ibm/jceplus/junit/openjceplusfips/TestSHA3_384.java delete mode 100644 src/test/java/ibm/jceplus/junit/openjceplusfips/TestSHA3_512.java delete mode 100644 src/test/java/ibm/jceplus/junit/openjceplusfips/multithread/TestSHA3_384.java delete mode 100644 src/test/java/ibm/jceplus/junit/openjceplusfips/multithread/TestSHA3_512.java create mode 100644 src/test/java/ibm/jceplus/junit/tests/BaseTestMessageDigest.java rename src/test/java/ibm/jceplus/junit/{base/BaseTestSHA3_384KAT.java => tests/TestSHA3_384KAT.java} (99%) rename src/test/java/ibm/jceplus/junit/{base/BaseTestSHA3_512KAT.java => tests/TestSHA3_512KAT.java} (99%) diff --git a/src/test/java/ibm/jceplus/junit/TestMultithread.java b/src/test/java/ibm/jceplus/junit/TestMultithread.java index aa3da9cc8..1656d9a4e 100644 --- a/src/test/java/ibm/jceplus/junit/TestMultithread.java +++ b/src/test/java/ibm/jceplus/junit/TestMultithread.java @@ -55,8 +55,6 @@ public class TestMultithread { "ibm.jceplus.junit.openjceplus.multithread.TestSHA256Clone_SharedMD", "ibm.jceplus.junit.openjceplus.multithread.TestSHA3_224", "ibm.jceplus.junit.openjceplus.multithread.TestSHA3_256", - "ibm.jceplus.junit.openjceplus.multithread.TestSHA3_384", - "ibm.jceplus.junit.openjceplus.multithread.TestSHA3_512", "ibm.jceplus.junit.openjceplus.multithread.TestSHA512", "ibm.jceplus.junit.openjceplus.multithread.TestSHA512_224", "ibm.jceplus.junit.openjceplus.multithread.TestSHA512_256", diff --git a/src/test/java/ibm/jceplus/junit/TestMultithreadFIPS.java b/src/test/java/ibm/jceplus/junit/TestMultithreadFIPS.java index 4d2cad410..a38e3390d 100644 --- a/src/test/java/ibm/jceplus/junit/TestMultithreadFIPS.java +++ b/src/test/java/ibm/jceplus/junit/TestMultithreadFIPS.java @@ -53,8 +53,6 @@ public class TestMultithreadFIPS { "ibm.jceplus.junit.openjceplusfips.multithread.TestSHA256Clone_SharedMD", "ibm.jceplus.junit.openjceplusfips.multithread.TestSHA3_224", "ibm.jceplus.junit.openjceplusfips.multithread.TestSHA3_256", - "ibm.jceplus.junit.openjceplusfips.multithread.TestSHA3_384", - "ibm.jceplus.junit.openjceplusfips.multithread.TestSHA3_512", "ibm.jceplus.junit.openjceplusfips.multithread.TestSHA512", "ibm.jceplus.junit.openjceplusfips.multithread.TestSHA512_224", "ibm.jceplus.junit.openjceplusfips.multithread.TestSHA512_256", diff --git a/src/test/java/ibm/jceplus/junit/openjceplus/TestAll.java b/src/test/java/ibm/jceplus/junit/openjceplus/TestAll.java index e4841ad10..f896361a7 100644 --- a/src/test/java/ibm/jceplus/junit/openjceplus/TestAll.java +++ b/src/test/java/ibm/jceplus/junit/openjceplus/TestAll.java @@ -101,8 +101,6 @@ TestSHA256.class, TestSHA3_224.class, TestSHA3_256.class, - TestSHA3_384.class, - TestSHA3_512.class, TestSHA384.class, TestSHA512_224.class, TestSHA512_256.class, diff --git a/src/test/java/ibm/jceplus/junit/openjceplus/TestSHA3_384.java b/src/test/java/ibm/jceplus/junit/openjceplus/TestSHA3_384.java deleted file mode 100644 index be358b73c..000000000 --- a/src/test/java/ibm/jceplus/junit/openjceplus/TestSHA3_384.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright IBM Corp. 2023, 2024 - * - * This code is free software; you can redistribute it and/or modify it - * under the terms provided by IBM in the LICENSE file that accompanied - * this code, including the "Classpath" Exception described therein. - */ - -package ibm.jceplus.junit.openjceplus; - -import ibm.jceplus.junit.base.BaseTestSHA3_384KAT; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.api.TestInstance.Lifecycle; - -@TestInstance(Lifecycle.PER_CLASS) -public class TestSHA3_384 extends BaseTestSHA3_384KAT { - - @BeforeAll - public void beforeAll() { - Utils.loadProviderTestSuite(); - setProviderName(Utils.TEST_SUITE_PROVIDER_NAME); - } -} diff --git a/src/test/java/ibm/jceplus/junit/openjceplus/TestSHA3_512.java b/src/test/java/ibm/jceplus/junit/openjceplus/TestSHA3_512.java deleted file mode 100644 index 995511970..000000000 --- a/src/test/java/ibm/jceplus/junit/openjceplus/TestSHA3_512.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright IBM Corp. 2023, 2024 - * - * This code is free software; you can redistribute it and/or modify it - * under the terms provided by IBM in the LICENSE file that accompanied - * this code, including the "Classpath" Exception described therein. - */ - -package ibm.jceplus.junit.openjceplus; - -import ibm.jceplus.junit.base.BaseTestSHA3_512KAT; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.api.TestInstance.Lifecycle; - -@TestInstance(Lifecycle.PER_CLASS) -public class TestSHA3_512 extends BaseTestSHA3_512KAT { - - @BeforeAll - public void beforeAll() { - Utils.loadProviderTestSuite(); - setProviderName(Utils.TEST_SUITE_PROVIDER_NAME); - } -} diff --git a/src/test/java/ibm/jceplus/junit/openjceplus/multithread/TestSHA3_384.java b/src/test/java/ibm/jceplus/junit/openjceplus/multithread/TestSHA3_384.java deleted file mode 100644 index b6d44d4d8..000000000 --- a/src/test/java/ibm/jceplus/junit/openjceplus/multithread/TestSHA3_384.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright IBM Corp. 2023, 2024 - * - * This code is free software; you can redistribute it and/or modify it - * under the terms provided by IBM in the LICENSE file that accompanied - * this code, including the "Classpath" Exception described therein. - */ - -package ibm.jceplus.junit.openjceplus.multithread; - -import ibm.jceplus.junit.base.BaseTestSHA3_384KAT; -import ibm.jceplus.junit.openjceplus.Utils; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.api.TestInstance.Lifecycle; - -@TestInstance(Lifecycle.PER_CLASS) -public class TestSHA3_384 extends BaseTestSHA3_384KAT { - - @BeforeAll - public void beforeAll() { - Utils.loadProviderTestSuite(); - setProviderName(Utils.TEST_SUITE_PROVIDER_NAME); - } -} diff --git a/src/test/java/ibm/jceplus/junit/openjceplus/multithread/TestSHA3_512.java b/src/test/java/ibm/jceplus/junit/openjceplus/multithread/TestSHA3_512.java deleted file mode 100644 index 4c44bf378..000000000 --- a/src/test/java/ibm/jceplus/junit/openjceplus/multithread/TestSHA3_512.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright IBM Corp. 2023, 2024 - * - * This code is free software; you can redistribute it and/or modify it - * under the terms provided by IBM in the LICENSE file that accompanied - * this code, including the "Classpath" Exception described therein. - */ - -package ibm.jceplus.junit.openjceplus.multithread; - -import ibm.jceplus.junit.base.BaseTestSHA3_512KAT; -import ibm.jceplus.junit.openjceplus.Utils; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.api.TestInstance.Lifecycle; - -@TestInstance(Lifecycle.PER_CLASS) -public class TestSHA3_512 extends BaseTestSHA3_512KAT { - - @BeforeAll - public void beforeAll() { - Utils.loadProviderTestSuite(); - setProviderName(Utils.TEST_SUITE_PROVIDER_NAME); - } -} diff --git a/src/test/java/ibm/jceplus/junit/openjceplusfips/TestAll.java b/src/test/java/ibm/jceplus/junit/openjceplusfips/TestAll.java index e059eb702..beb621026 100644 --- a/src/test/java/ibm/jceplus/junit/openjceplusfips/TestAll.java +++ b/src/test/java/ibm/jceplus/junit/openjceplusfips/TestAll.java @@ -77,8 +77,6 @@ TestSHA256.class, TestSHA3_224.class, TestSHA3_256.class, - TestSHA3_384.class, - TestSHA3_512.class, TestSHA384.class, TestSHA512.class }) diff --git a/src/test/java/ibm/jceplus/junit/openjceplusfips/TestSHA3_384.java b/src/test/java/ibm/jceplus/junit/openjceplusfips/TestSHA3_384.java deleted file mode 100644 index 8cd002c5d..000000000 --- a/src/test/java/ibm/jceplus/junit/openjceplusfips/TestSHA3_384.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright IBM Corp. 2023, 2024 - * - * This code is free software; you can redistribute it and/or modify it - * under the terms provided by IBM in the LICENSE file that accompanied - * this code, including the "Classpath" Exception described therein. - */ - -package ibm.jceplus.junit.openjceplusfips; - -import ibm.jceplus.junit.base.BaseTestSHA3_384KAT; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.api.TestInstance.Lifecycle; - -@TestInstance(Lifecycle.PER_CLASS) -public class TestSHA3_384 extends BaseTestSHA3_384KAT { - - @BeforeAll - public void beforeAll() { - Utils.loadProviderTestSuite(); - setProviderName(Utils.TEST_SUITE_PROVIDER_NAME); - } -} diff --git a/src/test/java/ibm/jceplus/junit/openjceplusfips/TestSHA3_512.java b/src/test/java/ibm/jceplus/junit/openjceplusfips/TestSHA3_512.java deleted file mode 100644 index 010339757..000000000 --- a/src/test/java/ibm/jceplus/junit/openjceplusfips/TestSHA3_512.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright IBM Corp. 2023, 2024 - * - * This code is free software; you can redistribute it and/or modify it - * under the terms provided by IBM in the LICENSE file that accompanied - * this code, including the "Classpath" Exception described therein. - */ - -package ibm.jceplus.junit.openjceplusfips; - -import ibm.jceplus.junit.base.BaseTestSHA3_512KAT; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.api.TestInstance.Lifecycle; - -@TestInstance(Lifecycle.PER_CLASS) -public class TestSHA3_512 extends BaseTestSHA3_512KAT { - - @BeforeAll - public void beforeAll() { - Utils.loadProviderTestSuite(); - setProviderName(Utils.TEST_SUITE_PROVIDER_NAME); - } -} diff --git a/src/test/java/ibm/jceplus/junit/openjceplusfips/multithread/TestSHA3_384.java b/src/test/java/ibm/jceplus/junit/openjceplusfips/multithread/TestSHA3_384.java deleted file mode 100644 index 91505b691..000000000 --- a/src/test/java/ibm/jceplus/junit/openjceplusfips/multithread/TestSHA3_384.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright IBM Corp. 2023, 2024 - * - * This code is free software; you can redistribute it and/or modify it - * under the terms provided by IBM in the LICENSE file that accompanied - * this code, including the "Classpath" Exception described therein. - */ - -package ibm.jceplus.junit.openjceplusfips.multithread; - -import ibm.jceplus.junit.base.BaseTestSHA3_384KAT; -import ibm.jceplus.junit.openjceplusfips.Utils; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.api.TestInstance.Lifecycle; - -@TestInstance(Lifecycle.PER_CLASS) -public class TestSHA3_384 extends BaseTestSHA3_384KAT { - - @BeforeAll - public void beforeAll() { - Utils.loadProviderTestSuite(); - setProviderName(Utils.TEST_SUITE_PROVIDER_NAME); - } -} diff --git a/src/test/java/ibm/jceplus/junit/openjceplusfips/multithread/TestSHA3_512.java b/src/test/java/ibm/jceplus/junit/openjceplusfips/multithread/TestSHA3_512.java deleted file mode 100644 index 2dd18b742..000000000 --- a/src/test/java/ibm/jceplus/junit/openjceplusfips/multithread/TestSHA3_512.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright IBM Corp. 2023, 2024 - * - * This code is free software; you can redistribute it and/or modify it - * under the terms provided by IBM in the LICENSE file that accompanied - * this code, including the "Classpath" Exception described therein. - */ - -package ibm.jceplus.junit.openjceplusfips.multithread; - -import ibm.jceplus.junit.base.BaseTestSHA3_512KAT; -import ibm.jceplus.junit.openjceplusfips.Utils; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.api.TestInstance.Lifecycle; - -@TestInstance(Lifecycle.PER_CLASS) -public class TestSHA3_512 extends BaseTestSHA3_512KAT { - - @BeforeAll - public void beforeAll() { - Utils.loadProviderTestSuite(); - setProviderName(Utils.TEST_SUITE_PROVIDER_NAME); - } -} diff --git a/src/test/java/ibm/jceplus/junit/tests/BaseTestMessageDigest.java b/src/test/java/ibm/jceplus/junit/tests/BaseTestMessageDigest.java new file mode 100644 index 000000000..735032a89 --- /dev/null +++ b/src/test/java/ibm/jceplus/junit/tests/BaseTestMessageDigest.java @@ -0,0 +1,133 @@ +/* + * Copyright IBM Corp. 2024, 2026 + * + * This code is free software; you can redistribute it and/or modify it + * under the terms provided by IBM in the LICENSE file that accompanied + * this code, including the "Classpath" Exception described therein. + */ + +package ibm.jceplus.junit.tests; + +import java.security.MessageDigest; +import java.util.Arrays; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.fail; + +abstract public class BaseTestMessageDigest extends BaseTest { + + final byte[] input_1 = {(byte) 0x61, (byte) 0x61, (byte) 0x61, (byte) 0x61, (byte) 0x61, + (byte) 0x61, (byte) 0x61, (byte) 0x61, (byte) 0x61, (byte) 0x61}; + + final byte[] input_2 = {(byte) 0x61, (byte) 0x62, (byte) 0x63}; + + final byte[] input_3 = {(byte) 0x61, (byte) 0x62, (byte) 0x63, (byte) 0x64, (byte) 0x62, + (byte) 0x63, (byte) 0x64, (byte) 0x65, (byte) 0x63, (byte) 0x64, (byte) 0x65, + (byte) 0x66, (byte) 0x64, (byte) 0x65, (byte) 0x66, (byte) 0x67, (byte) 0x65, + (byte) 0x66, (byte) 0x67, (byte) 0x68, (byte) 0x66, (byte) 0x67, (byte) 0x68, + (byte) 0x69, (byte) 0x67, (byte) 0x68, (byte) 0x69, (byte) 0x6a, (byte) 0x68, + (byte) 0x69, (byte) 0x6a, (byte) 0x6b, (byte) 0x69, (byte) 0x6a, (byte) 0x6b, + (byte) 0x6c, (byte) 0x6a, (byte) 0x6b, (byte) 0x6c, (byte) 0x6d, (byte) 0x6b, + (byte) 0x6c, (byte) 0x6d, (byte) 0x6e, (byte) 0x6c, (byte) 0x6d, (byte) 0x6e, + (byte) 0x6f, (byte) 0x6d, (byte) 0x6e, (byte) 0x6f, (byte) 0x70, (byte) 0x6e, + (byte) 0x6f, (byte) 0x70, (byte) 0x71}; + + @Test + public void testUpdateCloneSameUpdate() throws Exception { + MessageDigest md = MessageDigest.getInstance(getAlgorithm(), getProviderName()); + + md.update(input_1); + + MessageDigest mdCopy = (MessageDigest) md.clone(); + + byte[] digest1 = md.digest(input_2); + byte[] digest2 = mdCopy.digest(input_2); + + assertArrayEquals(digest2, digest1, "Digest of original did not match clone's digest"); + } + + @Test + public void testUpdateCloneDifferentUpdate() throws Exception { + MessageDigest md = MessageDigest.getInstance(getAlgorithm(), getProviderName()); + + md.update(input_1); + + MessageDigest mdCopy = (MessageDigest) md.clone(); + + byte[] digest1 = md.digest(input_2); + byte[] digest2 = mdCopy.digest(input_3); + + assertFalse(Arrays.equals(digest1, digest2), "Digest of original matches clone's digest when it shouldn't"); + } + + @Test + public void testCloneSameUpdate() throws Exception { + MessageDigest md = MessageDigest.getInstance(getAlgorithm(), getProviderName()); + + MessageDigest mdCopy = (MessageDigest) md.clone(); + + byte[] digest1 = md.digest(input_2); + byte[] digest2 = mdCopy.digest(input_2); + + assertArrayEquals(digest2, digest1, "Digest of original did not match clone's digest"); + } + + @Test + public void testCloneDifferentUpdate() throws Exception { + MessageDigest md = MessageDigest.getInstance(getAlgorithm(), getProviderName()); + + MessageDigest mdCopy = (MessageDigest) md.clone(); + + byte[] digest1 = md.digest(input_2); + byte[] digest2 = mdCopy.digest(input_3); + + assertFalse(Arrays.equals(digest1, digest2), "Digest of original matches clone's digest when it shouldn't"); + } + + /** + * Ensure a ArrayIndexOutOfBoundsException is thrown with negative offset parameter. + */ + @Test + public void tesNegativeOffset() throws Exception { + MessageDigest md = MessageDigest.getInstance(getAlgorithm(), getProviderName()); + byte[] bytes = new byte[] {1, 1, 1, 1, 1}; + try { + md.update(bytes, -1, 1); + fail("Expected exception not thrown."); + } catch (ArrayIndexOutOfBoundsException e) { + assertEquals("Range out of bounds for buffer of length 5 using offset: -1, input length: 1", e.getMessage()); + } + } + + /** + * Ensure a ArrayIndexOutOfBoundsException is thrown with negative length parameter. + */ + @Test + public void testNegativeLength() throws Exception { + MessageDigest md = MessageDigest.getInstance(getAlgorithm(), getProviderName()); + byte[] bytes = new byte[] {1, 1, 1, 1, 1}; + try { + md.update(bytes, 1, -1); + fail("Expected exception not thrown."); + } catch (ArrayIndexOutOfBoundsException e) { + assertEquals("Range out of bounds for buffer of length 5 using offset: 1, input length: -1", e.getMessage()); + } + } + + /** + * Ensure a IllegalArgumentException is thrown when using a short buffer. + */ + @Test + public void testShortBuffer() throws Exception { + MessageDigest md = MessageDigest.getInstance(getAlgorithm(), getProviderName()); + byte[] bytes = new byte[] {1, 1, 1, 1, 1}; + try { + md.update(bytes, 1, 5); + fail("Expected exception not thrown."); + } catch (IllegalArgumentException e) { + assertEquals("Input buffer too short", e.getMessage()); + } + } +} diff --git a/src/test/java/ibm/jceplus/junit/base/BaseTestSHA3_384KAT.java b/src/test/java/ibm/jceplus/junit/tests/TestSHA3_384KAT.java similarity index 99% rename from src/test/java/ibm/jceplus/junit/base/BaseTestSHA3_384KAT.java rename to src/test/java/ibm/jceplus/junit/tests/TestSHA3_384KAT.java index 2b4ace9f0..82934e2a9 100644 --- a/src/test/java/ibm/jceplus/junit/base/BaseTestSHA3_384KAT.java +++ b/src/test/java/ibm/jceplus/junit/tests/TestSHA3_384KAT.java @@ -1,20 +1,35 @@ /* - * Copyright IBM Corp. 2023, 2025 + * Copyright IBM Corp. 2023, 2026 * * This code is free software; you can redistribute it and/or modify it * under the terms provided by IBM in the LICENSE file that accompanied * this code, including the "Classpath" Exception described therein. */ -package ibm.jceplus.junit.base; +package ibm.jceplus.junit.tests; import java.security.MessageDigest; import java.util.Arrays; -import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import static org.junit.jupiter.api.Assertions.assertTrue; -public class BaseTestSHA3_384KAT extends BaseTestMessageDigest { +@Tag(Tags.OPENJCEPLUS_NAME) +@Tag(Tags.OPENJCEPLUS_FIPS_NAME) +@Tag(Tags.OPENJCEPLUS_MULTITHREAD_NAME) +@Tag(Tags.OPENJCEPLUS_FIPS_MULTITHREAD_NAME) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +@ParameterizedClass +@MethodSource("ibm.jceplus.junit.tests.TestArguments#getEnabledProviders") +public class TestSHA3_384KAT extends BaseTestMessageDigest { + + @Parameter(0) + TestProvider provider; final String[][] tests = {{ "5fe35923b4e0af7dd24971812a58425519850a506dfa9b0d254795be785786c319a2567cbaa5e35bcf8fe83d943e23fa5169b73adc1fcf8b607084b15e6a013df147e46256e4e803ab75c110f77848136be7d806e8b2f868c16c3a90c14463407038cb7d9285079ef162c6a45cedf9c9f066375c969b5fcbcda37f02aacff4f31cded3767570885426bebd9eca877e44674e9ae2f0c24cdd0e7e1aaf1ff2fe7f80a1c4f5078eb34cd4f06fa94a2d1eab5806ca43fd0f06c60b63d5402b95c70c21ea65a151c5cfaf8262a46be3c722264b", @@ -424,8 +439,9 @@ public class BaseTestSHA3_384KAT extends BaseTestMessageDigest { {"92c41d34bd249c182ad4e18e3b856770766f1757209675020d4c1cf7b6f7686c8c1472678c7c412514e63eb9f5aee9f5c9d5cb8d8748ab7a5465059d9cbbb8a56211ff32d4aaa23a23c86ead916fe254cc6b2bff7a9553df1551b531f95bb41cbbc4acddbd372921", "71307eec1355f73e5b726ed9efa1129086af81364e30a291f684dfade693cc4bc3d6ffcb7f3b4012a21976ff9edcab61"}}; - @BeforeAll - public void setUp() { + @BeforeEach + public void setUp() throws Exception { + setAndInsertProvider(provider); setAlgorithm("SHA3-384"); } diff --git a/src/test/java/ibm/jceplus/junit/base/BaseTestSHA3_512KAT.java b/src/test/java/ibm/jceplus/junit/tests/TestSHA3_512KAT.java similarity index 99% rename from src/test/java/ibm/jceplus/junit/base/BaseTestSHA3_512KAT.java rename to src/test/java/ibm/jceplus/junit/tests/TestSHA3_512KAT.java index 96738eb51..f7d4883db 100644 --- a/src/test/java/ibm/jceplus/junit/base/BaseTestSHA3_512KAT.java +++ b/src/test/java/ibm/jceplus/junit/tests/TestSHA3_512KAT.java @@ -1,20 +1,35 @@ /* - * Copyright IBM Corp. 2023, 2025 + * Copyright IBM Corp. 2023, 2026 * * This code is free software; you can redistribute it and/or modify it * under the terms provided by IBM in the LICENSE file that accompanied * this code, including the "Classpath" Exception described therein. */ -package ibm.jceplus.junit.base; +package ibm.jceplus.junit.tests; import java.security.MessageDigest; import java.util.Arrays; -import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.params.Parameter; +import org.junit.jupiter.params.ParameterizedClass; +import org.junit.jupiter.params.provider.MethodSource; import static org.junit.jupiter.api.Assertions.assertTrue; -public class BaseTestSHA3_512KAT extends BaseTestMessageDigest { +@Tag(Tags.OPENJCEPLUS_NAME) +@Tag(Tags.OPENJCEPLUS_FIPS_NAME) +@Tag(Tags.OPENJCEPLUS_MULTITHREAD_NAME) +@Tag(Tags.OPENJCEPLUS_FIPS_MULTITHREAD_NAME) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +@ParameterizedClass +@MethodSource("ibm.jceplus.junit.tests.TestArguments#getEnabledProviders") +public class TestSHA3_512KAT extends BaseTestMessageDigest { + + @Parameter(0) + TestProvider provider; final String[][] tests = {{ "664ef2e3a7059daf1c58caf52008c5227e85cdcb83b4c59457f02c508d4f4f69f826bd82c0cffc5cb6a97af6e561c6f96970005285e58f21ef6511d26e709889a7e513c434c90a3cf7448f0caeec7114c747b2a0758a3b4503a7cf0c69873ed31d94dbef2b7b2f168830ef7da3322c3d3e10cafb7c2c33c83bbf4c46a31da90cff3bfd4ccc6ed4b310758491eeba603a76", @@ -360,8 +375,9 @@ public class BaseTestSHA3_512KAT extends BaseTestMessageDigest { {"0ce9f8c3a990c268f34efd9befdb0f7c4ef8466cfdb01171f8de70dc5fefa92acbe93d29e2ac1a5c2979129f1ab08c0e77de7924ddf68a209cdfa0adc62f85c18637d9c6b33f4ff8", "b018a20fcf831dde290e4fb18c56342efe138472cbe142da6b77eea4fce52588c04c808eb32912faa345245a850346faec46c3a16d39bd2e1ddb1816bc57d2da"}}; - @BeforeAll - public void setUp() { + @BeforeEach + public void setUp() throws Exception { + setAndInsertProvider(provider); setAlgorithm("SHA3-512"); }