From 713a3bb2f997ad8e50e2d8c226cbb1e1abc8f858 Mon Sep 17 00:00:00 2001
From: J08nY
Date: Sat, 1 Dec 2018 17:01:27 +0100
Subject: Add more cofactor curves.
---
src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv | 1 +
src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv | 1 +
src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv | 1 +
src/cz/crcs/ectester/data/cofactor/curves.xml | 12 ++++++++++++
4 files changed, 15 insertions(+)
create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv
create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv
create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv
(limited to 'src/cz/crcs/ectester/data/cofactor')
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv b/src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv
new file mode 100644
index 0000000..4de7049
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv
@@ -0,0 +1 @@
+0x79cb22319472d019a08f7ae4f99c3edea2f167773210eab7,0x2b1afa29b6e9f7e148f7eb306ae942a506546c7129d56a3f,0x704d348ecd838ed800911bab3298aeebbf1c03b5489bca5d,0x61fc509a9d967735e8f18b0a4ba323134989c7711f44c35b,0x4fe31f28e2ee2a41f6fd661e417d32832bee6f3e164b167e,0x3ce59118ca39680cd047bd72595564c3953a773f01833de3,0x02
\ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv b/src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv
new file mode 100644
index 0000000..645f031
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv
@@ -0,0 +1 @@
+0x8cceb84c81521937bef0925a3aaf09195a59c3f99ae06135,0x6ad5a0b617af4ac05f668ae0236f0a485290c36ef609efb5,0x3289c9a3f4f0364147634d40c2f7604e4bc98773daefc954,0x314789e7e4e448b000d235cc51251e70cd8c92c11d1858f9,0x74459b81d5322dc2c631d3ba964e8b4c8f1e4196939a5579,0x2333ae132054864defbc24965da70e7dbdb87ba264315991,0x04
\ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv b/src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv
new file mode 100644
index 0000000..ee39445
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv
@@ -0,0 +1 @@
+0xa9a93bb887865d349841624bd8281c589a8e0196ae724eed,0x1b8b108f729cc205fb0ec88825d7d696e3df62ed328bd535,0x81078fdf85b1ee56ea3e27f6dedcca6f5eb9b645f536dc68,0x37369946896227fce5bfe8f760ba827080caa6700d8d8aaa,0x7f54e11bf72549866571fb70b383b6d1451973c11e3fd082,0x1535277710f0cba693082c4985a9197e9e759aa3571eb787,0x08
\ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/curves.xml b/src/cz/crcs/ectester/data/cofactor/curves.xml
index 7cf2a9a..ddc8746 100644
--- a/src/cz/crcs/ectester/data/cofactor/curves.xml
+++ b/src/cz/crcs/ectester/data/cofactor/curves.xml
@@ -88,6 +88,18 @@
prime
cofactor192p2.csv
+
+ cofactor192p4
+ 192
+ prime
+ cofactor192p4.csv
+
+
+ cofactor192p8
+ 192
+ prime
+ cofactor192p8.csv
+
cofactor163t2
--
cgit v1.2.3-70-g09d2
From d9108d4a036363d26d8d83153e98d52e62d1be04 Mon Sep 17 00:00:00 2001
From: J08nY
Date: Tue, 19 Feb 2019 22:24:53 +0100
Subject: Workaround for a Java bug...
---
docs/TESTS.md | 10 +++++-----
src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv | 1 +
src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv | 1 +
src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv | 1 +
src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml | 6 +++---
src/cz/crcs/ectester/reader/command/Command.java | 15 ++++++++++-----
6 files changed, 21 insertions(+), 13 deletions(-)
create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv
create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv
create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv
(limited to 'src/cz/crcs/ectester/data/cofactor')
diff --git a/docs/TESTS.md b/docs/TESTS.md
index a2d3642..5d32d9d 100644
--- a/docs/TESTS.md
+++ b/docs/TESTS.md
@@ -101,9 +101,9 @@ This test suite also does some additional tests with corrupting the parameters:
- G = infinity
- r = 0
- r = 1
- - r = some prime larger than original r (and \[r\]G != infinity)
- - r = some prime smaller than original r (and \[r\]G != infninity)
- - r = some composite number (and \[r\]G != infinity)
+ - r = some prime larger than original r (and [r]G != infinity)
+ - r = some prime smaller than original r (and [r]G != infninity)
+ - r = some composite number (and [r]G != infinity)
- k = 0xff
- k = 0
@@ -123,10 +123,10 @@ by the applet. Operations over such curves are susceptible to small-subgroup att
This is performed over a 160 bit field size, in two passes:
- First pass tests the full range from 2 bits to 152, with more frequent tests towards the beginning and end.
- The second pass tests the range 140 - 158 bits with one bit steps.
-
+
- r = p * q = \|G\|
- r = G = Carmichael number = p * q * s
- - \[r\]G = infinity but r != \|G\|, so \|G\| divides r
+ - [r]G = infinity but r != \|G\|, so \|G\| divides r
## Invalid
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv
new file mode 100644
index 0000000..193f6a7
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv
@@ -0,0 +1 @@
+0xe8e100a50b479105f40c312de4bc7127,0x854c8cdc7389dbb3da8a949ce4598ebe,0x4e592cbd1471bba6dec1106cfa99f969,0x7a6c7f7f8305853831d7c99dd23b03aa,0xa3ad04379cb4789bd64e7d99a7874e0b,0x00010e47ea4c399c7ddb49c9915c3b5d,0xdc93
\ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv
new file mode 100644
index 0000000..80a1eb3
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv
@@ -0,0 +1 @@
+0xdc068a34e30288e08b495798af63ebc7,0xdc068a34e3027b1ccb5209bee1c3ebc7,0xdc054fb5cb170758f9fe7d1b5f63ebc7,0xc0d6edec3ac87edf8499d1885fd03e7b,0x81cb302f36ecd3ff93cd6314ce059e14,0x0000dc136f586930b2b948e64bb6e653,0xfff1
\ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv
new file mode 100644
index 0000000..54da6cc
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv
@@ -0,0 +1 @@
+0xdd94e89ef3fba74afc2a67cb91546a93,0x6cf4828ab4960df2b9fcab3990e3959a,0x80a5c32206c83f769c5ed3e4f5b2ea4e,0xd7a4bb4b7e9ad9e81895caeaeac8b739,0x45ebc51cf353974b02b36b9912de041b,0x0000dd95c634ba30617af48fd4eb321b,0xffff
\ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml b/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml
index 8903688..e010003 100644
--- a/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml
@@ -85,7 +85,7 @@
secp128r1/14
- 0x98b36c442de5c741c70fa80a31d72fa,0x251e9a04ffe799cf4776575be582f108
+ 0x098b36c442de5c741c70fa80a31d72fa,0x251e9a04ffe799cf4776575be582f108
secg/secp128r1
invalid order = 47
@@ -109,7 +109,7 @@
secp128r1/18
- 0x9ce43ec4dcaf95993d8ab00efcc7199a,0x7fb6d895c27bc326a33cb8111e865a9
+ 0x9ce43ec4dcaf95993d8ab00efcc7199a,0x07fb6d895c27bc326a33cb8111e865a9
secg/secp128r1
invalid order = 67
@@ -139,7 +139,7 @@
secp128r1/23
- 0x6803013e75597fb7f83f1f8681af11d,0x32490d391f8a2b1de83212dd218b3a5a
+ 0x06803013e75597fb7f83f1f8681af11d,0x32490d391f8a2b1de83212dd218b3a5a
secg/secp128r1
invalid order = 89
diff --git a/src/cz/crcs/ectester/reader/command/Command.java b/src/cz/crcs/ectester/reader/command/Command.java
index ce35fcc..1ebd8bb 100644
--- a/src/cz/crcs/ectester/reader/command/Command.java
+++ b/src/cz/crcs/ectester/reader/command/Command.java
@@ -29,6 +29,11 @@ import java.util.List;
public abstract class Command implements Cloneable {
CommandAPDU cmd;
CardMngr cardManager;
+ // Workaround for a stupid Java bug that went unfixed for !12! years,
+ // and for the even more stupid module system, which cannot properly work
+ // with the fact that JCardSim has some java.* packages...
+ final byte[] GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM = new byte[]{0};
+
Command(CardMngr cardManager) {
this.cardManager = cardManager;
@@ -336,7 +341,7 @@ public abstract class Command implements Cloneable {
super(cardManager);
this.keyPair = keyPair;
- this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_CLEAR, keyPair, 0x00);
+ this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_CLEAR, keyPair, 0x00, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM);
}
@Override
@@ -486,7 +491,7 @@ public abstract class Command implements Cloneable {
super(cardManager);
this.keyPair = keyPair;
- this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_GENERATE, keyPair, 0);
+ this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_GENERATE, keyPair, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM);
}
@Override
@@ -858,7 +863,7 @@ public abstract class Command implements Cloneable {
public Cleanup(CardMngr cardManager) {
super(cardManager);
- this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_CLEANUP, 0, 0);
+ this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_CLEANUP, 0, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM);
}
@Override
@@ -886,7 +891,7 @@ public abstract class Command implements Cloneable {
public GetInfo(CardMngr cardManager) {
super(cardManager);
- this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_GET_INFO, 0, 0);
+ this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_GET_INFO, 0, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM);
}
@Override
@@ -917,7 +922,7 @@ public abstract class Command implements Cloneable {
super(cardManager);
this.dryRunMode = dryRunMode;
- this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_SET_DRY_RUN_MODE, dryRunMode, 0);
+ this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_SET_DRY_RUN_MODE, dryRunMode, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM);
}
@Override
--
cgit v1.2.3-70-g09d2
From 3beace9c4aa21487b0bc43b483850acd5bf2320d Mon Sep 17 00:00:00 2001
From: J08nY
Date: Thu, 21 Feb 2019 11:33:16 +0100
Subject: Add large cofactor curves to tests.
---
src/cz/crcs/ectester/data/cofactor/curves.xml | 18 ++++++++++++++++++
src/cz/crcs/ectester/data/cofactor/keys.xml | 19 +++++++++++++++++++
2 files changed, 37 insertions(+)
(limited to 'src/cz/crcs/ectester/data/cofactor')
diff --git a/src/cz/crcs/ectester/data/cofactor/curves.xml b/src/cz/crcs/ectester/data/cofactor/curves.xml
index ddc8746..0b8c52e 100644
--- a/src/cz/crcs/ectester/data/cofactor/curves.xml
+++ b/src/cz/crcs/ectester/data/cofactor/curves.xml
@@ -44,6 +44,24 @@
prime
cofactor128p128.csv
+
+ large/cofactor128p56467
+ 128
+ prime
+ cofactor128p56467.csv
+
+
+ large/cofactor128p65521
+ 128
+ prime
+ cofactor128p65521.csv
+
+
+ large/cofactor128p65535
+ 128
+ prime
+ cofactor128p65535.csv
+
cofactor160p2
diff --git a/src/cz/crcs/ectester/data/cofactor/keys.xml b/src/cz/crcs/ectester/data/cofactor/keys.xml
index b4c0c90..2be7238 100644
--- a/src/cz/crcs/ectester/data/cofactor/keys.xml
+++ b/src/cz/crcs/ectester/data/cofactor/keys.xml
@@ -702,4 +702,23 @@
composite/pq/composite256/2
cofactor order = 0x000000000000000000000000000000000000000000000000743bc7ea193d40db
+
+
+ large/cofactor128p56467/0
+ 0x8afd6cc280e0be7163bb6f285a7c6391,0xae64e0f1afc7bd5c75e2f36a7d85f668
+ cofactor/large/cofactor128p56467
+ cofactor order = 0xdc93
+
+
+ large/cofactor128p65521/0
+ 0x70e43816ed51388caa54a68b6c500352,0xab05b43e2cde6086b12350abe79b9175
+ cofactor/large/cofactor128p65521
+ cofactor order = 0xfff1
+
+
+ large/cofactor128p65535/0
+ 0x39d6ea56c3eb6382d2d7a9d327a191fd,0x3ebb3f4626d05df38572af3ae5fa60f2
+ cofactor/large/cofactor128p65535
+ cofactor order = 0xffff
+
--
cgit v1.2.3-70-g09d2