diff options
| author | quapka | 2024-06-21 16:31:37 +0200 |
|---|---|---|
| committer | quapka | 2024-06-21 16:31:37 +0200 |
| commit | ada61982cc70a2c72a6fc765dc9b4a9c01202a27 (patch) | |
| tree | d92bee42106e850d4da90ad7174ac609ca175eda /common | |
| parent | c051ef2ecfa92723d6dea675ac8c345be92cf165 (diff) | |
| parent | c112d3e49bbbbf33cc70d12d196e109543c19a3c (diff) | |
| download | ECTester-ada61982cc70a2c72a6fc765dc9b4a9c01202a27.tar.gz ECTester-ada61982cc70a2c72a6fc765dc9b4a9c01202a27.tar.zst ECTester-ada61982cc70a2c72a6fc765dc9b4a9c01202a27.zip | |
Merge branch 'master' into build-with-nix
Diffstat (limited to 'common')
22 files changed, 427 insertions, 56 deletions
diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 0aca7fb..1aff0d7 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -23,5 +23,5 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_15 }
\ No newline at end of file diff --git a/common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldFp.java b/common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldFp.java index eafcb72..1fe6eb0 100644 --- a/common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldFp.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldFp.java @@ -19,7 +19,7 @@ public class CustomECFieldFp extends ECFieldFp { @Override public int getFieldSize() { - return p.bitCount(); + return p.bitLength(); } @Override diff --git a/common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java index 5c449db..538539b 100644 --- a/common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java @@ -51,11 +51,13 @@ public abstract class BaseTextTestWriter implements TestWriter { private String testString(Test t, String prefix, int index) { boolean compound = t instanceof CompoundTest; + boolean cont = compound ? ((CompoundTest) t).getStartedTests().length > 0 : false; + boolean root = prefix.equals(""); Result result = t.getResult(); String line = ""; - if (prefix.equals("")) { + if (root) { char[] charLine = new char[BASE_WIDTH + 24]; new String(new char[BASE_WIDTH + 24]).replace("\0", "━").getChars(0, charLine.length - 1, charLine, 0); charLine[0] = '■'; @@ -68,10 +70,20 @@ public abstract class BaseTextTestWriter implements TestWriter { StringBuilder out = new StringBuilder(); out.append(t.ok() ? Colors.ok(" OK ") : Colors.error("NOK ")); - out.append(compound ? (prefix.equals("") ? "╋ " : "┳ ") : "━ "); + String marker; + if (compound) { + if (root) { + marker = cont ? "╋" : "┻"; + } else { + marker = cont ? "┳" : "━"; + } + } else { + marker = "━"; + } + out.append(marker + " "); int width = BASE_WIDTH - (prefix.length() + 6); String widthSpec = "%-" + width + "s"; - String desc = ((prefix.equals("")) ? "(" + index + ") " : "") + t.getDescription(); + String desc = ((root) ? "(" + index + ") " : "") + t.getDescription(); out.append(String.format(widthSpec, desc)); out.append(" ┃ "); Colors.Foreground valueColor; @@ -114,6 +126,23 @@ public abstract class BaseTextTestWriter implements TestWriter { } @Override + public void beginTest(Test t) { + if (System.console() != null) { + output.print("Running ▶ " + t.getDescription()); + output.flush(); + } + } + + + @Override + public void endTest(Test t) { + if (System.console() != null) { + output.print("\33[2K\r"); + output.flush(); + } + } + + @Override public void outputTest(Test t, int index) { if (!t.hasRun()) return; diff --git a/common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java index 53970dd..5157ef0 100644 --- a/common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java @@ -116,6 +116,16 @@ public abstract class BaseXMLTestWriter implements TestWriter { } @Override + public void beginTest(Test t) { + + } + + @Override + public void endTest(Test t) { + + } + + @Override public void outputTest(Test t, int index) { if (!t.hasRun()) return; diff --git a/common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java index e054563..c3a42ea 100644 --- a/common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java @@ -92,6 +92,16 @@ public abstract class BaseYAMLTestWriter implements TestWriter { } @Override + public void beginTest(Test t) { + + } + + @Override + public void endTest(Test t) { + + } + + @Override public void outputTest(Test t, int index) { if (!t.hasRun()) return; diff --git a/common/src/main/java/cz/crcs/ectester/common/output/TeeTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/TeeTestWriter.java index 58a0a15..7635644 100644 --- a/common/src/main/java/cz/crcs/ectester/common/output/TeeTestWriter.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/TeeTestWriter.java @@ -21,6 +21,20 @@ public class TeeTestWriter implements TestWriter { } @Override + public void beginTest(Test t) { + for (TestWriter writer : writers) { + writer.beginTest(t); + } + } + + @Override + public void endTest(Test t) { + for (TestWriter writer : writers) { + writer.endTest(t); + } + } + + @Override public void outputTest(Test t, int index) { for (TestWriter writer : writers) { writer.outputTest(t, index); diff --git a/common/src/main/java/cz/crcs/ectester/common/output/TestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/TestWriter.java index 67aeccb..7368c0a 100644 --- a/common/src/main/java/cz/crcs/ectester/common/output/TestWriter.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/TestWriter.java @@ -19,20 +19,32 @@ public interface TestWriter { void begin(TestSuite suite); /** - * @param t - * @param index + * Begin the test (before it is run). + * @param t Test to begin output of. + */ + void beginTest(Test t); + + /** + * End the test (after it is run, or errored out). + * @param t Test to end output of. + */ + void endTest(Test t); + + /** + * @param t Test to output. + * @param index Index of the test. */ void outputTest(Test t, int index); /** - * @param t - * @param cause - * @param index + * @param t Test to output the error from. + * @param cause Throwable to output. + * @param index Index of the test. */ void outputError(Test t, Throwable cause, int index); /** - * + * End writing the TestSuite. */ void end(); } diff --git a/common/src/main/java/cz/crcs/ectester/common/test/TestSuite.java b/common/src/main/java/cz/crcs/ectester/common/test/TestSuite.java index b12680a..091b008 100644 --- a/common/src/main/java/cz/crcs/ectester/common/test/TestSuite.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/TestSuite.java @@ -55,7 +55,9 @@ public abstract class TestSuite { */ protected <T extends Test> T runTest(T t) { running = t; + writer.beginTest(t); t.run(); + writer.endTest(t); running = null; return t; } diff --git a/common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java b/common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java index f9be536..e7f138e 100644 --- a/common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java +++ b/common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java @@ -2,20 +2,25 @@ package cz.crcs.ectester.common.util; import cz.crcs.ectester.common.ec.*; import cz.crcs.ectester.data.EC_Store; +import org.bouncycastle.asn1.ASN1OctetString; +import org.bouncycastle.asn1.ASN1Integer; +import org.bouncycastle.asn1.ASN1Primitive; +import org.bouncycastle.asn1.ASN1Sequence; +import org.bouncycastle.asn1.pkcs.PrivateKeyInfo; import org.bouncycastle.crypto.digests.SHA1Digest; import org.bouncycastle.crypto.signers.PlainDSAEncoding; import org.bouncycastle.crypto.signers.StandardDSAEncoding; +import org.bouncycastle.jcajce.interfaces.EdDSAPrivateKey; +import org.bouncycastle.jcajce.interfaces.EdDSAPublicKey; +import org.bouncycastle.jcajce.interfaces.XDHPrivateKey; +import org.bouncycastle.jcajce.interfaces.XDHPublicKey; import java.io.FileInputStream; import java.io.IOException; import java.math.BigInteger; import java.nio.charset.StandardCharsets; -import java.security.KeyPair; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.interfaces.ECKey; -import java.security.interfaces.ECPrivateKey; -import java.security.interfaces.ECPublicKey; +import java.security.*; +import java.security.interfaces.*; import java.security.spec.*; import java.util.LinkedList; import java.util.List; @@ -344,6 +349,39 @@ public class ECUtil { return new KeyPair(pubkey, privkey); } + /** + * Validate DER or PLAIN signature format. + * + * @throws IllegalArgumentException in case of invalid format. + * @param signature + * @param params + * @param hashAlgo + * @param sigType + */ + public static void validateSignatureFormat(byte[] signature, ECParameterSpec params, String hashAlgo, String sigType) { + BigInteger n = params.getOrder(); + try { + if (sigType.contains("CVC") || sigType.contains("PLAIN")) { + PlainDSAEncoding.INSTANCE.decode(n, signature); + } else { + StandardDSAEncoding.INSTANCE.decode(n, signature); + } + } catch (Exception e) { + throw new IllegalArgumentException(e); + } + } + + /** + * Recover the ECDSA signature nonce. + * + * @param signature + * @param data + * @param privkey + * @param params + * @param hashAlgo + * @param sigType + * @return The nonce. + */ public static BigInteger recoverSignatureNonce(byte[] signature, byte[] data, BigInteger privkey, ECParameterSpec params, String hashAlgo, String sigType) { // We do not know how to reconstruct those nonces so far. // sigType.contains("ECKCDSA") || sigType.contains("ECNR") || sigType.contains("SM2") @@ -369,14 +407,18 @@ public class ECUtil { } // Parse signature - BigInteger[] sigPair; + BigInteger r; + BigInteger s; if (sigType.contains("CVC") || sigType.contains("PLAIN")) { - sigPair = PlainDSAEncoding.INSTANCE.decode(n, signature); + BigInteger[] sigPair = PlainDSAEncoding.INSTANCE.decode(n, signature); + r = sigPair[0]; + s = sigPair[1]; } else { - sigPair = StandardDSAEncoding.INSTANCE.decode(n, signature); + ASN1Sequence seq = (ASN1Sequence) ASN1Primitive.fromByteArray(signature); + r = ((ASN1Integer) seq.getObjectAt(0)).getValue(); + s = ((ASN1Integer) seq.getObjectAt(1)).getValue(); } - BigInteger r = sigPair[0]; - BigInteger s = sigPair[1]; + BigInteger rd = privkey.multiply(r).mod(n); BigInteger hrd = hashInt.add(rd).mod(n); @@ -456,6 +498,46 @@ public class ECUtil { return null; } + public static byte[] pubkeyToBytes(PublicKey pubkey) { + if (pubkey instanceof ECPublicKey) { + ECPublicKey ecPublicKey = (ECPublicKey) pubkey; + return ECUtil.toX962Uncompressed(ecPublicKey.getW(), ecPublicKey.getParams()); + } else if (pubkey instanceof XECPublicKey) { + XECPublicKey xedPublicKey = (XECPublicKey) pubkey; + return xedPublicKey.getU().toByteArray(); + } else if (pubkey instanceof EdECPublicKey) { + EdECPublicKey edECPublicKey = (EdECPublicKey) pubkey; + return edECPublicKey.getPoint().getY().toByteArray(); + } else if (pubkey instanceof XDHPublicKey) { + XDHPublicKey xdhPublicKey = (XDHPublicKey) pubkey; + return xdhPublicKey.getU().toByteArray(); + // Special-case BouncyCastle XDH + } else if (pubkey instanceof EdDSAPublicKey) { + EdDSAPublicKey edDSAPublicKey = (EdDSAPublicKey) pubkey; + // Special-case BouncyCastle EdDSA + return edDSAPublicKey.getPointEncoding(); + } + return null; + } + + public static byte[] privkeyToBytes(PrivateKey privkey) { + if (privkey instanceof ECPrivateKey) { + ECPrivateKey ecPrivateKey = (ECPrivateKey) privkey; + return ecPrivateKey.getS().toByteArray(); + } else if (privkey instanceof XECPrivateKey) { + XECPrivateKey xecPrivateKey = (XECPrivateKey) privkey; + return xecPrivateKey.getScalar().get(); + } else if (privkey instanceof EdECPrivateKey) { + EdECPrivateKey edECPrivateKey = (EdECPrivateKey) privkey; + return edECPrivateKey.getBytes().get(); + } else if (privkey instanceof XDHPrivateKey || privkey instanceof EdDSAPrivateKey) { + // Special-case BouncyCastle XDH and EdDSA + PrivateKeyInfo xpkinfo = PrivateKeyInfo.getInstance(privkey.getEncoded()); + return ASN1OctetString.getInstance(xpkinfo.getPrivateKey().getOctets()).getOctets(); + } + return null; + } + public static boolean equalKeyPairParameters(ECPrivateKey priv, ECPublicKey pub) { if (priv == null || pub == null) { return false; @@ -465,4 +547,15 @@ public class ECUtil { priv.getParams().getGenerator().equals(pub.getParams().getGenerator()) && priv.getParams().getOrder().equals(pub.getParams().getOrder()); } + + public static boolean equalECParameterSpec(ECParameterSpec left, ECParameterSpec right) { + if (left == null || right == null) { + return false; + } + + return left.getCofactor() == right.getCofactor() && + left.getCurve().equals(right.getCurve()) && + left.getGenerator().equals(right.getGenerator()) && + left.getOrder().equals(right.getOrder()); + } } diff --git a/common/src/main/java/cz/crcs/ectester/common/util/FileUtil.java b/common/src/main/java/cz/crcs/ectester/common/util/FileUtil.java index e6e319b..da682b6 100644 --- a/common/src/main/java/cz/crcs/ectester/common/util/FileUtil.java +++ b/common/src/main/java/cz/crcs/ectester/common/util/FileUtil.java @@ -81,6 +81,17 @@ public class FileUtil { return true; } + public static boolean write(String resourcePath, Path outPath) throws IOException { + URL reqURL = FileUtil.class.getResource(resourcePath); + if (reqURL == null) { + return false; + } + URLConnection reqConn = reqURL.openConnection(); + Files.copy(reqConn.getInputStream(), outPath, StandardCopyOption.REPLACE_EXISTING); + reqConn.getInputStream().close(); + return true; + } + public static Path getLibDir() { return getAppData().resolve("ECTesterStandalone"); } diff --git a/common/src/main/resources/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv b/common/src/main/resources/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv index 54da6cc..fb16cdb 100644 --- a/common/src/main/resources/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv +++ b/common/src/main/resources/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv @@ -1 +1 @@ -0xdd94e89ef3fba74afc2a67cb91546a93,0x6cf4828ab4960df2b9fcab3990e3959a,0x80a5c32206c83f769c5ed3e4f5b2ea4e,0xd7a4bb4b7e9ad9e81895caeaeac8b739,0x45ebc51cf353974b02b36b9912de041b,0x0000dd95c634ba30617af48fd4eb321b,0xffff
\ No newline at end of file +0xdd94e89ef3fba74afc2a67cb91546a93,0x6cf4828ab4960df2b9fcab3990e3959a,0x80a5c32206c83f769c5ed3e4f5b2ea4e,0x91e251594dab368b04d7dd6d9b99fdef,0xa7da97b3ba62ac554f7202d4f0348133,0x0000dd95c634ba30617af48fd4eb321b,0xffff
\ No newline at end of file diff --git a/common/src/main/resources/cz/crcs/ectester/data/cofactor/keys.xml b/common/src/main/resources/cz/crcs/ectester/data/cofactor/keys.xml index d6058f0..1b5ec4b 100644 --- a/common/src/main/resources/cz/crcs/ectester/data/cofactor/keys.xml +++ b/common/src/main/resources/cz/crcs/ectester/data/cofactor/keys.xml @@ -668,7 +668,7 @@ </pubkey> <pubkey> <id>pq/cofactor192/1</id> - <inline>0x6366613b66339fa580f390d630ccf9b535437229aa8b61cd,0x1b975fa3848bd68f34f6a08b7cf190bcaeaf9782270e2413</inline> + <inline>0x28f5b96b08f9dbe661472dbf8e5925b944e42ac5fdfdb2da,0x227e8b2a9b07d1cd67211d4b933bf43eefbb7140e5a65dca</inline> <curve>composite/pq/composite192/1</curve> <desc>cofactor order = 0x00000000000000000000035efd8bad55038e6bd22db8b805</desc> </pubkey> diff --git a/common/src/main/resources/cz/crcs/ectester/data/composite/composite192_pq2.csv b/common/src/main/resources/cz/crcs/ectester/data/composite/composite192_pq2.csv index 33fe0f3..c92dcb2 100644 --- a/common/src/main/resources/cz/crcs/ectester/data/composite/composite192_pq2.csv +++ b/common/src/main/resources/cz/crcs/ectester/data/composite/composite192_pq2.csv @@ -1 +1 @@ -0xa261fff62647eebf810a404f0c80a971dd7c7838fdc52b5b,0x87502ebb62d26e1eca06c434f8ef069dfb2c287d6183750c,0x4ad6ce1f16e1bfc3d40f0027d787aeadb53846d69099a883,0x6366613b66339fa580f390d630ccf9b535437229aa8b61cd,0x1b975fa3848bd68f34f6a08b7cf190bcaeaf9782270e2413,0x00000000000000000000035efd8bad55038e6bd22db8b805,0x01
\ No newline at end of file +0xa261fff62647eebf810a404f0c80a971dd7c7838fdc52b5b,0x87502ebb62d26e1eca06c434f8ef069dfb2c287d6183750c,0x4ad6ce1f16e1bfc3d40f0027d787aeadb53846d69099a883,0x16a5b79035a1e561aae737dc7f32f3c03d5f03f73bd405e4,0x3ddad60cc20b136913dcab69a30e5b71e0bf11f859658524,0x00000000000000000000035efd8bad55038e6bd22db8b805,0x01
\ No newline at end of file diff --git a/common/src/main/resources/cz/crcs/ectester/data/schema.xsd b/common/src/main/resources/cz/crcs/ectester/data/schema.xsd index 99c9b76..245aa9a 100644 --- a/common/src/main/resources/cz/crcs/ectester/data/schema.xsd +++ b/common/src/main/resources/cz/crcs/ectester/data/schema.xsd @@ -82,6 +82,7 @@ <xs:simpleType name="sigType"> <xs:restriction base="xs:string"> + <xs:enumeration value="*"/> <xs:enumeration value="SHA1"/> <xs:enumeration value="SHA224"/> <xs:enumeration value="SHA256"/> diff --git a/common/src/main/resources/cz/crcs/ectester/data/wrong/curves.xml b/common/src/main/resources/cz/crcs/ectester/data/wrong/curves.xml index 2a51474..9087940 100644 --- a/common/src/main/resources/cz/crcs/ectester/data/wrong/curves.xml +++ b/common/src/main/resources/cz/crcs/ectester/data/wrong/curves.xml @@ -92,4 +92,46 @@ <file>wrongt571.csv</file> <desc>The field polynomial is not irreducible in F_2^571[x].</desc> </curve> + <curve> + <id>pseudo192</id> + <bits>192</bits> + <field>prime</field> + <file>pseudo192.csv</file> + <desc>The field is not prime (but a Carmichael pseudoprime, see https://github.com/crocs-muni/fooling-primality-tests/).</desc> + </curve> + <curve> + <id>pseudo224</id> + <bits>224</bits> + <field>prime</field> + <file>pseudo224.csv</file> + <desc>The field is not prime (but a Carmichael pseudoprime, see https://github.com/crocs-muni/fooling-primality-tests/).</desc> + </curve> + <curve> + <id>pseudo256</id> + <bits>256</bits> + <field>prime</field> + <file>pseudo256.csv</file> + <desc>The field is not prime (but a Carmichael pseudoprime, see https://github.com/crocs-muni/fooling-primality-tests/).</desc> + </curve> + <curve> + <id>pseudo384</id> + <bits>384</bits> + <field>prime</field> + <file>pseudo384.csv</file> + <desc>The field is not prime (but a Carmichael pseudoprime, see https://github.com/crocs-muni/fooling-primality-tests/).</desc> + </curve> + <curve> + <id>pseudo512</id> + <bits>512</bits> + <field>prime</field> + <file>pseudo512.csv</file> + <desc>The field is not prime (but a Carmichael pseudoprime, see https://github.com/crocs-muni/fooling-primality-tests/).</desc> + </curve> + <curve> + <id>pseudo521</id> + <bits>521</bits> + <field>prime</field> + <file>pseudo521.csv</file> + <desc>The field is not prime (but a Carmichael pseudoprime, see https://github.com/crocs-muni/fooling-primality-tests/).</desc> + </curve> </curves>
\ No newline at end of file diff --git a/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo192.csv b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo192.csv new file mode 100644 index 0000000..c98e63b --- /dev/null +++ b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo192.csv @@ -0,0 +1 @@ +0xf7601c102e5605a4510b865b28287060ae6002956371b4f7,0x429c8107ce7063a45234aeadd30c021acc6bdaff6531af7d,0x9637284c287bc5c97c574dc8f91d03e5f58f516bfdb77601,0x1f7fe14d44df79fcfbd9225173d39784374bc08a80a8dc40,0xdb2ff34213f3214f1aa4e273e48efaf8362292f4e0ed0b9f,0xf7601c102487dad5b1e6fbcb61193546c31f16a71903f85d,0x0001
\ No newline at end of file diff --git a/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo224.csv b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo224.csv new file mode 100644 index 0000000..cf781d6 --- /dev/null +++ b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo224.csv @@ -0,0 +1 @@ +0xf54255f919b6fec4c9c9788c0dc432b8a50b7331e836a4fff9c5bc7f,0x270b8817bc48b1d56401abf8964e6fc785771d2a26130f8a572682f1,0xe28250a72ac83dd064b08cb83e8d2b678330d4dfd5193179088cb5cb,0xd0a2d469eda6a9c5bf9568459a02e2e65901f907f766891ad2a323cd,0x580e1fbfb94793f5880e36d6a2229c2fb082db0f3270f0b3ec4ce2a8,0xf54255f9581e15675cedd50065fa01410df6bfb6e17a2c69747246e5,0x0001
\ No newline at end of file diff --git a/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo256.csv b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo256.csv new file mode 100644 index 0000000..ef14dc4 --- /dev/null +++ b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo256.csv @@ -0,0 +1 @@ +0x89ae5b1ffa52bd5a6e1e9627d2fef2b1658f5ae93ce0dabecead0f8cf294909b,0x35fe79c1bdac3f16080f6f763f1947c97fe841510d807e632fdb0abca45b539d,0x1da2a1152d54cc6d19da48bfbd8c31f6d7aba41fdbb744ef60c3ffb0a1b1b3cb,0x6ef9419070b90eaec6914e8c4809c3fe1c868b9857874abc4929321a021ef679,0x2391630ddc525199e2f65883d35623545cccd58496caa8b2e3fb8a84df6996e6,0x89ae5b1ffad4189f719eb3801d3a65986202d48cbab151d32b992e92dd589161,0x0001
\ No newline at end of file diff --git a/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo384.csv b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo384.csv new file mode 100644 index 0000000..ac1f589 --- /dev/null +++ b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo384.csv @@ -0,0 +1 @@ +0xbddc881aa619fc8a2f4dedb315f0b55c8c0cca4d7aac4e595c96504eb2e8860489bd824340028f49ca90272998729fe7,0x1595f6abcbb9bea724adb7df2129472f9f4d7ed83e2c9e7a52dc8cd12ef36b7a209f46afa553901d7ecf0d98618dabcf,0xb6bf3f61901462bf181b096d61aa7ee00310d110f739cbf95fccf7faa7f529052ee8758210a9d6c10de2790e4ab7f1e3,0x6525e4141411e472233e794116f285835ed743c77d21cac612c9b8a5000fa58407754ff242671f4ca8478b6bece46ad9,0x335f77556d279a9fd8701c26f14a13646b927d3ab86c165fafb5e3ee08f3797b819eb0eea2e6e3a569c63271c406d3bb,0xbddc881aa619fc85d46958aae14456922f956e5a8bf1d5f3f889d9d14ff5ae4ef373c260215503b442e5a6f88e1b609d,0x0001
\ No newline at end of file diff --git a/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo512.csv b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo512.csv new file mode 100644 index 0000000..3562558 --- /dev/null +++ b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo512.csv @@ -0,0 +1 @@ +0xd7489dfb959fd93de1b90bcdd949ea38d11c7e3637ab48f56fb1b2b34e6593fe3cf189e9c2f3166ddefc270747002d1914c558a23dceab08875e75a6b3b3c88f,0x15ae03d8fdf64becd183b64e8a235322be8342124a3e88ae8691ac7e635f424afad39da56169deb4ee25bfb4538054f6208f1bcb7abff14d6ea61ae9f8d2349b,0x7d22f3ece4a500edd384cae7de2f60377a6852e6d3a417374a881b0d83b8f747fba5106a011c76b2176916cd5fa68371c0ba0b2786b1dcdac80ad329b1a83f28,0x0aead0caddeda9ee70fe1976af1a96a410f96fbe65273a986bc88e3e7f3bd6e24d1dc728a04fecfd17e9ddfdfe9472359d39f877761dcdc73a0ee6514ba4894b,0x03f830aef9bfd770119e28a8de3f94119517508839df651129e8a6819c4e86df580179f97821d266d0e205f7536ab49cc04298aa88dde463d638689645188d86,0xd7489dfb959fd93de1b8fe30119d6f138fbeef529543d12c03f91d34c545a75197f79a0083650dbebee8fa12d39f2902101eed3f2e1963470d77dfe2204a02c7,0x0001
\ No newline at end of file diff --git a/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo521.csv b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo521.csv new file mode 100644 index 0000000..4e7c30e --- /dev/null +++ b/common/src/main/resources/cz/crcs/ectester/data/wrong/pseudo521.csv @@ -0,0 +1 @@ +0x153212291c26fe063b78bbca97d35dda6b0b349fe3fc1d4dee21786fc85296e22d93ce855a2d3ed048498c6a1f378cea240f029df302cffb658efe9e12379629acb,0x5a4b83e21db14397282aab529b230058a165962eadf8e8f15703ca5b91501463fc8bf866d7f1a2ce785c4ff0c5797e20e3fb6952bd42e3421ed1c589b2853a0c30,0x1196a7bc6d754b0224fcace252f9056acebba295a7a0763a95fd0fa90cca4bbcc1d030cbee049d06e103bb28c8b870a1d5989d9c56870ff7fde969f3bfd0278fbf7,0xd74e5bf4d166a2d75d57d49be58f9bf3900bda81bbb283a8f311d9972c7cd1ed547403b52c657af133297f852f938b6a7ba8ef52c2ca8eb79799b15f7123c5d2af,0x7ed2303056596fb09cfade2ca0f691c515da266565ba5afa4700c6c6ed38091f3cf4fdc67ee1426b849bb9be26c1e8c3b53530fc4510dad8b7badc81bad7276c5b,0x153212291c26fe063b78bc114fd2c18a365faa9b5b3fecbb87c2690125099ddd8baa5052aa2fda7f14120d3d6af0ac185902f97bae06a009588286cf5ce93b1cce3,0x0001
\ No newline at end of file diff --git a/common/src/main/resources/cz/crcs/ectester/data/wrong/results.xml b/common/src/main/resources/cz/crcs/ectester/data/wrong/results.xml index e3f0967..18302b1 100644 --- a/common/src/main/resources/cz/crcs/ectester/data/wrong/results.xml +++ b/common/src/main/resources/cz/crcs/ectester/data/wrong/results.xml @@ -12,6 +12,16 @@ <desc>A correct signature by the default key.</desc> </sigResult> <sigResult> + <id>nok/malleable/s+n</id> + <sig>SHA1</sig> + <inline>0x304502203988322ab9f52c7f11d5d1aa92a2ac0b00275bcad8e934682257323fda67248202210152231596382268e9f3b82b99e386ebb784c21538f1a379523d1b5af44aaf80fe</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>A correct signature modified by adding n to s.</desc> + </sigResult> + <sigResult> <id>nok/negated</id> <sig>SHA1</sig> <inline>0x304402203988322ab9f52c7f11d5d1aa92a2ac0b00275bcad8e934682257323fda672482022052231597382268e8f3b82b99e386ebb7c7db1a8b4a8bdacd496190314e4c5bad</inline> @@ -23,8 +33,9 @@ </sigResult> <sigResult> <id>nok/random</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x30440220e641671e6415629dc8398e35ae1362cb647f293a92553b1594d57fff58df302c02206baafface035e3758eea0dd9ef734976c70b6dd06f4d81d33f5e28bfb8730624</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -32,8 +43,9 @@ </sigResult> <sigResult> <id>nok/r0</id> - <sig>SHA1</sig> - <inline>0x3044022000000000000000000000000000000000000000000000000000000000000000000220d0837b07fe63d225733391e6808a081fd8aeb1359511feba7ca4f266727f968e</inline> + <sig>*</sig> + <inline>0x30250201000220675e2eb20e1f1ec11c3016f7675d9a2e7a3c3370efde499ccb91920ab3da4ef3</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -41,8 +53,9 @@ </sigResult> <sigResult> <id>nok/s0</id> - <sig>SHA1</sig> - <inline>0x304402206bea66d439da6b0b4a0e45b51e76d53336f27f7aa8e35f2008b77a8e021eff0a02200000000000000000000000000000000000000000000000000000000000000000</inline> + <sig>*</sig> + <inline>0x302502206bea66d439da6b0b4a0e45b51e76d53336f27f7aa8e35f2008b77a8e021eff0a020100</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -50,8 +63,9 @@ </sigResult> <sigResult> <id>nok/r1</id> - <sig>SHA1</sig> - <inline>0x3044022000000000000000000000000000000000000000000000000000000000000000010220e660f19ddc20a30adda6ca175577b492e238ef8734b904a31045d453825974d4</inline> + <sig>*</sig> + <inline>0x302502010102203494a201a1a539189253c5eab77d1cb99ce1b154c642acc85a956cf2eec2bb3f</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -59,8 +73,9 @@ </sigResult> <sigResult> <id>nok/s1</id> - <sig>SHA1</sig> - <inline>0x30440220d30ab3301d7132edbead77c0d622bbb7be8626c9ac5ee6c536281e6c18e79ab002200000000000000000000000000000000000000000000000000000000000000001</inline> + <sig>*</sig> + <inline>0x302502201ee448a2ce4695ac5b71d89553e3dd9688f33041f64aa9aed49c269f6f943c25020101</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -68,8 +83,9 @@ </sigResult> <sigResult> <id>nok/r0s0</id> - <sig>SHA1</sig> - <inline>0x30440220000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000000</inline> + <sig>*</sig> + <inline>0x3006020100020100</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -77,8 +93,9 @@ </sigResult> <sigResult> <id>nok/r0s1</id> - <sig>SHA1</sig> - <inline>0x30440220000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001</inline> + <sig>*</sig> + <inline>0x3006020100020101</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -86,8 +103,9 @@ </sigResult> <sigResult> <id>nok/r1s0</id> - <sig>SHA1</sig> - <inline>0x30440220000000000000000000000000000000000000000000000000000000000000000102200000000000000000000000000000000000000000000000000000000000000000</inline> + <sig>*</sig> + <inline>0x3006020101020100</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -95,17 +113,99 @@ </sigResult> <sigResult> <id>nok/r1s1</id> - <sig>SHA1</sig> - <inline>0x30440220000000000000000000000000000000000000000000000000000000000000000102200000000000000000000000000000000000000000000000000000000000000001</inline> + <sig>*</sig> + <inline>0x3006020101020101</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> <desc>Well-formed invalid signature with r = 1 and s = 1.</desc> </sigResult> <sigResult> + <id>nok/r0_padded</id> + <sig>*</sig> + <inline>0x3044022000000000000000000000000000000000000000000000000000000000000000000220675e2eb20e1f1ec11c3016f7675d9a2e7a3c3370efde499ccb91920ab3da4ef3</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Malformed (zero-padded) invalid signature with r = 0.</desc> + </sigResult> + <sigResult> + <id>nok/s0_padded</id> + <sig>*</sig> + <inline>0x304402206bea66d439da6b0b4a0e45b51e76d53336f27f7aa8e35f2008b77a8e021eff0a02200000000000000000000000000000000000000000000000000000000000000000</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Malformed (zero-padded) invalid signature with s = 0.</desc> + </sigResult> + <sigResult> + <id>nok/r1_padded</id> + <sig>*</sig> + <inline>0x30440220000000000000000000000000000000000000000000000000000000000000000102203494a201a1a539189253c5eab77d1cb99ce1b154c642acc85a956cf2eec2bb3f</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Malformed (zero-padded) invalid signature with r = 1.</desc> + </sigResult> + <sigResult> + <id>nok/s1_padded</id> + <sig>*</sig> + <inline>0x304402201ee448a2ce4695ac5b71d89553e3dd9688f33041f64aa9aed49c269f6f943c2502200000000000000000000000000000000000000000000000000000000000000001</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Malformed (zero-padded) invalid signature with s = 1.</desc> + </sigResult> + <sigResult> + <id>nok/r0s0_padded</id> + <sig>*</sig> + <inline>0x30440220000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000000</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Malformed (zero-padded) invalid signature with r = 0 and s = 0.</desc> + </sigResult> + <sigResult> + <id>nok/r0s1_padded</id> + <sig>*</sig> + <inline>0x30440220000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Malformed (zero-padded) invalid signature with r = 0 and s = 1.</desc> + </sigResult> + <sigResult> + <id>nok/r1s0_padded</id> + <sig>*</sig> + <inline>0x30440220000000000000000000000000000000000000000000000000000000000000000102200000000000000000000000000000000000000000000000000000000000000000</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Malformed (zero-padded) invalid signature with r = 1 and s = 0.</desc> + </sigResult> + <sigResult> + <id>nok/r1s1_padded</id> + <sig>*</sig> + <inline>0x30440220000000000000000000000000000000000000000000000000000000000000000102200000000000000000000000000000000000000000000000000000000000000001</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Malformed (zero-padded) invalid signature with r = 1 and s = 1.</desc> + </sigResult> + <sigResult> <id>nok/sp</id> - <sig>SHA1</sig> - <inline>0x30440220fc48281b60b73752f3e20c25e8a06b335122d5890db28d2969d3145fcd384e7b0220ffffffff00000001000000000000000000000000ffffffffffffffffffffffff</inline> + <sig>*</sig> + <inline>0x304502207c48281b60b73752f3e20c25e8a06b335122d5890db28d2969d3145fcd384e7b022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -113,17 +213,49 @@ </sigResult> <sigResult> <id>nok/s2p</id> - <sig>SHA1</sig> - <inline>0x30450220feba982489753a51a69fd582673d2e62b6b07cc6374237c1424f1e469cb00a98022101fffffffe00000002000000000000000000000001fffffffffffffffffffffffe</inline> + <sig>*</sig> + <inline>0x304502207eba982489753a51a69fd582673d2e62b6b07cc6374237c1424f1e469cb00a98022101fffffffe00000002000000000000000000000001fffffffffffffffffffffffe</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> <desc>Well-formed invalid signature with s = 2 * p.</desc> </sigResult> <sigResult> + <id>nok/sn</id> + <sig>*</sig> + <inline>0x304502207c48281b60b73752f3e20c25e8a06b335122d5890db28d2969d3145fcd384e7b022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Well-formed invalid signature s = n.</desc> + </sigResult> + <sigResult> + <id>nok/rnsn</id> + <sig>*</sig> + <inline>0x3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Well-formed invalid signature r = n and s = n.</desc> + </sigResult> + <sigResult> + <id>nok/s2n</id> + <sig>*</sig> + <inline>0x304502207eba982489753a51a69fd582673d2e62b6b07cc6374237c1424f1e469cb00a98022101fffffffe00000002000000000000000000000001fffffffffffffffffffffffe</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> + <curve>secg/secp256r1</curve> + <signkey>wrong/default_priv</signkey> + <verifykey>wrong/default_pub</verifykey> + <desc>Well-formed invalid signature with s = 2 * n.</desc> + </sigResult> + <sigResult> <id>nok/length_overflow16</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x3083ff000002203988322ab9f52c7f11d5d1aa92a2ac0b00275bcad8e934682257323fda672482022052231597382268e8f3b82b99e386ebb7c7db1a8b4a8bdacd496190314e4c5bad</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -131,8 +263,9 @@ </sigResult> <sigResult> <id>nok/length_overflow32</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x3085ff0000000002203988322ab9f52c7f11d5d1aa92a2ac0b00275bcad8e934682257323fda672482022052231597382268e8f3b82b99e386ebb7c7db1a8b4a8bdacd496190314e4c5bad</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -140,8 +273,9 @@ </sigResult> <sigResult> <id>nok/length_overflow64</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x3089ff000000000000000002203988322ab9f52c7f11d5d1aa92a2ac0b00275bcad8e934682257323fda672482022052231597382268e8f3b82b99e386ebb7c7db1a8b4a8bdacd496190314e4c5bad</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -149,8 +283,9 @@ </sigResult> <sigResult> <id>nok/length_indefinite</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x308002203988322ab9f52c7f11d5d1aa92a2ac0b00275bcad8e934682257323fda672482022052231597382268e8f3b82b99e386ebb7c7db1a8b4a8bdacd496190314e4c5bad</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -158,8 +293,9 @@ </sigResult> <sigResult> <id>nok/long</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x30420220e641671e6415629dc8398e35ae1362cb647f293a92553b1594d57fff58df302c02206baafface035e3758eea0dd9ef734976c70b6dd06f4d81d33f5e28bfb8730624</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -167,8 +303,9 @@ </sigResult> <sigResult> <id>nok/short</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x30460220e641671e6415629dc8398e35ae1362cb647f293a92553b1594d57fff58df302c02206baafface035e3758eea0dd9ef734976c70b6dd06f4d81d33f5e28bfb8730624</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -176,8 +313,9 @@ </sigResult> <sigResult> <id>nok/long_r</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x3044021ee641671e6415629dc8398e35ae1362cb647f293a92553b1594d57fff58df302c02206baafface035e3758eea0dd9ef734976c70b6dd06f4d81d33f5e28bfb8730624</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -185,8 +323,9 @@ </sigResult> <sigResult> <id>nok/long_s</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x30440220e641671e6415629dc8398e35ae1362cb647f293a92553b1594d57fff58df302c021e6baafface035e3758eea0dd9ef734976c70b6dd06f4d81d33f5e28bfb8730624</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -194,8 +333,9 @@ </sigResult> <sigResult> <id>nok/short_r</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x30440222e641671e6415629dc8398e35ae1362cb647f293a92553b1594d57fff58df302c02206baafface035e3758eea0dd9ef734976c70b6dd06f4d81d33f5e28bfb8730624</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> @@ -203,8 +343,9 @@ </sigResult> <sigResult> <id>nok/short_s</id> - <sig>SHA1</sig> + <sig>*</sig> <inline>0x30440220e641671e6415629dc8398e35ae1362cb647f293a92553b1594d57fff58df302c02226baafface035e3758eea0dd9ef734976c70b6dd06f4d81d33f5e28bfb8730624</inline> + <raw>0xABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB</raw> <curve>secg/secp256r1</curve> <signkey>wrong/default_priv</signkey> <verifykey>wrong/default_pub</verifykey> |
