diff options
| author | J08nY | 2025-03-22 22:17:34 +0100 |
|---|---|---|
| committer | J08nY | 2025-04-16 12:25:06 +0200 |
| commit | b921927b8747ac8b66d3ccff22446b148c891f01 (patch) | |
| tree | 08081e94fcf0d14ea20463fc5cee42a8d3763087 /reader | |
| parent | 2e0a31a16740cf05e1bec5b609e29a3c31ecbc83 (diff) | |
| download | ECTester-b921927b8747ac8b66d3ccff22446b148c891f01.tar.gz ECTester-b921927b8747ac8b66d3ccff22446b148c891f01.tar.zst ECTester-b921927b8747ac8b66d3ccff22446b148c891f01.zip | |
Diffstat (limited to 'reader')
4 files changed, 64 insertions, 22 deletions
diff --git a/reader/build.gradle.kts b/reader/build.gradle.kts index 1abecdc..d1f3fa3 100644 --- a/reader/build.gradle.kts +++ b/reader/build.gradle.kts @@ -17,9 +17,9 @@ dependencies { implementation(project(":common")) implementation(project(":applet")) - testImplementation(platform("org.junit:junit-bom:5.10.2")) + testImplementation(platform("org.junit:junit-bom:5.11.2")) testImplementation("org.junit.jupiter:junit-jupiter") - testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") + testImplementation("org.junit-pioneer:junit-pioneer:2.3.0") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } diff --git a/reader/src/main/java/cz/crcs/ectester/reader/ECTesterReader.java b/reader/src/main/java/cz/crcs/ectester/reader/ECTesterReader.java index bb11484..6a52dc5 100644 --- a/reader/src/main/java/cz/crcs/ectester/reader/ECTesterReader.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/ECTesterReader.java @@ -655,7 +655,7 @@ public class ECTesterReader { Response.Export exportLocal = new Command.Export(cardManager, CardConsts.KEYPAIR_LOCAL, EC_Consts.KEY_PRIVATE, EC_Consts.PARAMETER_S).send(); respWriter.outputResponse(exportLocal); privkey_bytes = exportLocal.getParameter(CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S); - pubkey_bytes = ECUtil.toX962Uncompressed(keypair.getParam(EC_Consts.PARAMETER_W)); + pubkey_bytes = keypair.flatten(EC_Consts.PARAMETER_W); perform = new Command.ECDH_direct(cardManager, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, cfg.ECKAType, pubkey_bytes); } else { diff --git a/reader/src/test/java/cz/crcs/ectester/reader/AppTests.java b/reader/src/test/java/cz/crcs/ectester/reader/AppTests.java index 173f7e2..17f43da 100644 --- a/reader/src/test/java/cz/crcs/ectester/reader/AppTests.java +++ b/reader/src/test/java/cz/crcs/ectester/reader/AppTests.java @@ -36,81 +36,98 @@ public class AppTests { assertTrue(s.contains("secg")); } - // Add StdIo to all the suite tests when this is resolved: https://github.com/junit-pioneer/junit-pioneer/issues/822 - @Test @XFail(value = "JCardSim sometimes times-out.") - public void defaultSuite() { + @StdIo() + public void defaultSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "default", "-s"})); } @Test @XFail(value = "JCardSim sometimes times-out.") + @StdIo() + public void defaultSuitePart(StdOut out) { + assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "default:3:5", "-s"})); + } + + @Test + @XFail(value = "JCardSim sometimes times-out.") @Disabled - public void testVectorSuite() { + @StdIo() + public void testVectorSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "test-vectors", "-s"})); } @Test @XFail(value = "JCardSim sometimes times-out.") - public void compressionSuite() { + @StdIo() + public void compressionSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "compression", "-s"})); } @Test @XFail(value = "JCardSim sometimes times-out.") @Disabled - public void wrongSuite() { + @StdIo() + public void wrongSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "wrong", "-s", "-y"})); } @Test @XFail(value = "JCardSim sometimes times-out.") - public void degenerateSuite() { + @StdIo() + public void degenerateSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "degenerate", "-s", "-y"})); } @Test @XFail(value = "JCardSim sometimes times-out.") @Disabled - public void cofactorSuite() { + @StdIo() + public void cofactorSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "cofactor", "-s", "-y"})); } @Test @XFail(value = "JCardSim sometimes times-out.") @Disabled - public void compositeSuite() { + @StdIo() + public void compositeSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "composite", "-s", "-y"})); } @Test @XFail(value = "JCardSim sometimes times-out.") - public void invalidSuite() { + @StdIo() + public void invalidSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "invalid", "-s", "-y"})); } @Test @XFail(value = "JCardSim sometimes times-out.") - public void edgeCasesSuite() { + @StdIo() + public void edgeCasesSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "edge-cases", "-s", "-y"})); } @Test @XFail(value = "JCardSim sometimes times-out.") - public void signatureSuite() { + @StdIo() + public void signatureSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "signature", "-s"})); } @Test @XFail(value = "JCardSim sometimes times-out.") - public void twistSuite() { + @StdIo() + public void twistSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "twist", "-s", "-y"})); } @Test @XFail(value = "JCardSim sometimes times-out.") - public void miscellaneousSuite() { + @StdIo() + public void miscellaneousSuite(StdOut out) { assertTimeoutPreemptively(Duration.ofSeconds(60), () -> ECTesterReader.main(new String[]{"-t", "miscellaneous", "-s", "-y"})); } @@ -120,22 +137,40 @@ public class AppTests { } @Test - public void ecdh() { + @StdIo() + public void ecdh(StdOut out) { ECTesterReader.main(new String[]{"-dh", "-fp", "-b", "256", "-s"}); + String s = out.capturedString(); + assertTrue(s.contains("OK")); + assertTrue(s.contains("ALG_EC_SVDP_DH of remote pubkey and local privkey")); + } + + @Test + @StdIo() + public void ecdh_external(StdOut out) { + ECTesterReader.main(new String[]{"-dh", "-fp", "--external", "--named-curve", "secg/secp256r1", "--named-public", "invalid/secp256r1/0", "-b", "256", "-s"}); + String s = out.capturedString(); + assertTrue(s.contains("OK")); + assertTrue(s.contains("ALG_EC_SVDP_DH of external pubkey and local privkey")); } @Test - public void ecdsa() { + @StdIo() + public void ecdsa(StdOut out) { ECTesterReader.main(new String[]{"-dsa", "-fp", "-b", "256", "-s"}); + String s = out.capturedString(); + System.err.println(s); } @Test - public void export() { + @StdIo() + public void export(StdOut out) { ECTesterReader.main(new String[]{"-e", "-fp", "-b", "256", "-s", "-o", "/dev/null"}); } @Test - public void info() { + @StdIo() + public void info(StdOut out) { ECTesterReader.main(new String[]{"-nf", "-s"}); } } diff --git a/reader/src/test/java/cz/crcs/ectester/reader/OutputTests.java b/reader/src/test/java/cz/crcs/ectester/reader/OutputTests.java index 5300e98..5d7ba95 100644 --- a/reader/src/test/java/cz/crcs/ectester/reader/OutputTests.java +++ b/reader/src/test/java/cz/crcs/ectester/reader/OutputTests.java @@ -1,13 +1,20 @@ package cz.crcs.ectester.reader; +import org.junit.jupiter.api.io.TempDir; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; +import java.nio.file.Path; + public class OutputTests { + @TempDir + static Path tempDir; + @ParameterizedTest @ValueSource(strings = {"text", "xml", "yml"}) public void formats(String format) { - ECTesterReader.main(new String[]{"-t", "default", "-s", "-o", String.format("%s:out.%s", format, format),}); + Path outputFile = tempDir.resolve(String.format("out.%s", format)); + ECTesterReader.main(new String[]{"-t", "default", "-s", "-o", String.format("%s:%s", format, outputFile),}); } } |
