aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/build.gradle.kts4
-rw-r--r--reader/build.gradle.kts4
-rw-r--r--reader/src/main/java/cz/crcs/ectester/reader/ECTesterReader.java2
-rw-r--r--reader/src/test/java/cz/crcs/ectester/reader/AppTests.java71
-rw-r--r--reader/src/test/java/cz/crcs/ectester/reader/OutputTests.java9
-rw-r--r--standalone/build.gradle.kts4
6 files changed, 68 insertions, 26 deletions
diff --git a/common/build.gradle.kts b/common/build.gradle.kts
index ee30247..6fb4585 100644
--- a/common/build.gradle.kts
+++ b/common/build.gradle.kts
@@ -21,9 +21,9 @@ dependencies {
// https://mvnrepository.com/artifact/com.klinec/jcardsim
api("com.klinec:jcardsim:3.0.5.11")
- 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/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),});
}
}
diff --git a/standalone/build.gradle.kts b/standalone/build.gradle.kts
index c8baa36..4156dd6 100644
--- a/standalone/build.gradle.kts
+++ b/standalone/build.gradle.kts
@@ -21,9 +21,9 @@ dependencies {
}
implementation(project(":common"))
- 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")
}