aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/data
diff options
context:
space:
mode:
authorJ08nY2018-07-29 18:34:58 +0200
committerJ08nY2018-07-29 18:34:58 +0200
commitd24630d759bb16f715564ab80a5d4447f57d03f2 (patch)
treec30699e723a8ed31ea354be7e76eb16c1b681f04 /src/cz/crcs/ectester/data
parentcb6c6b8b1274fe5a340c4317a4b015ea0ef15396 (diff)
parent07d0c8947ef0d0f4c0ae01c1d8699d24a892752d (diff)
downloadECTester-d24630d759bb16f715564ab80a5d4447f57d03f2.tar.gz
ECTester-d24630d759bb16f715564ab80a5d4447f57d03f2.tar.zst
ECTester-d24630d759bb16f715564ab80a5d4447f57d03f2.zip
Merge branch 'devel'
Diffstat (limited to 'src/cz/crcs/ectester/data')
-rw-r--r--src/cz/crcs/ectester/data/EC_Store.java54
-rw-r--r--src/cz/crcs/ectester/data/bn/bn158.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn190.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn222.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn254.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn286.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn318.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn350.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn382.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn414.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn446.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn478.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn510.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn542.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn574.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn606.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/bn638.csv1
-rw-r--r--src/cz/crcs/ectester/data/bn/curves.xml100
-rw-r--r--src/cz/crcs/ectester/data/categories.xml55
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor128p128.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor128p16.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor128p2.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor128p32.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor128p4.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor128p64.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor128p8.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor160p16.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor160p2.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor160p32.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor160p4.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor160p64.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor160p8.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor163t128.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor163t16.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor163t2.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor163t32.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor163t4.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor163t64.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor163t8.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor233t128.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor233t16.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor233t2.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor233t32.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor233t4.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor233t64.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/cofactor233t8.csv1
-rw-r--r--src/cz/crcs/ectester/data/cofactor/curves.xml171
-rw-r--r--src/cz/crcs/ectester/data/cofactor/keys.xml707
-rw-r--r--src/cz/crcs/ectester/data/cofactor/secg_keys.xml216
-rw-r--r--src/cz/crcs/ectester/data/composite/carmichael_128.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/carmichael_192.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/carmichael_224.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/carmichael_256.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/carmichael_384.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/carmichael_512.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/carmichael_521.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite128_pq.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite128_pq1.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite128_pq2.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite128_rg0.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite128_small.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite160_pq.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite160_pq1.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite160_pq2.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite160_rg0.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite160_small.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite192_pq.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite192_pq1.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite192_pq2.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite192_rg0.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite192_small.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite224_pq.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite224_pq1.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite224_pq2.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite224_rg0.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite224_small.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite256_pq.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite256_pq1.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite256_pq2.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite256_rg0.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite256_small.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite384.csv2
-rw-r--r--src/cz/crcs/ectester/data/composite/composite384_small.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/composite521.csv2
-rw-r--r--src/cz/crcs/ectester/data/composite/composite521_small.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/curves.xml489
-rw-r--r--src/cz/crcs/ectester/data/composite/keys.xml188
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/10.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/112.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/12.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/128.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/135.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/14.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/140.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/144.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/146.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/148.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/150.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/152.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/152_cofactor.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/16.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/20.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/25.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/2a.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/2b.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/3.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/32.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/4.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/48.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/5.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/6.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/64.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/7.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/70.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/8.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/80.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/90.csv1
-rw-r--r--src/cz/crcs/ectester/data/composite/varying/160/96.csv1
-rw-r--r--src/cz/crcs/ectester/data/degenerate/brainpool.xml362
-rw-r--r--src/cz/crcs/ectester/data/degenerate/keys.xml16
-rw-r--r--src/cz/crcs/ectester/data/degenerate/secg.xml628
-rw-r--r--src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/secg/secp112r1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/secg/secp112r2.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml18
-rw-r--r--src/cz/crcs/ectester/data/invalid/secg/secp128r2.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/secg/secp160r1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/secg/secp160r2.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/secg/secp192r1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/secg/secp224r1.xml19
-rw-r--r--src/cz/crcs/ectester/data/invalid/secg/secp256r1.xml19
-rw-r--r--src/cz/crcs/ectester/data/other/curve25519.csv1
-rw-r--r--src/cz/crcs/ectester/data/other/curves.xml33
-rw-r--r--src/cz/crcs/ectester/data/other/m221.csv1
-rw-r--r--src/cz/crcs/ectester/data/other/m383.csv1
-rw-r--r--src/cz/crcs/ectester/data/other/m511.csv1
-rw-r--r--src/cz/crcs/ectester/data/schema.xsd7
-rw-r--r--src/cz/crcs/ectester/data/supersingular/curves.xml32
-rw-r--r--src/cz/crcs/ectester/data/supersingular/ss128.csv1
-rw-r--r--src/cz/crcs/ectester/data/supersingular/ss192.csv1
-rw-r--r--src/cz/crcs/ectester/data/supersingular/ss224.csv1
-rw-r--r--src/cz/crcs/ectester/data/supersingular/ss256.csv1
-rw-r--r--src/cz/crcs/ectester/data/wrong/curves.xml13
-rw-r--r--src/cz/crcs/ectester/data/wycheproof/keys.xml894
-rw-r--r--src/cz/crcs/ectester/data/wycheproof/results.xml589
152 files changed, 4873 insertions, 123 deletions
diff --git a/src/cz/crcs/ectester/data/EC_Store.java b/src/cz/crcs/ectester/data/EC_Store.java
index e4ba40c..cb65402 100644
--- a/src/cz/crcs/ectester/data/EC_Store.java
+++ b/src/cz/crcs/ectester/data/EC_Store.java
@@ -21,9 +21,8 @@ import javax.xml.validation.SchemaFactory;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
-import java.util.TreeMap;
+import java.util.*;
+import java.util.function.Function;
/**
* @author Jan Jancar johny@neuromancer.sk
@@ -42,6 +41,7 @@ public class EC_Store {
dbf.setSchema(sch);
dbf.setNamespaceAware(true);
dbf.setIgnoringComments(true);
+ dbf.setXIncludeAware(true);
dbf.setIgnoringElementContentWhitespace(true);
db = dbf.newDocumentBuilder();
db.setErrorHandler(new ErrorHandler() {
@@ -153,7 +153,7 @@ public class EC_Store {
InputStream csv = parseDataElement(dir, curveElem);
if (!curve.readCSV(csv)) {
- throw new IOException("Invalid csv data.");
+ throw new IOException("Invalid csv data." + id.getTextContent());
}
csv.close();
@@ -219,7 +219,7 @@ public class EC_Store {
InputStream csv = parseDataElement(dir, elem);
if (!kaResult.readCSV(csv)) {
- throw new IOException("Invalid csv data.");
+ throw new IOException("Invalid csv data. " + id.getTextContent());
}
csv.close();
@@ -257,7 +257,7 @@ public class EC_Store {
InputStream csv = parseDataElement(dir, elem);
if (!result.readCSV(csv)) {
- throw new IOException("Invalid CSV data.");
+ throw new IOException("Invalid CSV data. " + id.getTextContent());
}
csv.close();
@@ -319,6 +319,48 @@ public class EC_Store {
return getObject(objClass, query.substring(0, split), query.substring(split + 1));
}
+ private static <T extends EC_Data> List<Map.Entry<EC_Curve, List<T>>> mapKeyToCurve(Collection<T> data, Function<T, String> getter) {
+ Map<EC_Curve, List<T>> curves = new TreeMap<>();
+ for (T item : data) {
+ EC_Curve curve = EC_Store.getInstance().getObject(EC_Curve.class, getter.apply(item));
+ List<T> curveKeys = curves.getOrDefault(curve, new LinkedList<>());
+ curveKeys.add(item);
+ curves.putIfAbsent(curve, curveKeys);
+ }
+ for (List<T> keyList : curves.values()) {
+ Collections.sort(keyList);
+ }
+ List<Map.Entry<EC_Curve, List<T>>> curveList = new LinkedList<>();
+ curveList.addAll(curves.entrySet());
+ Comparator<Map.Entry<EC_Curve, List<T>>> c = Comparator.comparing(Map.Entry::getKey);
+ return curveList;
+ }
+
+ public static <T extends EC_Key> List<Map.Entry<EC_Curve, List<T>>> mapKeyToCurve(Collection<T> keys) {
+ return mapKeyToCurve(keys, EC_Key::getCurve);
+ }
+
+ public static List<Map.Entry<EC_Curve, List<EC_KAResult>>> mapResultToCurve(Collection<EC_KAResult> results) {
+ return mapKeyToCurve(results, EC_KAResult::getCurve);
+ }
+
+ public static <T extends EC_Data> List<Map.Entry<String, List<T>>> mapToPrefix(Collection<T> data) {
+ Map<String, List<T>> groups = new TreeMap<>();
+ for (T item : data) {
+ String prefix = item.getId().split("/")[0];
+ List<T> group = groups.getOrDefault(prefix, new LinkedList<>());
+ group.add(item);
+ groups.putIfAbsent(prefix, group);
+ }
+ for (List<T> itemList : groups.values()) {
+ Collections.sort(itemList);
+ }
+ List<Map.Entry<String, List<T>>> result = new LinkedList<>();
+ result.addAll(groups.entrySet());
+ result.sort(Comparator.comparing(Map.Entry::getKey));
+ return result;
+ }
+
public static EC_Store getInstance() {
if (instance == null) {
instance = new EC_Store();
diff --git a/src/cz/crcs/ectester/data/bn/bn158.csv b/src/cz/crcs/ectester/data/bn/bn158.csv
new file mode 100644
index 0000000..2e3b6b7
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn158.csv
@@ -0,0 +1 @@
+0x24240D8241D5445106C8442084001384E0000013,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000011,0x24240D8241D5445106C8442084001384E0000012,0x0000000000000000000000000000000000000004,0x24240D8241D5445106C7E3F07E0010842000000D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn190.csv b/src/cz/crcs/ectester/data/bn/bn190.csv
new file mode 100644
index 0000000..feb225b
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn190.csv
@@ -0,0 +1 @@
+0x240001B0000948001E60004134005F10005DC0003A800013,0x000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000001001,0x240001B0000948001E60004134005F10005DC0003A800012,0x000000000000000000000000000000000000000000000040,0x240001B0000948001E600040D4005CD0005760003180000D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn222.csv b/src/cz/crcs/ectester/data/bn/bn222.csv
new file mode 100644
index 0000000..89038b3
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn222.csv
@@ -0,0 +1 @@
+0x23DC0D7DC02402CDE486F4C00015B5215C0000004C6CE00000000067,0x00000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000101,0x23DC0D7DC02402CDE486F4C00015B5215C0000004C6CE00000000066,0x00000000000000000000000000000000000000000000000000000010,0x23DC0D7DC02402CDE486F4C00015555156000000496DA00000000061,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn254.csv b/src/cz/crcs/ectester/data/bn/bn254.csv
new file mode 100644
index 0000000..de71c5d
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn254.csv
@@ -0,0 +1 @@
+0x2523648240000001BA344D80000000086121000000000013A700000000000013,0x0000000000000000000000000000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000000000000000000000000002,0x2523648240000001BA344D80000000086121000000000013A700000000000012,0x0000000000000000000000000000000000000000000000000000000000000001,0x2523648240000001BA344D8000000007FF9F800000000010A10000000000000D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn286.csv b/src/cz/crcs/ectester/data/bn/bn286.csv
new file mode 100644
index 0000000..46d677e
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn286.csv
@@ -0,0 +1 @@
+0x240900D8991B25B0E2CB51DDA534A205391892080A008108000853813800138000000013,0x000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000002,0x240900D8991B25B0E2CB51DDA534A205391892080A008108000853813800138000000012,0x000000000000000000000000000000000000000000000000000000000000000000000001,0x240900D8991B25B0E2CB51DDA534A205391831FC099FC0FC0007F081080010800000000D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn318.csv b/src/cz/crcs/ectester/data/bn/bn318.csv
new file mode 100644
index 0000000..bc431fe
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn318.csv
@@ -0,0 +1 @@
+0x24009000D800900024075015F015F0075000008F411E808F4000000004E484E4800000000000101B,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000000000000000000000000000002,0x24009000D800900024075015F015F0075000008F411E808F4000000004E484E4800000000000101A,0x00000000000000000000000000000000000000000000000000000000000000000000000000000001,0x24009000D800900024075015F015F0075000008EE11DC08EE000000004DB84DB8000000000000FE5,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn350.csv b/src/cz/crcs/ectester/data/bn/bn350.csv
new file mode 100644
index 0000000..237a255
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn350.csv
@@ -0,0 +1 @@
+0x23FFB80035FFEE24020A01CAFD738EC3F24B475EBC0AD0F6A0530FD78443FDF01A3FF64084000004E0000013,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000002,0x23FFB80035FFEE24020A01CAFD738EC3F24B475EBC0AD0F6A0530FD78443FDF01A3FF64084000004E0000012,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x23FFB80035FFEE24020A01CAFD738EC3F24B475EBC0A70F70052F7D78413FE08173FF7C07E0000042000000D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn382.csv b/src/cz/crcs/ectester/data/bn/bn382.csv
new file mode 100644
index 0000000..955882a
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn382.csv
@@ -0,0 +1 @@
+0x240026400F3D82B2E42DE125B00158405B710818AC00000840046200950400000000001380052E000000000000000013,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002,0x240026400F3D82B2E42DE125B00158405B710818AC00000840046200950400000000001380052E000000000000000012,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x240026400F3D82B2E42DE125B00158405B710818AC000007E0042F008E3E00000000001080046200000000000000000D,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/bn/bn414.csv b/src/cz/crcs/ectester/data/bn/bn414.csv
new file mode 100644
index 0000000..0c7eb66
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn414.csv
@@ -0,0 +1 @@
+0x240024000D7EE23F2823CA035D31B144364C75E59AEFFF60544845142000765EFFF7C0000021138004DFFFFFD900000000000013,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002,0x240024000D7EE23F2823CA035D31B144364C75E59AEFFF60544845142000765EFFF7C0000021138004DFFFFFD900000000000012,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x240024000D7EE23F2823CA035D31B144364C75E59AEFFF605447E513F00070607FF82000001F9080041FFFFFDF0000000000000D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn446.csv b/src/cz/crcs/ectester/data/bn/bn446.csv
new file mode 100644
index 0000000..a0a525e
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn446.csv
@@ -0,0 +1 @@
+0x2400000000000000002400000002D00000000D800000021C0000001800000000870000000B0400000057C00000015C000000132000000067,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101,0x2400000000000000002400000002D00000000D800000021C0000001800000000870000000B0400000057C00000015C000000132000000066,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010,0x2400000000000000002400000002D00000000D800000021C00000017A0000000870000000AD400000054C000000156000000126000000061,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn478.csv b/src/cz/crcs/ectester/data/bn/bn478.csv
new file mode 100644
index 0000000..9c2640a
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn478.csv
@@ -0,0 +1 @@
+0x23FFFFFFFFFFFFFEDFFFFFFFEE0001B3600000006BFFF5DB835FFF5D28085442328002888F96F2944D7DED781430FFD780065FFF010020FFFD900013,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002,0x23FFFFFFFFFFFFFEDFFFFFFFEE0001B3600000006BFFF5DB835FFF5D28085442328002888F96F2944D7DED781430FFD780065FFF010020FFFD900012,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x23FFFFFFFFFFFFFEDFFFFFFFEE0001B3600000006BFFF5DB835FFF5D2807F442328002888F9872944D7E0578112F7FD780062FFF07001F7FFDF0000D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn510.csv b/src/cz/crcs/ectester/data/bn/bn510.csv
new file mode 100644
index 0000000..9dc79b3
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn510.csv
@@ -0,0 +1 @@
+0x2400000000000000003F000000000001B0002958000000000237000C0F0000084000F8100151A400073800242D00001380019440000000000888000000000013,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101,0x2400000000000000003F000000000001B0002958000000000237000C0F0000084000F8100151A400073800242D00001380019440000000000888000000000012,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010,0x2400000000000000003F000000000001B0002958000000000237000C0F000007E000F8100151A40006E400242D000010800181E000000000073800000000000D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn542.csv b/src/cz/crcs/ectester/data/bn/bn542.csv
new file mode 100644
index 0000000..1a50175
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn542.csv
@@ -0,0 +1 @@
+0x2400090000D80009000024000090001B01B1B051090510001B00D8001B0510D8A2084511080008D000090510005110800108138025380001B00000084000001380000013,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002,0x2400090000D80009000024000090001B01B1B051090510001B00D8001B0510D8A2084511080008D000090510005110800108138025380001B00000084000001380000012,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x2400090000D80009000024000090001B01B1B051090510001B00D8001B0510D8A207E510FC0008700009051000510FC000FC108025080001B0000007E00000108000000D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn574.csv b/src/cz/crcs/ectester/data/bn/bn574.csv
new file mode 100644
index 0000000..1d547c7
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn574.csv
@@ -0,0 +1 @@
+0x2400023FFFFB7FFF4C00002400167FFFEE01AEE014423FAEFFFB5C000A200050FFFF2808400041FFFE73FFF7C000210000000000001380004DFFFD90000000000000000000000013,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002,0x2400023FFFFB7FFF4C00002400167FFFEE01AEE014423FAEFFFB5C000A200050FFFF2808400041FFFE73FFF7C000210000000000001380004DFFFD90000000000000000000000012,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x2400023FFFFB7FFF4C00002400167FFFEE01AEE014423FAEFFFB5C000A200050FFFF2807E0003EFFFE85FFF820001F80000000000010800041FFFDF000000000000000000000000D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn606.csv b/src/cz/crcs/ectester/data/bn/bn606.csv
new file mode 100644
index 0000000..f488ab2
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn606.csv
@@ -0,0 +1 @@
+0x23FFFFFFFFFFFEE00000000000036000000241AFFB7FFFFFF275E0024000001B1440000D94482DF27FFFC9AEDF0000000036512100245142137FFFFFB75D7BD900000000000000246C844E13,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002,0x23FFFFFFFFFFFEE00000000000036000000241AFFB7FFFFFF275E0024000001B1440000D94482DF27FFFC9AEDF0000000036512100245142137FFFFFB75D7BD900000000000000246C844E12,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x23FFFFFFFFFFFEE00000000000036000000241AFFB7FFFFFF275E0024000001B1440000D9447CDF27FFFC9AEE08000000036511F8024513F107FFFFFB75D81DF00000000000000246C7E420D,0x01
diff --git a/src/cz/crcs/ectester/data/bn/bn638.csv b/src/cz/crcs/ectester/data/bn/bn638.csv
new file mode 100644
index 0000000..cb54f9b
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/bn638.csv
@@ -0,0 +1 @@
+0x23FFFFFDC000000D7FFFFFB8000001D3FFFFF942D000165E3FFF94870000D52FFFFDD0E00008DE55C00086520021E55BFFFFF51FFFF4EB800000004C80015ACDFFFFFFFFFFFFECE00000000000000067,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101,0x23FFFFFDC000000D7FFFFFB8000001D3FFFFF942D000165E3FFF94870000D52FFFFDD0E00008DE55C00086520021E55BFFFFF51FFFF4EB800000004C80015ACDFFFFFFFFFFFFECE00000000000000066,0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010,0x23FFFFFDC000000D7FFFFFB8000001D3FFFFF942D000165E3FFF94870000D52FFFFDD0E00008DE55600086550021E555FFFFF54FFFF4EAC000000049800154D9FFFFFFFFFFFFEDA00000000000000061,0x01
diff --git a/src/cz/crcs/ectester/data/bn/curves.xml b/src/cz/crcs/ectester/data/bn/curves.xml
new file mode 100644
index 0000000..ddf2263
--- /dev/null
+++ b/src/cz/crcs/ectester/data/bn/curves.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<curves xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../schema.xsd">
+ <curve>
+ <id>bn158</id>
+ <bits>158</bits>
+ <field>prime</field>
+ <file>bn158.csv</file>
+ </curve>
+ <curve>
+ <id>bn190</id>
+ <bits>190</bits>
+ <field>prime</field>
+ <file>bn190.csv</file>
+ </curve>
+ <curve>
+ <id>bn222</id>
+ <bits>222</bits>
+ <field>prime</field>
+ <file>bn222.csv</file>
+ </curve>
+ <curve>
+ <id>bn254</id>
+ <bits>254</bits>
+ <field>prime</field>
+ <file>bn254.csv</file>
+ </curve>
+ <curve>
+ <id>bn286</id>
+ <bits>286</bits>
+ <field>prime</field>
+ <file>bn286.csv</file>
+ </curve>
+ <curve>
+ <id>bn318</id>
+ <bits>318</bits>
+ <field>prime</field>
+ <file>bn318.csv</file>
+ </curve>
+ <curve>
+ <id>bn350</id>
+ <bits>350</bits>
+ <field>prime</field>
+ <file>bn350.csv</file>
+ </curve>
+ <curve>
+ <id>bn382</id>
+ <bits>382</bits>
+ <field>prime</field>
+ <file>bn382.csv</file>
+ </curve>
+ <curve>
+ <id>bn414</id>
+ <bits>414</bits>
+ <field>prime</field>
+ <file>bn414.csv</file>
+ </curve>
+ <curve>
+ <id>bn446</id>
+ <bits>446</bits>
+ <field>prime</field>
+ <file>bn446.csv</file>
+ </curve>
+ <curve>
+ <id>bn478</id>
+ <bits>478</bits>
+ <field>prime</field>
+ <file>bn478.csv</file>
+ </curve>
+ <curve>
+ <id>bn510</id>
+ <bits>510</bits>
+ <field>prime</field>
+ <file>bn510.csv</file>
+ </curve>
+ <curve>
+ <id>bn542</id>
+ <bits>542</bits>
+ <field>prime</field>
+ <file>bn542.csv</file>
+ </curve>
+ <curve>
+ <id>bn574</id>
+ <bits>574</bits>
+ <field>prime</field>
+ <file>bn574.csv</file>
+ </curve>
+ <curve>
+ <id>bn606</id>
+ <bits>606</bits>
+ <field>prime</field>
+ <file>bn606.csv</file>
+ </curve>
+ <curve>
+ <id>bn638</id>
+ <bits>638</bits>
+ <field>prime</field>
+ <file>bn638.csv</file>
+ </curve>
+</curves> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/categories.xml b/src/cz/crcs/ectester/data/categories.xml
index f123b6a..38ce683 100644
--- a/src/cz/crcs/ectester/data/categories.xml
+++ b/src/cz/crcs/ectester/data/categories.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<categories xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schema.xsd">
+ <!-- Standard curves -->
<category>
<name>anomalous</name>
<directory>anomalous</directory>
@@ -32,24 +33,51 @@
<desc>GOST R 34.10-2001: RFC5832</desc>
</category>
<category>
- <name>composite</name>
- <directory>composite</directory>
- <desc>Composite order curves, with points of very small order pregenerated.</desc>
+ <name>x962</name>
+ <directory>x962</directory>
+ <desc>ANSI X9.62 example curves.</desc>
</category>
<category>
- <name>wrong</name>
- <directory>wrong</directory>
- <desc>Wrong field curves. These should definitely give an error when used. Since the "prime" used for the field are not prime, and the field polynomials are also not irreducible. Simply put these parameters don't specify a valid elliptic curve.</desc>
+ <name>Barreto-Naehrig</name>
+ <directory>bn</directory>
+ <desc>Barreto-Naehrig curves from: A Family of Implementation-Friendly BN Elliptic Curves - https://eprint.iacr.org/2010/429.pdf.</desc>
</category>
<category>
+ <name>other</name>
+ <directory>other</directory>
+ <desc>An assortment of some other curves.</desc>
+ </category>
+
+ <!-- Custom curves -->
+ <category>
<name>invalid</name>
<directory>invalid</directory>
- <desc></desc>
+ <desc>Invalid curves and points on them for common standard named curves.</desc>
</category>
<category>
<name>twist</name>
<directory>twist</directory>
- <desc></desc>
+ <desc>Points on quadratic twists of common standard named curves.</desc>
+ </category>
+ <category>
+ <name>degenerate</name>
+ <directory>degenerate</directory>
+ <desc>Points on degenerate curves for common standard named curves.</desc>
+ </category>
+ <category>
+ <name>cofactor</name>
+ <directory>cofactor</directory>
+ <desc>Curves of order n * p, with p prime and n in {2,4,8,16,32,64,128}. Generator of order p, with points on the subgroup of order n.</desc>
+ </category>
+ <category>
+ <name>composite</name>
+ <directory>composite</directory>
+ <desc>Composite order curves, with points of very small order pre-generated. Also curves with order of a product of two large primes.</desc>
+ </category>
+ <category>
+ <name>wrong</name>
+ <directory>wrong</directory>
+ <desc>Wrong field curves. These should definitely give an error when used. Since the "prime" used for the field is not prime, and the field polynomials are also not irreducible. Simply put these parameters don't specify a valid elliptic curve.</desc>
</category>
<category>
<name>test</name>
@@ -57,8 +85,13 @@
<desc>Test vectors</desc>
</category>
<category>
- <name>x962</name>
- <directory>x962</directory>
- <desc>ANSI X9.62 example curves.</desc>
+ <name>wycheproof</name>
+ <directory>wycheproof</directory>
+ <desc>Test cases from google Wycheproof project: https://github.com/google/wycheproof</desc>
+ </category>
+ <category>
+ <name>supersingular</name>
+ <directory>supersingular</directory>
+ <desc>Some supersingular curves, over F_p with order equal to p + 1.</desc>
</category>
</categories> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p128.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p128.csv
new file mode 100644
index 0000000..58459f6
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p128.csv
@@ -0,0 +1 @@
+0xb0b4005fd28fe7fb494b680e5ad7e1f5,0x6409a6ac9e446c1fa2c1432cbbd17c23,0x646e70d0490d799b8664d791cf34c9a8,0x1b3bdc3ea1be0329a69f6bb398437628,0x2fb05dc71eba40937f233c8d5d672ebb,0x1616800bfa51fcff7618e79d118d6b1,0x80 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p16.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p16.csv
new file mode 100644
index 0000000..181c47c
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p16.csv
@@ -0,0 +1 @@
+0xf723fda094465e1328ca65dfe04ae01b,0x5c1145c56795ae08d3f96d7451db5389,0x3eafb22339feab41ab6069ec1188ea7d,0x6ec8bbabff3e264c59d152c03a29fb26,0x8c8e8e721c8817528cd243667d023095,0xf723fda094465e13cb5a5cc981c945f,0x10 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p2.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p2.csv
new file mode 100644
index 0000000..d9857d8
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p2.csv
@@ -0,0 +1 @@
+0xf07c2775c51f358b8bdab54821aaa5ab,0x54e4afb6f93de32081be13f858262bc7,0xe13c739a7fe7f62812babb3cba8c6b1f,0x43cefc1ddc7d6936b0db49ecb4b8c4d9,0x52579151eb2779295b75cd7226895abb,0x783e13bae28f9ac60c18591fe953fbf7,0x2 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p32.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p32.csv
new file mode 100644
index 0000000..9673835
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p32.csv
@@ -0,0 +1 @@
+0x8d4ee802a67d0de73b9ec4f1a70227b7,0x70b4c15289f93fbc9247509fc9085396,0x04dfb7818caa18da2a60b50f0056a62b,0x09907655c9579e02b30534529dc0031a,0x365f28ab09d64508b47519fea58f4035,0x46a77401533e86f405231d0d851b3d9,0x20 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p4.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p4.csv
new file mode 100644
index 0000000..44363ad
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p4.csv
@@ -0,0 +1 @@
+0x94d9020b666fbb599609485472a9246f,0x8220ebe30c27e10f945b0c2cdfe6dcaa,0x1914928b1a349161061165128629ea88,0x6a1a526fe3d4f719082872b2d149a90f,0x423351dae6533a1a916b151cd0783165,0x25364082d99beed620f8082db41374e7,0x4 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p64.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p64.csv
new file mode 100644
index 0000000..35a5ecc
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p64.csv
@@ -0,0 +1 @@
+0xc3d6db041a0c509309d706a52a9ae20d,0x6234008af9a67b1a0cf123a38a46d0fb,0x65ca327cc79249fd9b4f3a1c15890787,0x57c0a37da59815687f752f724f015b21,0x9136e347e107c2f5face9abd739f6a82,0x30f5b6c1068314251fbe0d341f0c569,0x40 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p8.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p8.csv
new file mode 100644
index 0000000..94d4b4e
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p8.csv
@@ -0,0 +1 @@
+0xe65f3e99554260c832ee6c21ec3ac437,0x0ff5c77f9c00ad42c58878e9510a059e,0x0652b998c3bfeefe20afc97a2b6595f4,0xc8a6fef9cbda700c097a1c3ddcaf3d0d,0x602bc0de98577bf266432e60fabe4946,0x1ccbe7d32aa84c191817ef7e51812989,0x8 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p16.csv b/src/cz/crcs/ectester/data/cofactor/cofactor160p16.csv
new file mode 100644
index 0000000..4d82274
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor160p16.csv
@@ -0,0 +1 @@
+0x85836f09b17d1ec0cdeda21b55485e18dd968323,0x5480f9557c649a8e30f1e1256d07b0e32483ac68,0x0ecd880812f41c97be8b5daf1865725753b2ba37,0x16e1dd32469e75aa72a1dc48b78587b18e4f9874,0x70920054032065a09fad53a3ca69de634634a421,0x85836f09b17d1ec0cdecfe96b46937bbf135dab,0x10 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p2.csv b/src/cz/crcs/ectester/data/cofactor/cofactor160p2.csv
new file mode 100644
index 0000000..54717af
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor160p2.csv
@@ -0,0 +1 @@
+0xd3622579d76435736f05756763249bb0facdc4a3,0xa645cc4161eb7cd8839b6e26c3efb6734b5bdc65,0xb1900e655c426daea7b80fecdd77ba19a9bb473c,0x2cfbf234e0d99ce44fdaedd2ec2e01558e6d7fd7,0x1495986fef15ada29c39866ac03ddc934589dffc,0x69b112bcebb21ab9b782a0dac36ea8fa7be5fd1b,0x2 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p32.csv b/src/cz/crcs/ectester/data/cofactor/cofactor160p32.csv
new file mode 100644
index 0000000..75238ea
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor160p32.csv
@@ -0,0 +1 @@
+0x91634da0ec681dd6ba65beaf596d82b262b4cded,0x747c9302638253325e847cb5f0cf71134e672ec5,0x68ac504eba7a475a52b2bff92b5b77fb16f124b8,0x721dbbff58bc41dff64da7bd7a45d9892f659306,0x6d353cfdf9570402ccd11b9651a2d4be5d4f1853,0x48b1a6d076340eeb5d33371825941b3e0012e99,0x20 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p4.csv b/src/cz/crcs/ectester/data/cofactor/cofactor160p4.csv
new file mode 100644
index 0000000..760dbef
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor160p4.csv
@@ -0,0 +1 @@
+0x93ab454ad26dae3b521d5b61a48c94cab3c4aa9d,0x4b2d384edb6b10bdaf4c608cc5aff078c4c58e38,0x35bc442cc9f7fe4317cf36d4f411c98f26956527,0x216d191d642aab59fca4ec18b95e11a298da5a00,0x09d9b5f44253719aeb44d3986c40ee3d9c9d86c9,0x24ead152b49b6b8ed4874ccca8f78da90add8ceb,0x4 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p64.csv b/src/cz/crcs/ectester/data/cofactor/cofactor160p64.csv
new file mode 100644
index 0000000..4cdcfdc
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor160p64.csv
@@ -0,0 +1 @@
+0xfe2a2fe87bef6a429245c029cf205f06e16cd249,0xc42dc19e1c0c0b0dd27758d2787d526b25ad89b5,0xf72edb299fab1b613708d4165ededab65350fe6c,0x104a825944921b469704babb2727e5f8a829f2e1,0x8b955a5059e68cc0e932bbdb90fe81730c8e4d19,0x3f8a8bfa1efbda90a4917c6c340f970a5fce9c3,0x40 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p8.csv b/src/cz/crcs/ectester/data/cofactor/cofactor160p8.csv
new file mode 100644
index 0000000..60ca98e
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor160p8.csv
@@ -0,0 +1 @@
+0xe40476bfeb2a3fd21ad80c102aad29f61cec5eaf,0x544ccbf7202e6b6d27fc19a3587eecc4ec665430,0x86690f7849e1707b28c24b718e7ffa36b55677b5,0x836cee7bcecb29d171c4bd9a1b4943e8159e4708,0xa0add6ab4a0729fd2719e5767abfc4d4c49ff802,0x1c808ed7fd6547fa435b03ffd3b931cccc8c098f,0x8 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t128.csv b/src/cz/crcs/ectester/data/cofactor/cofactor163t128.csv
new file mode 100644
index 0000000..c748587
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor163t128.csv
@@ -0,0 +1 @@
+0xa3,0x8,0x2,0x1,0x02391521a0d15b5eee4cae4cb3628d79479cb15700,0x004095708f687ea59f768ee27e167117b9401c223e,0x01925be8ca3bbee060bd2041c5fe0652be1f2d8942,0x024e103317a95c4d6c5b731c67d87688dd15a3cf7d,0x1000000000000000000001b01bb79598eedfebcf,0x80
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t16.csv b/src/cz/crcs/ectester/data/cofactor/cofactor163t16.csv
new file mode 100644
index 0000000..decdad3
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor163t16.csv
@@ -0,0 +1 @@
+0xa3,0x8,0x2,0x1,0x0574f63f2c0fc757663ccda72b2ec8a37e7c84dfbc,0x03816a247d9618c4d1431793a2b9aaa8c5235ba047,0x074e2cfe3199fe1d5fb2cd8cc2e9aa8bf82ec4e90a,0x02942efd0f0619aaabd77de3f48da81138ab6dccc6,0x7fffffffffffffffffffbd3a47e6e6c2e2d09335,0x10
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t2.csv b/src/cz/crcs/ectester/data/cofactor/cofactor163t2.csv
new file mode 100644
index 0000000..d837a28
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor163t2.csv
@@ -0,0 +1 @@
+0xa3,0x8,0x2,0x1,0x020e850e21d5bfce24ff184c220ea69b20bad05c65,0x0547b079a38b6094672f6cb5adefa94ba1a29d977b,0x0156bee74ac2552ee999cff24e1d7c471ffc17d0c7,0x04a955c7e3b3534d9fd168d9fbffea3acca23c1fdd,0x400000000000000000001e699c7714c35b242f43b,0x2 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t32.csv b/src/cz/crcs/ectester/data/cofactor/cofactor163t32.csv
new file mode 100644
index 0000000..2b88982
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor163t32.csv
@@ -0,0 +1 @@
+0xa3,0x8,0x2,0x1,0x04a4e7bb96ff9007b4be8097c5c4e36701e3f22aa8,0x020d55ea20c74a09f86cc1b2ecf2d073f46ad9b7fa,0x05f7347502518870fc7419e2d0e3170d5b04333a48,0x05951c6d70c789d60bd25b2519416dc756da26d320,0x3fffffffffffffffffffe88d1f6ec2029eaf4f9d,0x20
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t4.csv b/src/cz/crcs/ectester/data/cofactor/cofactor163t4.csv
new file mode 100644
index 0000000..61f7b03
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor163t4.csv
@@ -0,0 +1 @@
+0xa3,0x8,0x2,0x1,0x027b506a68264c13994a74473ebd0506ce33921b00,0x0483681d34fdc0544a690cd8363ef6876bc9df5b09,0x051d0095b0d49e8b9b2e38a49ab58abb28b8301349,0x0427559b4db514f0659cbc45a1a785ff3c32f0d0c5,0x1fffffffffffffffffffff89941a8461c966379ad,0x4 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t64.csv b/src/cz/crcs/ectester/data/cofactor/cofactor163t64.csv
new file mode 100644
index 0000000..6d3ee91
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor163t64.csv
@@ -0,0 +1 @@
+0xa3,0x8,0x2,0x1,0x041a27de41f0e09c7cd4ff65fe10d472c9ca652ea1,0x00b27568b80c64d610ffdde6b3f520df0e0c499aa8,0x04f3cce508325c822a5e04044014d785e9b55ef95e,0x010021cb58589ea7cc7a8caea926276eb32db24b45,0x1ffffffffffffffffffff192d95b4d882a5ee3b9,0x40
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t8.csv b/src/cz/crcs/ectester/data/cofactor/cofactor163t8.csv
new file mode 100644
index 0000000..349e874
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor163t8.csv
@@ -0,0 +1 @@
+0xa3,0x8,0x2,0x1,0x0183b7c0268ef09222560b602c9444aeb218a9b1c8,0x0035948fa062ffab3e7e63de769fec1407c6b85c6c,0x04d3aaef5f5075d1bbf92e9a5393af45b6946e2074,0x041df30932c95f4732fd59593e11aef8bb46ef3b6c,0x100000000000000000000762c81022ff40e2843f1,0x8 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t128.csv b/src/cz/crcs/ectester/data/cofactor/cofactor233t128.csv
new file mode 100644
index 0000000..48505d4
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor233t128.csv
@@ -0,0 +1 @@
+0xe9,0x4a,0x0,0x0,0x010ce87b92d6866c18d14efba7025388574f670476169b09929bbe2b7a4a,0x001ab1f0aecfe5ee45923aad73ea5fa24b554f91ff41a8fd5529d55e76f8,0x009d7d0edc1868aa15931051f8b084e25e8b0f2098994483cab3737c021e,0x01f663c194c41dd386976d105acd3be135ceb5f0d69f932565bc4706e2a9,0x3ffffffffffffffffffffffffffffd7489d946218417d25b50e07c781,0x80 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t16.csv b/src/cz/crcs/ectester/data/cofactor/cofactor233t16.csv
new file mode 100644
index 0000000..d838407
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor233t16.csv
@@ -0,0 +1 @@
+0xe9,0x4a,0x0,0x0,0x017e449f630dcabb0206c5d3d788c030f5b817f7a9b37e9a851aa511e3b9,0x0134978d6868f9c83bfee60f609e31efa87910ccbe160ef2096fe06dc179,0x00bbcfcfdfb70ec830fb88d68d78dbbceaacd5d072194bf584e5e13c82a7,0x0177b6ab31a325d0e23664224bef711cdf9c2abb9f4016777519ead3c1be,0x1ffffffffffffffffffffffffffffec2ff067f4db9e97b04f2f6e5cac3,0x10 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t2.csv b/src/cz/crcs/ectester/data/cofactor/cofactor233t2.csv
new file mode 100644
index 0000000..61a945f
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor233t2.csv
@@ -0,0 +1 @@
+0xe9,0x4a,0x0,0x0,0x019a6dad09843e156188ee96105aa483897804180dc3f47e9ffed7b51d76,0x00bc002063484a714b1ca2a677fe17fb6c27843689568889c6d3088efce0,0x0117230ce450dd966713f13cfab77972da6680aaad37bc6409b4d153b36a,0x0071b5d13375216cf1e0ddc0bd2b243bad4a91f55c724b7d68af2db21602,0xfffffffffffffffffffffffffffff7359ae340ea86da4edade0cf53e23,0x2 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t32.csv b/src/cz/crcs/ectester/data/cofactor/cofactor233t32.csv
new file mode 100644
index 0000000..4f14dfe
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor233t32.csv
@@ -0,0 +1 @@
+0xe9,0x4a,0x0,0x0,0x013c676464927c22282b42616b5d5e09a85468727495eae00e57afd170b8,0x009c6a29ca055f2c9b6714f529a83151c68f44bdbdf86d2f87a40cd8d8ec,0x01d12094657da0b94c14ab67b1ce85c4b16042e29b65ace2e448f4b3b8fd,0x012862bf9015dc35bf721429723ebf870cd026aff3acdc4282d0ff8f847f,0xfffffffffffffffffffffffffffffe6f9adb7f42e7c7ed65369ce8495,0x20 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t4.csv b/src/cz/crcs/ectester/data/cofactor/cofactor233t4.csv
new file mode 100644
index 0000000..1972de2
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor233t4.csv
@@ -0,0 +1 @@
+0xe9,0x4a,0x0,0x0,0x01d16ca19fdddd29cbef9f7d8edcd5bd5a2e51b1331f456d9a7c07ee40ef,0x00b59ca10c75cab015f7932ea7791a90d0edecba979a8ddaeca053d802b8,0x0163e7db23aacfce4573c1c72a8e09d064a5b99e3975ddbeb38ea66dd115,0x012a42b5d1b9614640705e86637fd3d5df1e988d843feab2df701ed0d2b3,0x8000000000000000000000000000061aa6c6684ad065bd4087bc36316d,0x4 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t64.csv b/src/cz/crcs/ectester/data/cofactor/cofactor233t64.csv
new file mode 100644
index 0000000..df9e357
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor233t64.csv
@@ -0,0 +1 @@
+0xe9,0x4a,0x0,0x0,0x003037f3c3b8be56c1b40f21898a14c0506810a2c2edee866d98d155bafe,0x010c0d410fef2163d820cf726df422e57f28ecb380587a8a166217b49fbf,0x01d00a40f4a7da1dfc8f87b8fc9981beebec0a5336452a7732c3216a5d71,0x0077dc35e9d9a730d80a7f5e22e8df145ea82ee8bd7bc178a9d14f3d6e4f,0x7fffffffffffffffffffffffffffff58ae3a5ab58e4794d5a0d31a0df,0x40 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t8.csv b/src/cz/crcs/ectester/data/cofactor/cofactor233t8.csv
new file mode 100644
index 0000000..43f6705
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/cofactor233t8.csv
@@ -0,0 +1 @@
+0xe9,0x4a,0x0,0x0,0x01c2ddc23a454bacf481ab17cd223d5b9b452c50de07c65c4eb3bb2a6c2f,0x01db7ca30cf0915e8ee53c3ba32371bc73a73f4f499839257a861f6123f8,0x0101da5b2520f16fba2d08f3687db69862ecfec9aa3cd81e3a53120c596c,0x0095d00741d7dc2119cb427b8a0dd77a2bcaef233086dd7704a438e0294e,0x3ffffffffffffffffffffffffffffc34eca9e37b884d13683d26dc874f,0x8 \ 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
new file mode 100644
index 0000000..bb8a905
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/curves.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<curves xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../schema.xsd">
+
+ <curve>
+ <id>cofactor128p2</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>cofactor128p2.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor128p4</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>cofactor128p4.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor128p8</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>cofactor128p8.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor128p16</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>cofactor128p16.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor128p32</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>cofactor128p32.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor128p64</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>cofactor128p64.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor128p128</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>cofactor128p128.csv</file>
+ </curve>
+
+ <curve>
+ <id>cofactor160p2</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>cofactor160p2.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor160p4</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>cofactor160p4.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor160p8</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>cofactor160p8.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor160p16</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>cofactor160p16.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor160p32</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>cofactor160p32.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor160p64</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>cofactor160p64.csv</file>
+ </curve>
+
+
+ <curve>
+ <id>cofactor163t2</id>
+ <bits>163</bits>
+ <field>binary</field>
+ <file>cofactor163t2.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor163t4</id>
+ <bits>163</bits>
+ <field>binary</field>
+ <file>cofactor163t4.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor163t8</id>
+ <bits>163</bits>
+ <field>binary</field>
+ <file>cofactor163t8.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor163t16</id>
+ <bits>163</bits>
+ <field>binary</field>
+ <file>cofactor163t16.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor163t32</id>
+ <bits>163</bits>
+ <field>binary</field>
+ <file>cofactor163t32.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor163t64</id>
+ <bits>163</bits>
+ <field>binary</field>
+ <file>cofactor163t64.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor163t128</id>
+ <bits>163</bits>
+ <field>binary</field>
+ <file>cofactor163t128.csv</file>
+ </curve>
+
+ <curve>
+ <id>cofactor233t2</id>
+ <bits>233</bits>
+ <field>binary</field>
+ <file>cofactor233t2.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor233t4</id>
+ <bits>233</bits>
+ <field>binary</field>
+ <file>cofactor233t4.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor233t8</id>
+ <bits>233</bits>
+ <field>binary</field>
+ <file>cofactor233t8.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor233t16</id>
+ <bits>233</bits>
+ <field>binary</field>
+ <file>cofactor233t16.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor233t32</id>
+ <bits>233</bits>
+ <field>binary</field>
+ <file>cofactor233t32.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor233t64</id>
+ <bits>233</bits>
+ <field>binary</field>
+ <file>cofactor233t64.csv</file>
+ </curve>
+ <curve>
+ <id>cofactor233t128</id>
+ <bits>233</bits>
+ <field>binary</field>
+ <file>cofactor233t128.csv</file>
+ </curve>
+</curves>
diff --git a/src/cz/crcs/ectester/data/cofactor/keys.xml b/src/cz/crcs/ectester/data/cofactor/keys.xml
new file mode 100644
index 0000000..8cf19a1
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/keys.xml
@@ -0,0 +1,707 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE keys [
+ <!ENTITY secg SYSTEM "cofactor/secg_keys.xml">
+ ]>
+<keys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../schema.xsd"
+ category="cofactor"
+ desc="">
+
+ <pubkey>
+ <id>cofactor128p2/0</id>
+ <inline>0x1274cf343b12c9de044a312c7e0d88b1,0x00000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor128p2</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p4/0</id>
+ <inline>0x4e5a1eb60f6d2cb5c24f6ea54a675cd6,0x00000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor128p4</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p4/1</id>
+ <inline>0x71223b82022305c5eb81f5c3ae3f785a,0x79fc820c0eecef0bca540a3e723583ff</inline>
+ <curve>cofactor/cofactor128p4</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p8/0</id>
+ <inline>0x31eb5f732057b0ea57eed55f4259d85d,0x00000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor128p8</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p8/1</id>
+ <inline>0x2e7bb6ad57bbcbef6dc2bf4245a38c12,0x61d860ec5fe722872c35dfa1ef84a307</inline>
+ <curve>cofactor/cofactor128p8</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p8/2</id>
+ <inline>0x901934de82c48d1058c67c605a9a390b,0x335c2e8e79a171506a99490d3332a110</inline>
+ <curve>cofactor/cofactor128p8</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p16/0</id>
+ <inline>0x89578c4527e2d5e8a95905e30f0889e3,0x00000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor128p16</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p16/1</id>
+ <inline>0x99efc5bd2e9adc1c00919ddf5bf7ace0,0x082767ef35dad2259725c77e68bf8a69</inline>
+ <curve>cofactor/cofactor128p16</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p16/2</id>
+ <inline>0x5e2f995dad72a38bd8c9f9a7f465ce6f,0xc6dc35c4d28a668f8240ef6ac2536b14</inline>
+ <curve>cofactor/cofactor128p16</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p16/3</id>
+ <inline>0xe719245896fb0737d55085e208aafec2,0xf672a92221d12ed6ec4657ca767a7f06</inline>
+ <curve>cofactor/cofactor128p16</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p32/0</id>
+ <inline>0x097191ee5ded1c36f2ec6bba78e7e6ea,0x00000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor128p32</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p32/1</id>
+ <inline>0x527a9d644ebae128748327d1961c3985,0x4edca8a611b16dee95eeea363724062d</inline>
+ <curve>cofactor/cofactor128p32</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p32/2</id>
+ <inline>0x5faf8263ac8c51084b0aff1bd428f092,0x2680273ff79343d47280c69168973cf5</inline>
+ <curve>cofactor/cofactor128p32</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p32/3</id>
+ <inline>0x0351f0e0b0de971c953918934f59c8c0,0x424957e4a6756cc1e55d36489cff3d8b</inline>
+ <curve>cofactor/cofactor128p32</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p32/4</id>
+ <inline>0x5c5e4942cf366e1b04bed7b1ca3bd4a9,0x3549e46c6696ed157ccc74adc65683ae</inline>
+ <curve>cofactor/cofactor128p32</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p64/0</id>
+ <inline>0x1d360b7f2f805be59aedeaae2813ee1f,0x00000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor128p64</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p64/1</id>
+ <inline>0x87c97b7182f883ded6560cd78264ad5b,0x468dbd5fe82135ea24a71059341f16cb</inline>
+ <curve>cofactor/cofactor128p64</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p64/2</id>
+ <inline>0x9498a4ec5caf6d7d8638dc6d79ae30d7,0x4a8412b51a48b34c6f33047052979ebf</inline>
+ <curve>cofactor/cofactor128p64</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p64/3</id>
+ <inline>0x7bd10415384645d1dfe4c84e8f05c301,0x37878a8d0088d16cf88f49c07c13147b</inline>
+ <curve>cofactor/cofactor128p64</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p64/4</id>
+ <inline>0x9781df3d77ae756e8cb031303f7332a1,0xb0014e02d54b017e4069401fc41a9a23</inline>
+ <curve>cofactor/cofactor128p64</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p64/5</id>
+ <inline>0xb8fde1c676a1ceab9ad6597f9763c79f,0x5490d7c81d8ddece1a4081a743910b46</inline>
+ <curve>cofactor/cofactor128p64</curve>
+ <desc>cofactor order = 64</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p128/0</id>
+ <inline>0x485b34188824c54f115f31891c18795c,0x00000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor128p128</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p128/1</id>
+ <inline>0x1e75df97d9c90de9338ea741cc6fa72e,0x80308fe46db0ed0486bb204c97cb0891</inline>
+ <curve>cofactor/cofactor128p128</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p128/2</id>
+ <inline>0x789c0de0acc72fa82609c27b1ff26031,0x38eaf5e148dd91fe151cc072ce4945be</inline>
+ <curve>cofactor/cofactor128p128</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p128/3</id>
+ <inline>0xace50433b400257c911cbcc175bf03a1,0x6f0cd218b21a252a289d49981a554232</inline>
+ <curve>cofactor/cofactor128p128</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p128/4</id>
+ <inline>0x0144308e82b8c4edd3b02a535fcd9b11,0x241c16e9c41948dd249741b623ae6f46</inline>
+ <curve>cofactor/cofactor128p128</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p128/5</id>
+ <inline>0x17c76910a9acbde84033e2fcc629350a,0x462e9fa1f47d82b3e82c813368ffe005</inline>
+ <curve>cofactor/cofactor128p128</curve>
+ <desc>cofactor order = 64</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor128p128/6</id>
+ <inline>0x2f633a2a7176d5e89e53db656761884d,0x04806528aae79ad5953f985f703fe3ed</inline>
+ <curve>cofactor/cofactor128p128</curve>
+ <desc>cofactor order = 128</desc>
+ </pubkey>
+
+ <pubkey>
+ <id>cofactor160p2/0</id>
+ <inline>0x5fa441bf614740860b6eb17c525fadf7fda8a8dd,0x0000000000000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor160p2</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p4/0</id>
+ <inline>0x023deee1d84150a62b98aa5bfc199af554653515,0x0000000000000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor160p4</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p4/1</id>
+ <inline>0x029177e40c5fa71b99189487dd216c20878ddc2b,0x8208f20780b73baa1c19aec658707b070b675de2</inline>
+ <curve>cofactor/cofactor160p4</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p8/0</id>
+ <inline>0x05e55a12fb3fc534266721e50921b87175ba6058,0x0000000000000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor160p8</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p8/1</id>
+ <inline>0xcabc8915d9a3ec3918425a100c46455dac4a69b9,0x899e34cfb8138627bddf44123ec5875bbe77607a</inline>
+ <curve>cofactor/cofactor160p8</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p8/2</id>
+ <inline>0xabe45c362bd99dc1d473ece28afe13c21fa4d759,0x7fcb17eb63260522d911eca08a4f6174163e2869</inline>
+ <curve>cofactor/cofactor160p8</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p16/0</id>
+ <inline>0x1e20529f2293f0a08cc722d7fa8e56ddd4eb3b8a,0x0000000000000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor160p16</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p16/1</id>
+ <inline>0x8076835b64ee29e80caacb94a09fbf465bb283d2,0x0a772fb6cdfc5ca2a6ce58ce77c36c3e572319f2</inline>
+ <curve>cofactor/cofactor160p16</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p16/2</id>
+ <inline>0x438873cc4cfe75ea5e4cd253a999bd383679643e,0x5aeea5de1639443278f0ef03d196cb87b9818886</inline>
+ <curve>cofactor/cofactor160p16</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p16/3</id>
+ <inline>0x76f900fcc2c879c8c78e3a2c25ff0322d3dc1234,0x0a1980eaf1f4d35f736087a4b7df844c61665c03</inline>
+ <curve>cofactor/cofactor160p16</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p32/0</id>
+ <inline>0x8cff23fa9830f93cb2d46aa5f91e6f53080fa5b7,0x0000000000000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor160p32</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p32/1</id>
+ <inline>0x776031adf083c2373e49d38f6e4fff890a723b20,0x7fb4468b1937d569889b9aa06e0e4ec66032a07f</inline>
+ <curve>cofactor/cofactor160p32</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p32/2</id>
+ <inline>0x80808ea2da912ddd3ef23c2b4a7a5f7a0c49d97f,0x0c4664470b36a7873650c0ce856eccf5c715202e</inline>
+ <curve>cofactor/cofactor160p32</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p32/3</id>
+ <inline>0x6489b721683b235b1e195df3fc588b8469a53f92,0x745764261684c3056725df16a14ae71a9ce669f8</inline>
+ <curve>cofactor/cofactor160p32</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p32/4</id>
+ <inline>0x755a0b8b58e0d8f18998e2c2b7b9ab09792323d6,0x90e7c831aba6c27762bef58bf07b782334da565d</inline>
+ <curve>cofactor/cofactor160p32</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p64/0</id>
+ <inline>0x46b72d87edddeea2fa3ef32725fcf8c1e19bf40d,0x0000000000000000000000000000000000000000</inline>
+ <curve>cofactor/cofactor160p64</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p64/1</id>
+ <inline>0x3e92edd49a08c7dc03badf986f0902292f15856d,0x7658a601d3aceb0b3273011d1211b8df18027f78</inline>
+ <curve>cofactor/cofactor160p64</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p64/2</id>
+ <inline>0xa863b1077481ae1da7e782b56ef378aa79d94da0,0xf7b8ccdfee7605bf1b858f427480a15cb2b82728</inline>
+ <curve>cofactor/cofactor160p64</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p64/3</id>
+ <inline>0x45a971943d80ce3f1f29ac86536c0e189ae98dc7,0x6e4488a53ee6cbea7ecec826a8f89f9334e90c7a</inline>
+ <curve>cofactor/cofactor160p64</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p64/4</id>
+ <inline>0x53499915b1a061db0216f7c871780abfb86c576e,0x44c57b310461b57c2d20c12dbeb64475e122e1a4</inline>
+ <curve>cofactor/cofactor160p64</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor160p64/5</id>
+ <inline>0x3fabbf2a3612a89fb5940661b4acc7589cc7fce3,0xb5489c892a82a2f4e5bced433a3c4685b9ae0d07</inline>
+ <curve>cofactor/cofactor160p64</curve>
+ <desc>cofactor order = 64</desc>
+ </pubkey>
+
+
+ <pubkey>
+ <id>cofactor163t2/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x0132720c6aa3f2ca65d18f2de81e5e6b8ad4a3ef9d</inline>
+ <curve>cofactor/cofactor163t2</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t4/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x00b93d46bc80b487e7738644e85bb6d29c2dca2600</inline>
+ <curve>cofactor/cofactor163t4</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t4/1</id>
+ <inline>0x003de55d59f7c71d1560c04954a897294b584c8840,0x069a5e172cea516563b7289330fcadd1b3a9a08ea5</inline>
+ <curve>cofactor/cofactor163t4</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t8/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x0569879d9674b06578f62ec2f341ddd3b648dfdf51</inline>
+ <curve>cofactor/cofactor163t8</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t8/1</id>
+ <inline>0x04558236ae8cbb8b7f551db9b7ffeba4d05a6925f8,0x07af55a9913a11785b3cd3f8b92d5968273bdbc6a7</inline>
+ <curve>cofactor/cofactor163t8</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t8/2</id>
+ <inline>0x0180ead5cc93652110c10254291c060a6039102f2f,0x01c27f76b0e8f6c445ec14041ad6bf528133b0f5ba</inline>
+ <curve>cofactor/cofactor163t8</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t16/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x04274cf55c49c32ca4c0e30b891e03b3b1c6597df0</inline>
+ <curve>cofactor/cofactor163t16</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t16/1</id>
+ <inline>0x045a5eb7dd5d3a66c37ccc17d1c2cc278c52341311,0x00d335cb03f5cffe4aae83eca0142719ba056b3b91</inline>
+ <curve>cofactor/cofactor163t16</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t16/2</id>
+ <inline>0x02491353f117e84d3bccfdec06dc80881bf4962916,0x07a0e8a86cb7b13b4e7dff9c5a6c2cec2dfe43bd3c</inline>
+ <curve>cofactor/cofactor163t16</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t16/3</id>
+ <inline>0x06ef9e3bc176cc3e4f22734c6b1403a52fcb4f5ded,0x05b854eba0ed2c1b1ba58db768391935bc45008aed</inline>
+ <curve>cofactor/cofactor163t16</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t32/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x0409969efb468e8f07954a3b4bf7610a0d8b5d4753</inline>
+ <curve>cofactor/cofactor163t32</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t32/1</id>
+ <inline>0x0718ffc297e2a28c40b1a99a1243788908bf234788,0x072c98ada87c3d2bd169ebb13484046487389c0aac</inline>
+ <curve>cofactor/cofactor163t32</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t32/2</id>
+ <inline>0x05398dacbc3685efa32fb8073f653a13454bdd84d1,0x04a3c63e84d6c2612d29cc73f8025c678c40fc238b</inline>
+ <curve>cofactor/cofactor163t32</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t32/3</id>
+ <inline>0x04ef69ff0767053e16dc764753dce52e4abd2008af,0x06179a3827cc46bc431e38960d33b9d55d6c589059</inline>
+ <curve>cofactor/cofactor163t32</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t32/4</id>
+ <inline>0x02ee97f9a7d793ce62c74af97a9f096a7572ba69b9,0x000f6d594c47c324daa0e08324367fe6570dea1bf3</inline>
+ <curve>cofactor/cofactor163t32</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t64/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x068c5445c03a59d697573b09ae0804e2891bb98208</inline>
+ <curve>cofactor/cofactor163t64</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t64/1</id>
+ <inline>0x07ebc6a2d17da53c7eb2d1db5b1c8f4bc09cbe0c9a,0x00d8dad45ee9b10d1b9c65e33779a9915dab1bcdca</inline>
+ <curve>cofactor/cofactor163t64</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t64/2</id>
+ <inline>0x06c2e736395e30d258e1d55e99754b13cb95df5a77,0x02c927a236717ee2a0023c2932b581b30e1198ba52</inline>
+ <curve>cofactor/cofactor163t64</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t64/3</id>
+ <inline>0x02d043a910ce708b391974f4bf2d948b2ff9404ac1,0x0173d5211bd148c51a5356125b4e1037287ca76dbf</inline>
+ <curve>cofactor/cofactor163t64</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t64/4</id>
+ <inline>0x00b16f32c64daa847ecbb91ec3df09320b898753e8,0x0386287097ae6bc4fe440c21855dd51cbb063cfa01</inline>
+ <curve>cofactor/cofactor163t64</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t64/5</id>
+ <inline>0x02d3b0a084b4c191d61cccb9906b072946e8167c7c,0x041c5c739372f85d9801de81ceae8610d1d46baa0b</inline>
+ <curve>cofactor/cofactor163t64</curve>
+ <desc>cofactor order = 64</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t128/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x06be374502a948489de2e7d8d82cb6b62a493b77a0</inline>
+ <curve>cofactor/cofactor163t128</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t128/1</id>
+ <inline>0x06c8d7f80b6c2dfbb970c103dbe4823ddadbbc2d44,0x051d1ae93f3798b7d07dc5a42ae10b9ddbe6a27f9e</inline>
+ <curve>cofactor/cofactor163t128</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t128/2</id>
+ <inline>0x070bb18c1a173b81a08312cea7ae8be4e5085bd4e4,0x0196906f241cadfdad35b1e38754b01c1baf7f20da</inline>
+ <curve>cofactor/cofactor163t128</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t128/3</id>
+ <inline>0x02e6190b983edeed23a75c7905e625e9d4d5aab337,0x009be2cfb9d400f20f1ad38963fa756d3beea8b5f1</inline>
+ <curve>cofactor/cofactor163t128</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t128/4</id>
+ <inline>0x01ddf5cb0517f268ac0446ec605c6c9e2f47cad1ad,0x06ff8b935fb64abcaadf9528c164278c4861190399</inline>
+ <curve>cofactor/cofactor163t128</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t128/5</id>
+ <inline>0x03ead0b91adc1e11c6f1aea37993d4aa233f722f16,0x03566f6678f3f63004c084469330c55a54e47152ed</inline>
+ <curve>cofactor/cofactor163t128</curve>
+ <desc>cofactor order = 64</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor163t128/6</id>
+ <inline>0x0597fab16d4fd300694e45e02ce97126d6abfdf527,0x013f75f2b43c53296f06fc584b02ab9b7e5eda28aa</inline>
+ <curve>cofactor/cofactor163t128</curve>
+ <desc>cofactor order = 128</desc>
+ </pubkey>
+
+ <pubkey>
+ <id>cofactor233t2/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x00a5237785bb2d49881f043553257d8600988d9603b43b4c2d74539a7ab3</inline>
+ <curve>cofactor/cofactor233t2</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t4/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x01e70983b7039468a1b58b757d8343c7612f847f51f357ccca6a4c38e774</inline>
+ <curve>cofactor/cofactor233t4</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t4/1</id>
+ <inline>0x01b2130e54e0b949f46bb1a356e4da9b117168171c95bd8f8606dbb841f0,0x00df888613dd7319af9881c87b3b96586a6ea0bc8763e460d1cfad59beeb</inline>
+ <curve>cofactor/cofactor233t4</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t8/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x0087c295986f53382f7f1d4c8f268bdde12c5e2b641e53f84b5c2feb209a</inline>
+ <curve>cofactor/cofactor233t8</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t8/1</id>
+ <inline>0x00a84d10e99cdacf913bc463c64fe963874bd43f7b6285b3328c584f379d,0x0116083d4b7d721cab9f8e28687946775cbe53013974f0d64da6a3753871</inline>
+ <curve>cofactor/cofactor233t8</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t8/2</id>
+ <inline>0x0030b705cd14925afbc424bba3ca2d306e1919228fbdeb69722d778d2fd1,0x01b57b56dfd941a990349cfbe4738049158da63038002b8b66b1958a3f28</inline>
+ <curve>cofactor/cofactor233t8</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t16/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x00c6ff713492ad9d63db4627a4f8d0d67388d85ea20ba5ef234a43ec98d4</inline>
+ <curve>cofactor/cofactor233t16</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t16/1</id>
+ <inline>0x000054b1aeb9f6ec672eda79ea63d50afd64379da32c67b393613e5380a5,0x0007a5bcc9d28b17b3ee8b6c01146b418134d653dac30b9f141cadb8bdf3</inline>
+ <curve>cofactor/cofactor233t16</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t16/2</id>
+ <inline>0x0076e03623260120f8abb528fa31087853a445dd4f4761aa4927d0c435e5,0x011d084efa87e9d129153bcdbc50177015ecfa822ae7b9bcc229b9f57987</inline>
+ <curve>cofactor/cofactor233t16</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t16/3</id>
+ <inline>0x01e334dd359ca817a6b667a95c1c408387869583a7aad103d90dab7f07ab,0x0136e465f537139aad625893172512a06d242474c623003e5f90dd244997</inline>
+ <curve>cofactor/cofactor233t16</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t32/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x00e85ccaafcd345663cb65ccf38555c68183f25b6ec0e436f8f236fe8636</inline>
+ <curve>cofactor/cofactor233t32</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t32/1</id>
+ <inline>0x00027d98a3ee381684443b18bdabf2a8e83b6e99bad701208a688115e418,0x01f167acce102a713f0256da2c6ef68d9162cb45b99bd0d3a579c6996545</inline>
+ <curve>cofactor/cofactor233t32</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t32/2</id>
+ <inline>0x00644243499f513d3541244f49419eaeb3714b641da3fe566d2c1fd04f4e,0x00c6f0694379c25b852bb8e71785912fc3b73275061da6f0e91f50d6aa48</inline>
+ <curve>cofactor/cofactor233t32</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t32/3</id>
+ <inline>0x01eea9c0d7203865aba9d5ef5c8688c8f028222bd8c553ea2a37549ec1af,0x0049a7cf8f926869ebc36e2ff636e5eb7cb1d0406a6e43902bb921859883</inline>
+ <curve>cofactor/cofactor233t32</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t32/4</id>
+ <inline>0x01880fb8975f5024c34bd78dd2d5fbedb724ee288940c6a4ae50c3fe88c2,0x00118b407d962d2c4359f639258526d6c8ed8a1db93034ff34d877b31dd1</inline>
+ <curve>cofactor/cofactor233t32</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t64/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x01a08b13e17f2467daaf4c4f62a397f2393b19c0bfff1dd767f6c8d94860</inline>
+ <curve>cofactor/cofactor233t64</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t64/1</id>
+ <inline>0x0124da33fe559716da4d8fe52bb54490159f2bc3a9c8c832a4cd321db26d,0x01744c31a30ab6b516f3a96f173aef281fbd80d3f35976b50619ffc878c8</inline>
+ <curve>cofactor/cofactor233t64</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t64/2</id>
+ <inline>0x01f956c2aef1da18bc8c21a45e6161dac74aeb8ffc63528c5ddad8d73000,0x00b82ff8a8c62906f80294833d65c8d1e6d6fd1942cd05d88db9c7a7afed</inline>
+ <curve>cofactor/cofactor233t64</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t64/3</id>
+ <inline>0x00f3c42ae0ad4315728635a4fe24ba2a51102a3c4e94bcfbad165a534820,0x005abed4d9649b656824d041650b2bc027db10fe4a7314ea73ae8add6c34</inline>
+ <curve>cofactor/cofactor233t64</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t64/4</id>
+ <inline>0x01d94d241b3b5a14e420f845a5835555efd8b4ac7a859a6b811309a6c525,0x00c2f035151644c52617a436b6aeabb8e50ef6e12fa5b1bd1102c913c72d</inline>
+ <curve>cofactor/cofactor233t64</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t64/5</id>
+ <inline>0x00ebc7a88e760c7932108e6c925b8e8a40cf0f809f2144e772f059cef16c,0x015fe6fec0e1558cf4cc5c73d7d0a8973eb5f7be65cc537c8055e2142c45</inline>
+ <curve>cofactor/cofactor233t64</curve>
+ <desc>cofactor order = 64</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t128/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x0018948e6063085fbc0a661dc0d06bc45c2bbab443e9d983753886b918ea</inline>
+ <curve>cofactor/cofactor233t128</curve>
+ <desc>cofactor order = 2</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t128/1</id>
+ <inline>0x01e41de7ac8dabaa1e873fd528d3c5e462890f60a444a12e1f87902a5f80,0x01148ae9d64a4223ba0bd24d642a6b2cdbbc1358fccd78eea473019a3aa8</inline>
+ <curve>cofactor/cofactor233t128</curve>
+ <desc>cofactor order = 4</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t128/2</id>
+ <inline>0x00e62c29001164bd807f1984bc2d9df15f979f42acf6d10ca6df31ebd8f8,0x00b5e5a686e3a8f87db3c03223322e3d6d0b67ac1d959e3b43a5d66cc734</inline>
+ <curve>cofactor/cofactor233t128</curve>
+ <desc>cofactor order = 8</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t128/3</id>
+ <inline>0x019cf3cd40ee9c3feff8d301ce3b949691d4a1415b89f6e4d2f9799c2071,0x012c90d7c0d2b2a6677cd1015e7611334098c557181080d1e3c4832b7e46</inline>
+ <curve>cofactor/cofactor233t128</curve>
+ <desc>cofactor order = 16</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t128/4</id>
+ <inline>0x00c9fe0dc85e72812aa285b889786c323d2c55de71cf8aa3706c4d5819e1,0x018770dd46a7914c7e8ba6f9babe7a43d489237331fa5d5be1f4a8478d93</inline>
+ <curve>cofactor/cofactor233t128</curve>
+ <desc>cofactor order = 32</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t128/5</id>
+ <inline>0x01a9d88c20ae689f118efc37e85699a87826c224470f2ed075d377505765,0x01d3d88eca62c36c83300658c35cf4c50fb62e4d38b890462db90a7b0892</inline>
+ <curve>cofactor/cofactor233t128</curve>
+ <desc>cofactor order = 64</desc>
+ </pubkey>
+ <pubkey>
+ <id>cofactor233t128/6</id>
+ <inline>0x014ab29589292a78426bd618c99c520a950119e2642302c02e29e4507ccc,0x01ce0273b2fe1e3bdc53116d670ce682d73d0988dc124169dfadd1d1f727</inline>
+ <curve>cofactor/cofactor233t128</curve>
+ <desc>cofactor order = 128</desc>
+ </pubkey>
+
+ &secg;
+
+ <pubkey>
+ <id>pq/cofactor128/1</id>
+ <inline>0x73ca0050dff0de43cff4a026d8aa4baa,0xebd7490611fe3886fe5a8083d344edd0</inline>
+ <curve>composite/pq/composite128/1</curve>
+ <desc>cofactor order = 0x000000003c1be1d1dd7edf84b8013495</desc>
+ </pubkey>
+ <pubkey>
+ <id>pq/cofactor128/2</id>
+ <inline>0x6ef5b1d42abdbd6f44bcf4d64504927c,0x73e82c27b93032b7a7a15111d1569bb3</inline>
+ <curve>composite/pq/composite128/2</curve>
+ <desc>cofactor order = 0x000000000000000000000003f76917eb</desc>
+ </pubkey>
+ <pubkey>
+ <id>pq/cofactor160/1</id>
+ <inline>0x0818df9ccebf5b3fd422d00393d346b314e48f98,0x75bde540b81b5bf0ab45c86fbff7bb2e7ec833cb</inline>
+ <curve>composite/pq/composite160/1</curve>
+ <desc>cofactor order = 0x00000000000000000d4d7041e1dbf10b42f48c4f</desc>
+ </pubkey>
+ <pubkey>
+ <id>pq/cofactor160/2</id>
+ <inline>0x706deef87d4593bbeaa70bc2609e1d8c0e2e0c10,0x64df2537d395da2e0cb8c7e340426b64699cf325</inline>
+ <curve>composite/pq/composite160/2</curve>
+ <desc>cofactor order = 0x00000000000000000000000af2407f270b81f45f</desc>
+ </pubkey>
+ <pubkey>
+ <id>pq/cofactor192/1</id>
+ <inline>0x6366613b66339fa580f390d630ccf9b535437229aa8b61cd,0x1b975fa3848bd68f34f6a08b7cf190bcaeaf9782270e2413</inline>
+ <curve>composite/pq/composite192/1</curve>
+ <desc>cofactor order = 0x00000000000000000000035efd8bad55038e6bd22db8b805</desc>
+ </pubkey>
+ <pubkey>
+ <id>pq/cofactor192/2</id>
+ <inline>0x6366613b66339fa580f390d630ccf9b535437229aa8b61cd,0x2abab8c0e803a3612c7a7fbcb47e06fd8ef42a7a7d8c380f</inline>
+ <curve>composite/pq/composite192/2</curve>
+ <desc>cofactor order = 0x00000000000000000000000000302b72431ff070e7e06799</desc>
+ </pubkey>
+ <pubkey>
+ <id>pq/cofactor224/1</id>
+ <inline>0x97e540c8fc6f9603f25b1689895e5fe738565013675b1bd6c0e16a4b,0x66d0bbe7ee9b0e9e7e1d43b6a47e1d5550c696433c58ee06b94e8615</inline>
+ <curve>composite/pq/composite224/1</curve>
+ <desc>cofactor order = 0x0000000000000000000006a99de2a928e8f227e7a2ed33a555f24ef5</desc>
+ </pubkey>
+ <pubkey>
+ <id>pq/cofactor224/2</id>
+ <inline>0x1b189f3372946c9cbb421a60bc3a0a06d16cf3ce043781ada561834c,0x57e00f270dbc56c6c86946dcb6c6ab12133d168609c588b6960c357f</inline>
+ <curve>composite/pq/composite224/2</curve>
+ <desc>cofactor order = 0x00000000000000000000000000000000001824ec370e405bfb5024db</desc>
+ </pubkey>
+ <pubkey>
+ <id>pq/cofactor256/1</id>
+ <inline>0xda63037417b6151b844b2367428f52692f31f14a6654edc58edb5864d0e85ff7,0x8191a142a1c4f913e146af089b1cbe12a803473d207e93697afd1a83818e08be</inline>
+ <curve>composite/pq/composite256/1</curve>
+ <desc>cofactor order = 0x000000000000000220d23234534b240aac0efa70a3bc44e046c2431ad5a32d27</desc>
+ </pubkey>
+ <pubkey>
+ <id>pq/cofactor256/2</id>
+ <inline>0x7b258197e20de13053c3384efd34c3f17172d8ee22c4e23491ca2f867383d8de,0x4aa05d30077ed1bfa45301348e6ab9b1d436f1755c6747c958d4dc24fcb6996c</inline>
+ <curve>composite/pq/composite256/2</curve>
+ <desc>cofactor order = 0x000000000000000000000000000000000000000000000000743bc7ea193d40db</desc>
+ </pubkey>
+</keys>
diff --git a/src/cz/crcs/ectester/data/cofactor/secg_keys.xml b/src/cz/crcs/ectester/data/cofactor/secg_keys.xml
new file mode 100644
index 0000000..d9d3896
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/secg_keys.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<pubkey>
+ <id>sect163k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect163k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect163k1/1</id>
+ <inline>0x07759edd174e24fd20b34e6d43e51230f0f7f892ab,0x05e4bf4321769ea3f4dc92abe028069f8db0fc0dc1</inline>
+ <curve>secg/sect163k1</curve>
+ <desc>order = 0x800000000000000000004021145c1981b33f14bde</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect163r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x009917a2556e1856bc7ea9a472cd01bfb889b95835</inline>
+ <curve>secg/sect163r1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect163r1/1</id>
+ <inline>0x05a78dd5973d0d39a5970d49b7a13df98558981dcb,0x0340755fa31149f5bf1dd4bf1fa3ef38432babbe13</inline>
+ <curve>secg/sect163r1</curve>
+ <desc>order = 0x7fffffffffffffffffffe91556d1385394e204f36</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect163r2/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x02c25b85badf8927593d21c366da89c03969f34da5</inline>
+ <curve>secg/sect163r2</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect163r2/1</id>
+ <inline>0x00b8a6683b6d99c044e1086e4eef5d2bd80fd2df41,0x04f6dfa693e7017de96c6e002871b72b3eb6d77b83</inline>
+ <curve>secg/sect163r2</curve>
+ <desc>order = 0x80000000000000000000525fcefce182548469866</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect233k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect233k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect233k1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000001,0x000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect233k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect233k1/2</id>
+ <inline>0x01c90d47aff1ed1172eb861cbc5f11ade07f775b1fdd89b1665c464a97d9,0x002b41324d806a174953fb4ccf8bbeb4fd36cef6f30ccc93618dd282a8e0</inline>
+ <curve>secg/sect233k1</curve>
+ <desc>order = 0x100000000000000000000000000000d3ab7722b79a8ddf635abe2e757be</desc>
+</pubkey>
+<pubkey>
+ <id>sect233k1/3</id>
+ <inline>0x01f477bff0fda3ecd2fa1dff08045717ccf615189375e2437f539c1e1687,0x019f18a66f38eda89284e3979b2aa6ae034cc4a6c7999080815af028bafe</inline>
+ <curve>secg/sect233k1</curve>
+ <desc>order = 0x200000000000000000000000000001a756ee456f351bbec6b57c5ceaf7c</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect233r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x0187f85627b97874e747ee31e06d71caaeea52f21253e5f946d061da9138</inline>
+ <curve>secg/sect233r1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect233r1/1</id>
+ <inline>0x00fe7bac18bdc41b4adbabaaa5dd95e7a170b63bb3519b5d897205fe779f,0x0109d0b6ef40d7f05129ee664be44ae57393716c0233857db6a3358926f7</inline>
+ <curve>secg/sect233r1</curve>
+ <desc>order = 0x2000000000000000000000000000027d2e9ce5f14d244063a4c079fc1ae</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect239k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect239k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect239k1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000001,0x000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect239k1</curve>
+ <desc>order = 4</desc>
+</pubkey>
+<pubkey>
+ <id>sect239k1/2</id>
+ <inline>0x2e97f4bf96f4598e4dbbba188895e14b068d9c21ab8e261ffc7d43abc0f2,0x16e86c56595addfdaad811d4bc01df886838cb761332a5bd65f846d63dd3</inline>
+ <curve>secg/sect239k1</curve>
+ <desc>order = 0x400000000000000000000000000000b4f3fd8cf96dd23e383b5001c8f14a</desc>
+</pubkey>
+<pubkey>
+ <id>sect239k1/3</id>
+ <inline>0x718e787b457b7baf3b58bf38c42dd3347802801386fbbe78c4dd5ea31cc0,0x180ad3b3a1182279d21cdd1de3067572c5fe64c3641cc171515c68128cb9</inline>
+ <curve>secg/sect239k1</curve>
+ <desc>order = 0x80000000000000000000000000000169e7fb19f2dba47c7076a00391e294</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect283k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect283k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect283k1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000001,0x000000000000000000000000000000000000000000000000000000000000000000000000</inline>
+ <curve>secg/sect283k1</curve>
+ <desc>order = 4</desc>
+</pubkey>
+<pubkey>
+ <id>sect283k1/2</id>
+ <inline>0x07801fcb7c8e5dd6f8c21c60dd7c13cd472dedffe20c3331d084eb4ba32f7b4b13a3510c,0x01960ead4b2a835d27a626fab5fc6e779b511c680a5e6af9b42d67228261a2add4220335</inline>
+ <curve>secg/sect283k1</curve>
+ <desc>order = 0x3ffffffffffffffffffffffffffffffffffd35c5da0eaee4cbbfeff288a3c0c3c2c78c2</desc>
+</pubkey>
+<pubkey>
+ <id>sect283k1/3</id>
+ <inline>0x00896ce7c7065cc160ca721127910f598edc8b1e9be077d4756f31aee5705a00302d2e1d,0x0381c6394dbf16cf75f9e79c830e57e5a398ba77258e6d224692940eb925ec0b78ece889</inline>
+ <curve>secg/sect283k1</curve>
+ <desc>order = 0x7ffffffffffffffffffffffffffffffffffa6b8bb41d5dc9977fdfe511478187858f184</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect283r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000,0x072bcc9c5792b1ebe81983089fb6f835a2fd220a304424ca17c082ae17442aede9b9b3f6</inline>
+ <curve>secg/sect283r1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect283r1/1</id>
+ <inline>0x0743efa0a997ab11f696f61403759fa6dac093afe26160fa6d4620dc10c73ecbd07d868d,0x013abc297e8c6568601a70a323208d22730b654374643683bb913daaf0910ff492cfb1c5</inline>
+ <curve>secg/sect283r1</curve>
+ <desc>order = 0x7ffffffffffffffffffffffffffffffffffdf20732cc1f92715202cb60854f9df5b660e</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect409k1/0</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect409k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect409k1/1</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect409k1</curve>
+ <desc>order = 4</desc>
+</pubkey>
+<pubkey>
+ <id>sect409k1/2</id>
+ <inline>0x013b10b72703d774f4873f985742cce57b9377e5f89049e493eac66748870f718ae0f3ae227b6d75f7e5f810d91da79f985cefdc,0x001aea0d33e0ae234db866482308cbc579e9c7cab1fad1b62dac2a3ea16bec7ca504da1d86370fc748d1ddbc443c8a920c7b9d14</inline>
+ <curve>secg/sect409k1</curve>
+ <desc>order = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffcbf0765a9d440801d88aafabda7c7cf94b696b90771c03cbf9e</desc>
+</pubkey>
+<pubkey>
+ <id>sect409k1/3</id>
+ <inline>0x00a6cc45b0ed549286beb3f391467dcd5106fed4fb850e0ca45ac7a5291fa1f73c2ebd66b5eb2fc6c3ad93a225c20e29d76172e1,0x019c34bda5074fe8c75e1017d8b64a87766467083fb6e17a4fc57ca39c6801a31eb71e824fa225922e361db0946c4a3e7445468d</inline>
+ <curve>secg/sect409k1</curve>
+ <desc>order = 0x1fffffffffffffffffffffffffffffffffffffffffffffffffff97e0ecb53a881003b1155f57b4f8f9f296d2d720ee380797f3c</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect409r1/0</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x009935f7e4768ee2ef22f9b4a29f53cb5d93ab2ed0ad7ce57c1b2649fde895950cf6576773326c528a48e27b872accf0bc25d5ef</inline>
+ <curve>secg/sect409r1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect409r1/1</id>
+ <inline>0x01f8a55ff6e55b1d023eca11efc629aedba15e7683f948a84ef6e3746470b2fe9f9c694f862714ec8dbb35ae8e5b760f488ae84a,0x00c0bbc113adacdb9815bb210178b081ef4b40c949fe52345ad21eab210667cc10b5ac0e60d7bb44fee1d6c544b3cc3a18ad0a23</inline>
+ <curve>secg/sect409r1</curve>
+ <desc>order = 0x20000000000000000000000000000000000000000000000000003c555ad4c25e6660f7cbf48f8793c0a5f0702c99a6fb34422e6</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect571k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect571k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect571k1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</inline>
+ <curve>secg/sect571k1</curve>
+ <desc>order = 4</desc>
+</pubkey>
+<pubkey>
+ <id>sect571k1/2</id>
+ <inline>0x0311efd68e031548397fd197f3c9ea9ef2048b3835bbb52c06cc89fa29a609be1a4215805132ed6c30ed743e6221f34c5d43acd3777c88a42578a7b02d2a9af488c138b206832707,0x01692831faeb78797365873933fd9c5f5223d2bceba37aa6a4f6d128973e3263b124300568f039541e51c6214409523179aaecdf76e789921d84e12991113eacd03727d4c9754920</inline>
+ <curve>secg/sect571k1</curve>
+ <desc>order = 0x400000000000000000000000000000000000000000000000000000000000000000000002630a1c3e334c7c9672351b722fe82716c61b097cbac72703d23bd68b9fcef1ec6f82002</desc>
+</pubkey>
+<pubkey>
+ <id>sect571k1/3</id>
+ <inline>0x0519146e2a901338dce58310d786d30fd6806c620f6a7a9ba4389534dcdf16c6becdacb853fad56e4b048465b4037450468fb9bc6259448ce84a92fd8bfe9c3663dad3da48089517,0x05671e892895ca17683107f21da7741a3fdf47e546dfc6b6d2ed83c970ac88c33b7b522b0a1fe9a7dda46a7075d4881e88b9fc7f3a2002883f6c7d651f9c94252340b59b8abc0aeb</inline>
+ <curve>secg/sect571k1</curve>
+ <desc>order = 0x800000000000000000000000000000000000000000000000000000000000000000000004c614387c6698f92ce46a36e45fd04e2d8c3612f9758e4e07a477ad173f9de3d8df04004</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect571r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0732d556640c20b5dd739a058dffd58268d41c59135429eb041d7aa1255902e6362c4800a874ab0b60536b58460cd20c06f0340e3594a7f771bedfc10ce39b64699b08443b761c43</inline>
+ <curve>secg/sect571r1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect571r1/1</id>
+ <inline>0x01e4b7514be19101ec1d9f032bdba65dd1d73465bc1425e3847f44b7b2c78669358ab7bb34dec5202db32c0e65f8f4e0c5c0db8ae19537307ba6391dfa7831375b1b3957d403477a,0x00f04eb4a9ce0f18f879143faea24107682602d9319105a62c2758da491014ae34280a32830a1e239d0e89b3a3ff60acb640afc01aa56dcb8344423f0ad9f071af3d95d7675578fc</inline>
+ <curve>secg/sect571r1</curve>
+ <desc>order = 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffccc39c31feab30e6100b3630d0470a3d8fbb39422c3bd27aa2e9acdd0705d3765fd09c8e</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/carmichael_128.csv b/src/cz/crcs/ectester/data/composite/carmichael_128.csv
new file mode 100644
index 0000000..400abca
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/carmichael_128.csv
@@ -0,0 +1 @@
+0x8d4731c77d3462993d75627d4ea254ef,0x7374f7d098c61f64d0dcd328b537e22c,0x3658ca99638dc513932535134f48536b,0x7d5beaa13395695173e3371b7638347a,0x6f1c533a21abb60316bb9529528910c4,0x8d4731c77d346297e54306afea3730a1,0x01
diff --git a/src/cz/crcs/ectester/data/composite/carmichael_192.csv b/src/cz/crcs/ectester/data/composite/carmichael_192.csv
new file mode 100644
index 0000000..7c21982
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/carmichael_192.csv
@@ -0,0 +1 @@
+0x8b72c1f15aacdcc4c3d881b3e14fa5e07f614ffd25613c95,0x4de73fecdd02978832f2025306474f85af670aa44735bec4,0x55fa4ea6cbf5241ff5c3734bef8db6399fa45ffbf6450f45,0x0236516a5b59cd7871ed1403e820f07d1795483b5c1cc7c7,0x137236f344d2e6e51476662acc70a2247f81d4801b0b9fa4,0x8b72c1f15aacdcc4c3d881b2a6256f87e98d12e5385af0b9,0x01
diff --git a/src/cz/crcs/ectester/data/composite/carmichael_224.csv b/src/cz/crcs/ectester/data/composite/carmichael_224.csv
new file mode 100644
index 0000000..d72a30c
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/carmichael_224.csv
@@ -0,0 +1 @@
+0x929fe6161bc19ea029efb679c883576d18d69b5b3a3870eaf80d49a3,0x159ef3437e3d7297247f6ad693c1d80f069cb9eb98a0c679668e5ff9,0x6448a16b4ed54d4532e4145cb5fa9a0cd623232d350f706742aeac8c,0x816e1a2510e83da094374558ba2df28976404fcff6c18bfb5eb8cbf9,0x78f245d80d0e1e18e73272fef47911883ae1ab2af985f93f06dbc002,0x929fe6161bc19ea029efb679c881d967bd62678011c1949852a0b119,0x01
diff --git a/src/cz/crcs/ectester/data/composite/carmichael_256.csv b/src/cz/crcs/ectester/data/composite/carmichael_256.csv
new file mode 100644
index 0000000..fea4281
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/carmichael_256.csv
@@ -0,0 +1 @@
+0x974a679ba3168a019e1f069aac82c999e2612f1957052c56607e8002ef36be53,0x51f15e6797f0a4f0f049b1aedb340118e9584727c5668fe856ad8e2fa111f12d,0x4e7c9daa52715b65db00a3f85ec87bf6a8cc1c312845fc302fc724eb0067d82e,0x6737dcaa9b8198f73599b700e6b3bfda05731528b620f9080799fd6d491be926,0x0f71d01a2ac0f12fe6db25cc420578e9acb729d007580b139cb4897d6421517c,0x974a679ba3168a019e1f069aac82c9986c8ed1c88f1d90e54250abfb0a363941,0x01
diff --git a/src/cz/crcs/ectester/data/composite/carmichael_384.csv b/src/cz/crcs/ectester/data/composite/carmichael_384.csv
new file mode 100644
index 0000000..3002514
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/carmichael_384.csv
@@ -0,0 +1 @@
+0xa10402c0f3ab3f57b7ddf22e1b7054a8b2a292e3466496d060a5264d9fe29e2fc22347b3b6c21cdf7cba591fd00abd29,0x3dafe0a9c8fb6540cfb52253c08d63742c122062d031f96b0d901d27c9a91d9cefc6d5df27b9f56664860d02b98bc00c,0x3ae6993a790b7e73d67d1cd3a1376c08b9effb7a43211cd169d4e5871bdf096827d953a9f1a98ad11748b22dadf28f07,0x2f2843692b78f89332597df8bec5f5c55767af145ade2c4ad6a4e08fc772c5b7e2bab7d1cb054ebee4367739fe5d5e5c,0x6940f0d9cd2276b4c909e730cdb909a8742a2abee52fe157ca7401d1d825f57145a3cc20522910b28b90cffc38d64e9b,0xa10402c0f3ab3f57b7ddf22e1b7054a8b2a292e3466496d056717d18f11d70554d3bff46c2b156dc594b563cf7ce93d1,0x01
diff --git a/src/cz/crcs/ectester/data/composite/carmichael_512.csv b/src/cz/crcs/ectester/data/composite/carmichael_512.csv
new file mode 100644
index 0000000..59d0b03
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/carmichael_512.csv
@@ -0,0 +1 @@
+0x9c4dc6f1cd53c38d5af75215620fb6d643257fb1f658d3e5d3b5412dee1bce65b734e62f7a592cda1f6218a11d07f791503e00190b94521255c291e59a069367,0x624745292ab68c1d121cc5f7bda57be0be0fc2461c212494d44f4d522bf797f31c47ba99b44c7145313aebe5bb03893ed11cfc926082e51426cc2b4347746aa5,0x456e5b484249ffa61273c26a91941dd9f1153b4e972df10cfe7c32c64f8aa6ac0f9ec02b63dec7daff1f30eb1a5ac7b641671092f723175f092f13e5f41f1399,0x4348b5167f4f5d7c3d1265d5f08e08db97cd506b9b2e546d94065220597e79291c2c2ece0f6b904a2a8c39f3adc6706724b56dc26804e19e5fefce5a7763d241,0x61bc72b13f6954704e8d219c2d1a20824dc759503f49b8aed3de1acb1761d68a68fbc93064ba12cac87344690be9027e763e3889ae561904c68bc586407018db,0x9c4dc6f1cd53c38d5af75215620fb6d643257fb1f658d3e5d3b5412dee1bce670a65fd73b857d9d8111f52eb305cfc13d96ca09cdc88e257b289d02d3239d259,0x01
diff --git a/src/cz/crcs/ectester/data/composite/carmichael_521.csv b/src/cz/crcs/ectester/data/composite/carmichael_521.csv
new file mode 100644
index 0000000..47ec1c3
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/carmichael_521.csv
@@ -0,0 +1 @@
+0x011ebb4ebb42f370324a2b937a20c443f110e1e3c40ecb3eb63af873d0c86e7cce05e5416605f1fcfc8296c879bbea344084007bb8fc2c704d85fc4b7fcdc0a4a001,0x00be420c826bac034b4b24ba623a2551510f6663babc95d6741dd68ab05adf6cf2624b1d47fb76c7b0b3edae8c436befe0b5d536525bd662e911529d00c05437e1db,0x0087789843e5da542f34b7c9737db3f6dbaf515788f355b0e2e36d66eb65d1a183a95a88fb9ffa27807961581ed69473046df573baab472fca6a361228bf326fa7f7,0x00457d321b63688cff7ddb0c04fb4bec1b0da6b5af8cac11b9d6fdce431e80d4b48947329078a7c1c5ca9aeb351a2514f89ef8215adaad9af4f581df098fa088aba6,0x00c286d2f1e48e58787c83878624b273db0fa6c3de13e59e326c0f783a40056dd3623688156396986179d5ee97cf9df846ac7a3180a27a23a45cbb400d9553d8a659,0x11ebb4ebb42f370324a2b937a20c443f110e1e3c40ecb3eb63af873d0c86e7cce1752f780ce79d0886704c8603b16dbb491481c1b6682865a9b7f83440515fbe561,0x01
diff --git a/src/cz/crcs/ectester/data/composite/composite128_pq.csv b/src/cz/crcs/ectester/data/composite/composite128_pq.csv
new file mode 100644
index 0000000..8aea6b2
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite128_pq.csv
@@ -0,0 +1 @@
+0xee6b3964632807cf11b8b9dba1b4f099,0x1fd6f78c0303652c5b7de184a4744f98,0x2da1b3253571565989f3b72b865a3e27,0x7c23e2a7e80b6586a1f9e1c9d4fbadc2,0xe987ee5eb715e2eb8cc8ad77311cfe0a,0xee6b3964632807cd9c885b5658f1a7c7,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite128_pq1.csv b/src/cz/crcs/ectester/data/composite/composite128_pq1.csv
new file mode 100644
index 0000000..a551487
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite128_pq1.csv
@@ -0,0 +1 @@
+0xee6b3964632807cf11b8b9dba1b4f099,0x1fd6f78c0303652c5b7de184a4744f98,0x2da1b3253571565989f3b72b865a3e27,0x6ef5b1d42abdbd6f44bcf4d64504927c,0x73e82c27b93032b7a7a15111d1569bb3,0x000000000000000000000003f76917eb,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite128_pq2.csv b/src/cz/crcs/ectester/data/composite/composite128_pq2.csv
new file mode 100644
index 0000000..69181df
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite128_pq2.csv
@@ -0,0 +1 @@
+0xee6b3964632807cf11b8b9dba1b4f099,0x1fd6f78c0303652c5b7de184a4744f98,0x2da1b3253571565989f3b72b865a3e27,0x73ca0050dff0de43cff4a026d8aa4baa,0xebd7490611fe3886fe5a8083d344edd0,0x000000003c1be1d1dd7edf84b8013495,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite128_rg0.csv b/src/cz/crcs/ectester/data/composite/composite128_rg0.csv
new file mode 100644
index 0000000..2e039f4
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite128_rg0.csv
@@ -0,0 +1 @@
+0xee6b3964632807cf11b8b9dba1b4f099,0x1fd6f78c0303652c5b7de184a4744f98,0x2da1b3253571565989f3b72b865a3e27,0x6ef5b1d42abdbd6f44bcf4d64504927c,0x73e82c27b93032b7a7a15111d1569bb3,0xee6b3964632807cd9c885b5658f1a7c7,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite128_small.csv b/src/cz/crcs/ectester/data/composite/composite128_small.csv
new file mode 100644
index 0000000..fbcbdca
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite128_small.csv
@@ -0,0 +1 @@
+0xc8bb039faeca04585e1d5864fbc05f6b,0x90af1043a837133b556495fe1e080b7c,0x916d1eaf6cc9eee0f86e5bd6313ba6fc,0x746fa441b3a54d3c531bd59d119f400d,0x73aff68dbd96e1485cd2de0f6389cc70,0x00000000000000000000000000000003,0x1 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite160_pq.csv b/src/cz/crcs/ectester/data/composite/composite160_pq.csv
new file mode 100644
index 0000000..3f43b50
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite160_pq.csv
@@ -0,0 +1 @@
+0x919cf0a89ca7a8ea2f61156ea4b3100a2a357477,0x75cd1f1c32f1e5d2b2d54db103b22d296de34722,0x3177d3e2f79c884a0b1a6e74d9843c3a52e794de,0x46239bb42c524f45764e8edba8c958203d185886,0x6bce8ab48c9b4d0ab4083122ea9684173f9b07a9,0x919cf0a89ca7a8ea2f626ab2ab86ff4a074a5d51,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite160_pq1.csv b/src/cz/crcs/ectester/data/composite/composite160_pq1.csv
new file mode 100644
index 0000000..debd466
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite160_pq1.csv
@@ -0,0 +1 @@
+0x919cf0a89ca7a8ea2f61156ea4b3100a2a357477,0x75cd1f1c32f1e5d2b2d54db103b22d296de34722,0x3177d3e2f79c884a0b1a6e74d9843c3a52e794de,0x706deef87d4593bbeaa70bc2609e1d8c0e2e0c10,0x64df2537d395da2e0cb8c7e340426b64699cf325,0x00000000000000000000000af2407f270b81f45f,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite160_pq2.csv b/src/cz/crcs/ectester/data/composite/composite160_pq2.csv
new file mode 100644
index 0000000..efd7475
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite160_pq2.csv
@@ -0,0 +1 @@
+0x919cf0a89ca7a8ea2f61156ea4b3100a2a357477,0x75cd1f1c32f1e5d2b2d54db103b22d296de34722,0x3177d3e2f79c884a0b1a6e74d9843c3a52e794de,0x0818df9ccebf5b3fd422d00393d346b314e48f98,0x75bde540b81b5bf0ab45c86fbff7bb2e7ec833cb,0x00000000000000000d4d7041e1dbf10b42f48c4f,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite160_rg0.csv b/src/cz/crcs/ectester/data/composite/composite160_rg0.csv
new file mode 100644
index 0000000..e6a1a95
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite160_rg0.csv
@@ -0,0 +1 @@
+0x919cf0a89ca7a8ea2f61156ea4b3100a2a357477,0x75cd1f1c32f1e5d2b2d54db103b22d296de34722,0x3177d3e2f79c884a0b1a6e74d9843c3a52e794de,0x706deef87d4593bbeaa70bc2609e1d8c0e2e0c10,0x64df2537d395da2e0cb8c7e340426b64699cf325,0x919cf0a89ca7a8ea2f626ab2ab86ff4a074a5d51,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite160_small.csv b/src/cz/crcs/ectester/data/composite/composite160_small.csv
new file mode 100644
index 0000000..2adaa8b
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite160_small.csv
@@ -0,0 +1 @@
+0x9b0bafb73969e379b49753fa1b3cc65e9ca73adf,0x93091909c640bcdf66f470c1627ec776e9f625cc,0x69c34611c6d4cb088365ae95bf2d7d9c97aaf224,0x68684425389f5552a24b7c205e19da7a0c10a1cb,0x825ecf13c08f314cd6ad5eae73044c71e9876409,0x0000000000000000000000000000000000000003,0x1 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite192_pq.csv b/src/cz/crcs/ectester/data/composite/composite192_pq.csv
new file mode 100644
index 0000000..47b8a13
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite192_pq.csv
@@ -0,0 +1 @@
+0xa261fff62647eebf810a404f0c80a971dd7c7838fdc52b5b,0x87502ebb62d26e1eca06c434f8ef069dfb2c287d6183750c,0x4ad6ce1f16e1bfc3d40f0027d787aeadb53846d69099a883,0x253e1db7210418abfe1de82c0053098e90bb15ad4f20096f,0x962c565cb0dd62b6a04be33ec7b20a1b3e7f23e24d48c6c2,0xa261fff62647eebf810a404f23ba4db93199e2e02ccffdfd,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite192_pq1.csv b/src/cz/crcs/ectester/data/composite/composite192_pq1.csv
new file mode 100644
index 0000000..664d35e
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite192_pq1.csv
@@ -0,0 +1 @@
+0xa261fff62647eebf810a404f0c80a971dd7c7838fdc52b5b,0x87502ebb62d26e1eca06c434f8ef069dfb2c287d6183750c,0x4ad6ce1f16e1bfc3d40f0027d787aeadb53846d69099a883,0x6366613b66339fa580f390d630ccf9b535437229aa8b61cd,0x2abab8c0e803a3612c7a7fbcb47e06fd8ef42a7a7d8c380f,0x00000000000000000000000000302b72431ff070e7e06799,0x1 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite192_pq2.csv b/src/cz/crcs/ectester/data/composite/composite192_pq2.csv
new file mode 100644
index 0000000..33fe0f3
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite192_pq2.csv
@@ -0,0 +1 @@
+0xa261fff62647eebf810a404f0c80a971dd7c7838fdc52b5b,0x87502ebb62d26e1eca06c434f8ef069dfb2c287d6183750c,0x4ad6ce1f16e1bfc3d40f0027d787aeadb53846d69099a883,0x6366613b66339fa580f390d630ccf9b535437229aa8b61cd,0x1b975fa3848bd68f34f6a08b7cf190bcaeaf9782270e2413,0x00000000000000000000035efd8bad55038e6bd22db8b805,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite192_rg0.csv b/src/cz/crcs/ectester/data/composite/composite192_rg0.csv
new file mode 100644
index 0000000..a55a994
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite192_rg0.csv
@@ -0,0 +1 @@
+0xa261fff62647eebf810a404f0c80a971dd7c7838fdc52b5b,0x87502ebb62d26e1eca06c434f8ef069dfb2c287d6183750c,0x4ad6ce1f16e1bfc3d40f0027d787aeadb53846d69099a883,0x6366613b66339fa580f390d630ccf9b535437229aa8b61cd,0x2abab8c0e803a3612c7a7fbcb47e06fd8ef42a7a7d8c380f,0xa261fff62647eebf810a404f23ba4db93199e2e02ccffdfd,0x1 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite192_small.csv b/src/cz/crcs/ectester/data/composite/composite192_small.csv
new file mode 100644
index 0000000..a90364d
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite192_small.csv
@@ -0,0 +1 @@
+0xabe758cde9fc09b714f543b4acac1550c09297279d4d2a1f,0x41e9bf05575d991e1e3393fc1746f2eb49e7f9b34867343e,0x54c5db9d913d1afeabce6e11ea623f8536dd6eef8eb5dfff,0x94863540fdd9e8f415df79e18aee4bdd0914127581b6bb15,0x3aa760e488d12f8f93b10da531e1dbc033db25729119839f,0x000000000000000000000000000000000000000000000003,0x1 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite224_pq.csv b/src/cz/crcs/ectester/data/composite/composite224_pq.csv
new file mode 100644
index 0000000..ffa2cc1
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite224_pq.csv
@@ -0,0 +1 @@
+0xa0dccd401872aa37c279e2469a08d97d559addb6fc870a1766f80e6f,0x393797f1d924dc63c761d4497086d09284a922a5517c07f93f3a075c,0x54f4673322854dafc1241b66192134ea9e18f8849c45660b793abb97,0x4f3b94b4e9234f3611bfe74d69ad06178e06c5f56fa100233f0d43e1,0x0eb042a295465c53ca6e01ff8c2cf4d029bf6d4a646fed830468d73a,0xa0dccd401872aa37c279e2469a0791ea2f15e32a10632ec07cf3ff97,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite224_pq1.csv b/src/cz/crcs/ectester/data/composite/composite224_pq1.csv
new file mode 100644
index 0000000..6a01e2d
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite224_pq1.csv
@@ -0,0 +1 @@
+0xa0dccd401872aa37c279e2469a08d97d559addb6fc870a1766f80e6f,0x393797f1d924dc63c761d4497086d09284a922a5517c07f93f3a075c,0x54f4673322854dafc1241b66192134ea9e18f8849c45660b793abb97,0x1b189f3372946c9cbb421a60bc3a0a06d16cf3ce043781ada561834c,0x57e00f270dbc56c6c86946dcb6c6ab12133d168609c588b6960c357f,0x00000000000000000000000000000000001824ec370e405bfb5024db,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite224_pq2.csv b/src/cz/crcs/ectester/data/composite/composite224_pq2.csv
new file mode 100644
index 0000000..f8bc6df
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite224_pq2.csv
@@ -0,0 +1 @@
+0xa0dccd401872aa37c279e2469a08d97d559addb6fc870a1766f80e6f,0x393797f1d924dc63c761d4497086d09284a922a5517c07f93f3a075c,0x54f4673322854dafc1241b66192134ea9e18f8849c45660b793abb97,0x97e540c8fc6f9603f25b1689895e5fe738565013675b1bd6c0e16a4b,0x66d0bbe7ee9b0e9e7e1d43b6a47e1d5550c696433c58ee06b94e8615,0x0000000000000000000006a99de2a928e8f227e7a2ed33a555f24ef5,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite224_rg0.csv b/src/cz/crcs/ectester/data/composite/composite224_rg0.csv
new file mode 100644
index 0000000..835676d
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite224_rg0.csv
@@ -0,0 +1 @@
+0xa0dccd401872aa37c279e2469a08d97d559addb6fc870a1766f80e6f,0x393797f1d924dc63c761d4497086d09284a922a5517c07f93f3a075c,0x54f4673322854dafc1241b66192134ea9e18f8849c45660b793abb97,0x1b189f3372946c9cbb421a60bc3a0a06d16cf3ce043781ada561834c,0x57e00f270dbc56c6c86946dcb6c6ab12133d168609c588b6960c357f,0xa0dccd401872aa37c279e2469a0791ea2f15e32a10632ec07cf3ff97,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite224_small.csv b/src/cz/crcs/ectester/data/composite/composite224_small.csv
new file mode 100644
index 0000000..ea18b96
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite224_small.csv
@@ -0,0 +1 @@
+0xe6cacc569ea2a63aea0409959625c8f8238b0ddc2565046db20390ed,0x20484bda40fdcade9ff6f9147076e2824e5f0d057a4a95cfb1b9312d,0x14cacbe6ad4a700a3f6a44cdc0a60d6fd0a4f2052c5b9ae5661fd964,0xb4fbabc7cf96b62b08edbaa2df53346bbb871c121bbb35e771c74db5,0x61cf8b556f068f45ec69963964a0e8ab72c1fa0be48e2ea886235956,0x00000000000000000000000000000000000000000000000000000003,0x1 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite256_pq.csv b/src/cz/crcs/ectester/data/composite/composite256_pq.csv
new file mode 100644
index 0000000..380f756
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite256_pq.csv
@@ -0,0 +1 @@
+0xf75e78a6e2acb23d6317e57258287c00597e24881e0686039d0badb77b4e6b21,0x1aafadea1da31b45bbc02da735cc341f9cf9915884eb9cd31441520ead906b38,0x0f7f209988b0eada7190201ace3b3972d6ce3cbadac9933716d08645a7c31c63,0x4c4765a35cb2de9cc548d4dd47778b70395d023c4bf112f4bc820431502384e9,0x25bffa1f9ae1af10177f32abf13d3f607e78415c89676eeb13330098c9794503,0xf75e78a6e2acb23d6317e57258287c021fa26f10c359320ee8758b4e1f2c605d,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite256_pq1.csv b/src/cz/crcs/ectester/data/composite/composite256_pq1.csv
new file mode 100644
index 0000000..9ac845f
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite256_pq1.csv
@@ -0,0 +1 @@
+0xf75e78a6e2acb23d6317e57258287c00597e24881e0686039d0badb77b4e6b21,0x1aafadea1da31b45bbc02da735cc341f9cf9915884eb9cd31441520ead906b38,0x0f7f209988b0eada7190201ace3b3972d6ce3cbadac9933716d08645a7c31c63,0x7b258197e20de13053c3384efd34c3f17172d8ee22c4e23491ca2f867383d8de,0x4aa05d30077ed1bfa45301348e6ab9b1d436f1755c6747c958d4dc24fcb6996c,0x000000000000000000000000000000000000000000000000743bc7ea193d40db,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite256_pq2.csv b/src/cz/crcs/ectester/data/composite/composite256_pq2.csv
new file mode 100644
index 0000000..b8b5e9b
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite256_pq2.csv
@@ -0,0 +1 @@
+0xf75e78a6e2acb23d6317e57258287c00597e24881e0686039d0badb77b4e6b21,0x1aafadea1da31b45bbc02da735cc341f9cf9915884eb9cd31441520ead906b38,0x0f7f209988b0eada7190201ace3b3972d6ce3cbadac9933716d08645a7c31c63,0xda63037417b6151b844b2367428f52692f31f14a6654edc58edb5864d0e85ff7,0x8191a142a1c4f913e146af089b1cbe12a803473d207e93697afd1a83818e08be,0x000000000000000220d23234534b240aac0efa70a3bc44e046c2431ad5a32d27,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite256_rg0.csv b/src/cz/crcs/ectester/data/composite/composite256_rg0.csv
new file mode 100644
index 0000000..0c2d123
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite256_rg0.csv
@@ -0,0 +1 @@
+0xf75e78a6e2acb23d6317e57258287c00597e24881e0686039d0badb77b4e6b21,0x1aafadea1da31b45bbc02da735cc341f9cf9915884eb9cd31441520ead906b38,0x0f7f209988b0eada7190201ace3b3972d6ce3cbadac9933716d08645a7c31c63,0x93d1f4d02d6f0d2ea7b80f7095e70e731bcf66fb8118e7698a16eab45aadcaa4,0x51dccaa47e35062383e4878625bf2116be5413c34a1b964c7547f65297f0bc04,0xf75e78a6e2acb23d6317e57258287c021fa26f10c359320ee8758b4e1f2c605d,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite256_small.csv b/src/cz/crcs/ectester/data/composite/composite256_small.csv
new file mode 100644
index 0000000..58c0a75
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite256_small.csv
@@ -0,0 +1 @@
+0xdc42862158cdcfc8fbe8c4ec28b02e0e12624ebc15f6486163df218253e1b953,0x01f355375dac7e69cc12c22ce747782bf998252f1c9c9c983273bc2b7e721461,0x22098140e10d5d88bcc96a558500a022d0252bfbe438d3475ef2d90261fe3b1f,0x8ca20dd1fa045339a171513fb1daa25fa7439e4b97c129c6039e4b9abbac1532,0xb565bde8fe9831f0bce07d70784dc1b7064c443b54b5e96408c1942e30437cc3,0x0000000000000000000000000000000000000000000000000000000000000005,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite384.csv b/src/cz/crcs/ectester/data/composite/composite384.csv
index 7516301..4e9d058 100644
--- a/src/cz/crcs/ectester/data/composite/composite384.csv
+++ b/src/cz/crcs/ectester/data/composite/composite384.csv
@@ -1 +1 @@
-0x91520c5e44d7a5e9c673943d2fc502d2b35a1c9edc6189da10277423d7381fd4671fc706ff1dce6f8513317842fb655b,0x6c64adff869b4e0b9f0dd35945b24e3ab389232b1e506a71306e389dddbf43ec6c73d290fab04976da246fd77a7e28dd,0x4004c33e4f8b4de57064543802ca11810c79aa9990796d5750dba07f3e4e98f3dd18b3abe052208741149c3ad0fe6f56,0x39bf2e7d67ad506e074e04c1b73a4add511b0579cdae07bd6c025c703ee31ff33c0445c2cb10e465f0f453d996751e4e,0x667ec38866be3e87229e31e6dabc2444e2603e8118c0316e592571e9a904423e4792c18c0360ae57fcdaec87901d2e0b,0x91520c5e44d7a5e9c673943d2fc502d2b35a1c9edc6189db347c42a7d0924b7cd1414d57f582a4b96177c911e9bb3ddd,0x1 \ No newline at end of file
+0x91520c5e44d7a5e9c673943d2fc502d2b35a1c9edc6189da10277423d7381fd4671fc706ff1dce6f8513317842fb655b,0x6c64adff869b4e0b9f0dd35945b24e3ab389232b1e506a71306e389dddbf43ec6c73d290fab04976da246fd77a7e28dd,0x4004c33e4f8b4de57064543802ca11810c79aa9990796d5750dba07f3e4e98f3dd18b3abe052208741149c3ad0fe6f56,0x39bf2e7d67ad506e074e04c1b73a4add511b0579cdae07bd6c025c703ee31ff33c0445c2cb10e465f0f453d996751e4e,0x667ec38866be3e87229e31e6dabc2444e2603e8118c0316e592571e9a904423e4792c18c0360ae57fcdaec87901d2e0b,0x91520c5e44d7a5e9c673943d2fc502d2b35a1c9edc6189db347c42a7d0924b7cd1414d57f582a4b96177c911e9bb3ddd,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite384_small.csv b/src/cz/crcs/ectester/data/composite/composite384_small.csv
new file mode 100644
index 0000000..00b643b
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite384_small.csv
@@ -0,0 +1 @@
+0x91520c5e44d7a5e9c673943d2fc502d2b35a1c9edc6189da10277423d7381fd4671fc706ff1dce6f8513317842fb655b,0x6c64adff869b4e0b9f0dd35945b24e3ab389232b1e506a71306e389dddbf43ec6c73d290fab04976da246fd77a7e28dd,0x4004c33e4f8b4de57064543802ca11810c79aa9990796d5750dba07f3e4e98f3dd18b3abe052208741149c3ad0fe6f56,0x5136c182f03241ec87e6eec1728c1fb2d6b2ddcd4d9abf2a110c337419c4ec7cc8386b7b9ea9f5cb18b0f3c2a78e6489,0x9130cb73f8064fddb24d8c6a216b57fe99df93bcc82c93343617a5246ca1643fe57a06d6112a1791d1bd3643fbd9c041,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite521.csv b/src/cz/crcs/ectester/data/composite/composite521.csv
index 0cf36e7..8681273 100644
--- a/src/cz/crcs/ectester/data/composite/composite521.csv
+++ b/src/cz/crcs/ectester/data/composite/composite521.csv
@@ -1 +1 @@
-0x01c230ff4a64e33ad6da8361c7e2bf2a85e4ad5e88f8e3e8e7e3c42a6b9c9883b3690e2f82b38a684e823a257b3d5c4c2d7c34bfcb937fe5658c77247b28bc90c6af,0x00852cf32173a9b3a8a2316bbe6ba0b98efcc41247a17a8aead02ccc7cb90870daccd10a44e9385abf0d0ae175fa03c0facab1d2069b79795f36d10ce25430676805,0x0174e20e49d5970117cdfc61c0a0ae062519c0c4d577f42e0d3f1cd443732b8e62deb34922a4a6d85b8b7f6df61dadffec95c17babbfaf5c57598033be0b1a44e32f,0x01b1dbc5bd175cbd8699895698b10d047853679f048261094854134de1d6a81ffdd1cc31ede64293c9bee543ad2113c164bd1da92f5c3aa7ba7f0378bdb58251d870,0x0188b8c020cc1504eedb4fb859e40b8031cb26d9273efa2578bf7da01db994cf2a5cf2780b9a7ff6d33210b962ae20c56f71b7fa2b36deef33d7d675c6136acd73c1,0x1c230ff4a64e33ad6da8361c7e2bf2a85e4ad5e88f8e3e8e7e3c42a6b9c9883b36ec447771e871c188d3f04a4e407f1d659335dd0e351bd7f3f76a639726d6dc0d2,0x1 \ No newline at end of file
+0x01c230ff4a64e33ad6da8361c7e2bf2a85e4ad5e88f8e3e8e7e3c42a6b9c9883b3690e2f82b38a684e823a257b3d5c4c2d7c34bfcb937fe5658c77247b28bc90c6af,0x00852cf32173a9b3a8a2316bbe6ba0b98efcc41247a17a8aead02ccc7cb90870daccd10a44e9385abf0d0ae175fa03c0facab1d2069b79795f36d10ce25430676805,0x0174e20e49d5970117cdfc61c0a0ae062519c0c4d577f42e0d3f1cd443732b8e62deb34922a4a6d85b8b7f6df61dadffec95c17babbfaf5c57598033be0b1a44e32f,0x01b1dbc5bd175cbd8699895698b10d047853679f048261094854134de1d6a81ffdd1cc31ede64293c9bee543ad2113c164bd1da92f5c3aa7ba7f0378bdb58251d870,0x0188b8c020cc1504eedb4fb859e40b8031cb26d9273efa2578bf7da01db994cf2a5cf2780b9a7ff6d33210b962ae20c56f71b7fa2b36deef33d7d675c6136acd73c1,0x1c230ff4a64e33ad6da8361c7e2bf2a85e4ad5e88f8e3e8e7e3c42a6b9c9883b36ec447771e871c188d3f04a4e407f1d659335dd0e351bd7f3f76a639726d6dc0d2,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/composite521_small.csv b/src/cz/crcs/ectester/data/composite/composite521_small.csv
new file mode 100644
index 0000000..15df9c8
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/composite521_small.csv
@@ -0,0 +1 @@
+0x01c230ff4a64e33ad6da8361c7e2bf2a85e4ad5e88f8e3e8e7e3c42a6b9c9883b3690e2f82b38a684e823a257b3d5c4c2d7c34bfcb937fe5658c77247b28bc90c6af,0x00852cf32173a9b3a8a2316bbe6ba0b98efcc41247a17a8aead02ccc7cb90870daccd10a44e9385abf0d0ae175fa03c0facab1d2069b79795f36d10ce25430676805,0x0174e20e49d5970117cdfc61c0a0ae062519c0c4d577f42e0d3f1cd443732b8e62deb34922a4a6d85b8b7f6df61dadffec95c17babbfaf5c57598033be0b1a44e32f,0x00a4b42ad90c0e3f7e342d8d661b4d5162ab7928b4938ab660b2e6fea3213c5d4b420123f65141a8eb7b4a46173bfce6ea1577df94f6f934f72d459c4dd3c0ef038e,0x003316c4b6c5c6b3ab3eee7f1ff365cce6045fdc43d4e6c64efa7789f2626676b47b488e6612d291d60d4a788ddd2e8b1aa8bfff02e105a285532a20ac08fa1088e7,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/curves.xml b/src/cz/crcs/ectester/data/composite/curves.xml
index e940efe..f77159c 100644
--- a/src/cz/crcs/ectester/data/composite/curves.xml
+++ b/src/cz/crcs/ectester/data/composite/curves.xml
@@ -2,45 +2,520 @@
<curves xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../schema.xsd">
<curve>
- <id>composite128</id>
+ <id>whole/composite128</id>
<bits>128</bits>
<field>prime</field>
<file>composite128.csv</file>
+ <desc>r = order = 0x03 * 0x05 * 0x3b * 0x3a107e02cd073c8e24bf55730f1733</desc>
</curve>
<curve>
- <id>composite160</id>
+ <id>whole/composite160</id>
<bits>160</bits>
<field>prime</field>
<file>composite160.csv</file>
+ <desc>r = order = 0x02 * 0x03 * 0x6b * 0x1ee99b75143833bbc11d409601c25f9566a001</desc>
</curve>
<curve>
- <id>composite192</id>
+ <id>whole/composite192</id>
<bits>192</bits>
<field>prime</field>
<file>composite192.csv</file>
+ <desc>r = order = 0x02 * 0x03 * 0x05 * 0x13 * 0x19bc3c00e2a7ad9e40d12e5d9e29a2b5ce80b3a3e84295</desc>
</curve>
<curve>
- <id>composite224</id>
+ <id>whole/composite224</id>
<bits>224</bits>
<field>prime</field>
<file>composite224.csv</file>
+ <desc>r = order = 0x02 * 0x03 * 0x1d * 0x1538e6a6dc906d724a7bf51c77bce9d46865bd92d8bca01f887405</desc>
</curve>
<curve>
- <id>composite256</id>
+ <id>whole/composite256</id>
<bits>256</bits>
<field>prime</field>
<file>composite256.csv</file>
+ <desc>r = order = 0x02 * 0x05 * 0x11 * 0x1382cadcdd2b90b90b81eda82433bf574b5d8f5654dcc62341c7e967f2e811</desc>
</curve>
<curve>
- <id>composite384</id>
+ <id>whole/composite384</id>
<bits>384</bits>
<field>prime</field>
<file>composite384.csv</file>
+ <desc>r = order = 0x05 * 0x0b * 0x3d * 0xb16aa7dc50145337cf1b2f38018ccb5cf44c22a2f7d7c22bbe5c572d2cb9a04cb1081357c6a1c97cc39ab62596867</desc>
</curve>
<curve>
- <id>composite521</id>
+ <id>whole/composite521</id>
<bits>521</bits>
<field>prime</field>
<file>composite521.csv</file>
+ <desc>r = order = 0x02 * 0x05 * 0x1f * 0x4a5aac4fac3ea253b66c3e650f5173b30467f28b8e841d37ce69bb0831a5939ad3dd082b750577ec4592d4d58916c87a9b732d8ddae435c26f8f779d2467f50f</desc>
+ </curve>
+
+ <curve>
+ <id>small/composite128</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>composite128_small.csv</file>
+ <desc>r = 0x03</desc>
+ </curve>
+ <curve>
+ <id>small/composite160</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>composite160_small.csv</file>
+ <desc>r = 0x03</desc>
+ </curve>
+ <curve>
+ <id>small/composite192</id>
+ <bits>192</bits>
+ <field>prime</field>
+ <file>composite192_small.csv</file>
+ <desc>r = 0x03</desc>
+ </curve>
+ <curve>
+ <id>small/composite224</id>
+ <bits>224</bits>
+ <field>prime</field>
+ <file>composite224_small.csv</file>
+ <desc>r = 0x03</desc>
+ </curve>
+ <curve>
+ <id>small/composite256</id>
+ <bits>256</bits>
+ <field>prime</field>
+ <file>composite256_small.csv</file>
+ <desc>r = 0x05</desc>
+ </curve>
+ <curve>
+ <id>small/composite384</id>
+ <bits>384</bits>
+ <field>prime</field>
+ <file>composite384_small.csv</file>
+ <desc>r = 0x05</desc>
+ </curve>
+ <curve>
+ <id>small/composite521</id>
+ <bits>521</bits>
+ <field>prime</field>
+ <file>composite521_small.csv</file>
+ <desc>r = 0x05</desc>
+ </curve>
+
+ <curve>
+ <id>pq/composite128</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>composite128_pq.csv</file>
+ <desc>r = 0x03f76917eb * 0x3c1be1d1dd7edf84b8013495</desc>
+ </curve>
+ <curve>
+ <id>pq/composite128/1</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>composite128_pq1.csv</file>
+ <desc>r = 0x03f76917eb</desc>
+ </curve>
+ <curve>
+ <id>pq/composite128/2</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>composite128_pq2.csv</file>
+ <desc>r = 0x3c1be1d1dd7edf84b8013495</desc>
+ </curve>
+
+ <curve>
+ <id>rg0/composite128</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>composite128_rg0.csv</file>
+ <desc>|G| divides r(so [r]G = infinity), but r != |G| = 0x03f76917eb</desc>
+ </curve>
+
+ <curve>
+ <id>pq/composite160</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>composite160_pq.csv</file>
+ <desc>r = 0x0af2407f270b81f45f * 0x4d7041e1dbf10b42f48c4f</desc>
+ </curve>
+ <curve>
+ <id>pq/composite160/1</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>composite160_pq1.csv</file>
+ <desc>r = 0x0af2407f270b81f45f</desc>
+ </curve>
+ <curve>
+ <id>pq/composite160/2</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>composite160_pq2.csv</file>
+ <desc>r = 0x4d7041e1dbf10b42f48c4f</desc>
+ </curve>
+
+ <curve>
+ <id>rg0/composite160</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>composite160_rg0.csv</file>
+ <desc>|G| divides r(so [r]G = infinity), but r != |G| = 0x0af2407f270b81f45f</desc>
+ </curve>
+
+ <curve>
+ <id>pq/composite192</id>
+ <bits>192</bits>
+ <field>prime</field>
+ <file>composite192_pq.csv</file>
+ <desc>r = 0x302b72431ff070e7e06799 * 0x35efd8bad55038e6bd22db8b805</desc>
+ </curve>
+ <curve>
+ <id>pq/composite192/1</id>
+ <bits>192</bits>
+ <field>prime</field>
+ <file>composite192_pq1.csv</file>
+ <desc>r = 0x302b72431ff070e7e06799</desc>
+ </curve>
+ <curve>
+ <id>pq/composite192/2</id>
+ <bits>192</bits>
+ <field>prime</field>
+ <file>composite192_pq2.csv</file>
+ <desc>r = 0x35efd8bad55038e6bd22db8b805</desc>
+ </curve>
+
+ <curve>
+ <id>rg0/composite192</id>
+ <bits>192</bits>
+ <field>prime</field>
+ <file>composite192_rg0.csv</file>
+ <desc>|G| divides r(so [r]G = infinity), but r != |G| = 0x302b72431ff070e7e06799</desc>
+ </curve>
+
+ <curve>
+ <id>pq/composite224</id>
+ <bits>224</bits>
+ <field>prime</field>
+ <file>composite224_pq.csv</file>
+ <desc>r = 0x1824ec370e405bfb5024db * 0x6a99de2a928e8f227e7a2ed33a555f24ef5</desc>
+ </curve>
+ <curve>
+ <id>pq/composite224/1</id>
+ <bits>224</bits>
+ <field>prime</field>
+ <file>composite224_pq1.csv</file>
+ <desc>r = 0x1824ec370e405bfb5024db</desc>
+ </curve>
+ <curve>
+ <id>pq/composite224/2</id>
+ <bits>224</bits>
+ <field>prime</field>
+ <file>composite224_pq2.csv</file>
+ <desc>r = 0x6a99de2a928e8f227e7a2ed33a555f24ef5</desc>
+ </curve>
+
+ <curve>
+ <id>rg0/composite224</id>
+ <bits>224</bits>
+ <field>prime</field>
+ <file>composite224_rg0.csv</file>
+ <desc>|G| divides r(so [r]G = infinity), but r != |G| = 0x1824ec370e405bfb5024db</desc>
+ </curve>
+
+ <curve>
+ <id>pq/composite256</id>
+ <bits>256</bits>
+ <field>prime</field>
+ <file>composite256_pq.csv</file>
+ <desc>r = 0x743bc7ea193d40db * 0x220d23234534b240aac0efa70a3bc44e046c2431ad5a32d27</desc>
+ </curve>
+ <curve>
+ <id>pq/composite256/1</id>
+ <bits>256</bits>
+ <field>prime</field>
+ <file>composite256_pq1.csv</file>
+ <desc>r = 0x743bc7ea193d40db</desc>
+ </curve>
+ <curve>
+ <id>pq/composite256/2</id>
+ <bits>256</bits>
+ <field>prime</field>
+ <file>composite256_pq2.csv</file>
+ <desc>r = 0x220d23234534b240aac0efa70a3bc44e046c2431ad5a32d27</desc>
+ </curve>
+
+ <curve>
+ <id>rg0/composite256</id>
+ <bits>256</bits>
+ <field>prime</field>
+ <file>composite256_rg0.csv</file>
+ <desc>|G| divides r(so [r]G = infinity), but r != |G| = 0x743bc7ea193d40db</desc>
+ </curve>
+
+ <curve>
+ <id>pp/carmichael128</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>carmichael_128.csv</file>
+ <desc>r = Carmichael pseudoprime = 0x2ddbfe0f1f7 * 0x5bb7fc1e3ed * 0x8993fa2d5e3</desc>
+ </curve>
+ <curve>
+ <id>pp/carmichael192</id>
+ <bits>192</bits>
+ <field>prime</field>
+ <file>carmichael_192.csv</file>
+ <desc>r = Carmichael pseudoprime = 0x730ea70deea47eeb * 0xe61d4e1bdd48fdd5 * 0x1592bf529cbed7cbf</desc>
+ </curve>
+ <curve>
+ <id>pp/carmichael224</id>
+ <bits>224</bits>
+ <field>prime</field>
+ <file>carmichael_224.csv</file>
+ <desc>r = Carmichael pseudoprime = 0x2e6e4205e9ea74ebefd * 0x5cdc840bd3d4e9d7df9 * 0x8b4ac611bdbf5ec3cf5</desc>
+ </curve>
+ <curve>
+ <id>pp/carmichael256</id>
+ <bits>256</bits>
+ <field>prime</field>
+ <file>carmichael_256.csv</file>
+ <desc>r = Carmichael pseudoprime = 0x129e94800bf86bd2d04ce1 * 0x253d290017f0d7a5a099c1 * 0x37dbbd8023e9437870e6a1</desc>
+ </curve>
+ <curve>
+ <id>pp/carmichael384</id>
+ <bits>384</bits>
+ <field>prime</field>
+ <file>carmichael_384.csv</file>
+ <desc>r = Carmichael pseudoprime = 0x78b4fa97e97300a5c46b32fb522cf76f * 0xf169f52fd2e6014b88d665f6a459eedd * 0x16a1eefc7bc5901f14d4198f1f686e64b</desc>
+ </curve>
+ <curve>
+ <id>pp/carmichael512</id>
+ <bits>512</bits>
+ <field>prime</field>
+ <file>carmichael_512.csv</file>
+ <desc>r = Carmichael pseudoprime = 0x2f6e41969c169b4e97b0a1c46ca4fb3a8f294afaefb * 0x5edc832d382d369d2f614388d949f6751e5295f5df5 * 0x8e4ac4c3d443d1ebc711e54d45eef1afad7be0f0cef</desc>
+ </curve>
+ <curve>
+ <id>pp/carmichael521</id>
+ <bits>521</bits>
+ <field>prime</field>
+ <file>carmichael_521.csv</file>
+ <desc>r = Carmichael pseudoprime = 0x170ac4fd154250e674f9ac6e0c29a214c6d6553e4f11 * 0x2e1589fa2a84a1cce9f358dc185344298dacaa7c9e21 * 0x45204ef73fc6f2b35eed054a247ce63e5482ffbaed31</desc>
+ </curve>
+
+ <curve>
+ <id>varying/160/1</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/2a.csv</file>
+ <desc>r = 2 bit prime = 2</desc>
+ </curve>
+ <curve>
+ <id>varying/160/2</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/2b.csv</file>
+ <desc>r = 2 bit prime = 3</desc>
+ </curve>
+ <curve>
+ <id>varying/160/3</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/3.csv</file>
+ <desc>r = 3 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/4</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/4.csv</file>
+ <desc>r = 4 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/5</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/5.csv</file>
+ <desc>r = 5 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/6</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/6.csv</file>
+ <desc>r = 6 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/7</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/7.csv</file>
+ <desc>r = 7 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/8</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/8.csv</file>
+ <desc>r = 8 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/10</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/10.csv</file>
+ <desc>r = 10 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/12</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/12.csv</file>
+ <desc>r = 12 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/14</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/14.csv</file>
+ <desc>r = 14 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/16</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/16.csv</file>
+ <desc>r = 16 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/20</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/20.csv</file>
+ <desc>r = 20 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/25</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/25.csv</file>
+ <desc>r = 25 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/32</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/32.csv</file>
+ <desc>r = 32 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/48</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/48.csv</file>
+ <desc>r = 48 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/64</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/64.csv</file>
+ <desc>r = 64 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/70</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/70.csv</file>
+ <desc>r = 70 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/80</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/80.csv</file>
+ <desc>r = 80 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/90</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/90.csv</file>
+ <desc>r = 90 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/96</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/96.csv</file>
+ <desc>r = 96 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/112</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/112.csv</file>
+ <desc>r = 112 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/128</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/128.csv</file>
+ <desc>r = 128 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/135</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/135.csv</file>
+ <desc>r = 135 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/140</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/140.csv</file>
+ <desc>r = 140 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/144</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/144.csv</file>
+ <desc>r = 144 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/146</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/146.csv</file>
+ <desc>r = 146 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/148</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/148.csv</file>
+ <desc>r = 148 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/150</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/150.csv</file>
+ <desc>r = 150 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/152</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/152.csv</file>
+ <desc>r = 152 bit prime</desc>
+ </curve>
+ <curve>
+ <id>varying/160/152cofactor</id>
+ <bits>160</bits>
+ <field>prime</field>
+ <file>varying/160/152_cofactor.csv</file>
+ <desc>r = 152 bit prime, with correct cofactor</desc>
</curve>
</curves> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/keys.xml b/src/cz/crcs/ectester/data/composite/keys.xml
index f333042..8a98135 100644
--- a/src/cz/crcs/ectester/data/composite/keys.xml
+++ b/src/cz/crcs/ectester/data/composite/keys.xml
@@ -2,569 +2,569 @@
<keys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../schema.xsd"
category="composite"
- desc="Points on the non-prime curves, very small point orders(3-5).">
+ desc="Points on the composite curves, very small point orders(3-5).">
<pubkey>
<id>composite128/1</id>
<inline>0x746fa441b3a54d3c531bd59d119f400d,0x73aff68dbd96e1485cd2de0f6389cc70</inline>
- <curve>composite/composite128</curve>
+ <curve>composite/whole/composite128</curve>
<desc>order = 3</desc>
</pubkey>
<pubkey>
<id>composite128/2</id>
<inline>0x6e9dc37af66af0045d7a2e414d4bfb89,0x40b01d2f36c9a5b2a1cb28386dd12470</inline>
- <curve>composite/composite128</curve>
+ <curve>composite/whole/composite128</curve>
<desc>order = 5</desc>
</pubkey>
<pubkey>
<id>composite128/3</id>
<inline>0x32076e371a48d82777ce851969439ab8,0xb049b7d6ba6f2d9c6ce240bc689d3556</inline>
- <curve>composite/composite128</curve>
+ <curve>composite/whole/composite128</curve>
<desc>order = 15</desc>
</pubkey>
<pubkey>
<id>composite128/4</id>
<inline>0xc819a68e95796650cd7d11e8ad65806f,0x280e9c9b7e5d9a5e07653ee2afac83e7</inline>
- <curve>composite/composite128</curve>
+ <curve>composite/whole/composite128</curve>
<desc>order = 59</desc>
</pubkey>
<pubkey>
<id>composite128/5</id>
<inline>0x66f66346d87e2214bf1bfc3331628c81,0x8c1a74b09bbbb515b027d89dcc1cecb2</inline>
- <curve>composite/composite128</curve>
+ <curve>composite/whole/composite128</curve>
<desc>order = 177</desc>
</pubkey>
<pubkey>
<id>composite128/6</id>
<inline>0xa546a97bd17378bd6e5c42c4ab857cac,0x13b99be68904a968a8d4ca6feab23f40</inline>
- <curve>composite/composite128</curve>
+ <curve>composite/whole/composite128</curve>
<desc>order = 295</desc>
</pubkey>
<pubkey>
<id>composite128/7</id>
<inline>0x6ae9f873a9da27b41e676d3514c96e56,0x8f6479493be1835cee6b9f29df21f74f</inline>
- <curve>composite/composite128</curve>
+ <curve>composite/whole/composite128</curve>
<desc>order = 885</desc>
</pubkey>
<pubkey>
<id>composite160/1</id>
<inline>0x37efeffb592df52c0080de1a5074505fb9bd7d6f,0x0000000000000000000000000000000000000000</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 2</desc>
</pubkey>
<pubkey>
<id>composite160/2</id>
<inline>0x68684425389f5552a24b7c205e19da7a0c10a1cb,0x825ecf13c08f314cd6ad5eae73044c71e9876409</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 3</desc>
</pubkey>
<pubkey>
<id>composite160/3</id>
<inline>0x61602e67d8e17442afb37c07ea9fff2beb6c5b63,0x525e64d325c225855df22c141ab48292e2f8f937</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 4</desc>
</pubkey>
<pubkey>
<id>composite160/4</id>
<inline>0x041fea694918a16ede5e6c32e24f52f7827b7942,0x0c4005ad4b02d3f04ba662cca7c5ae4de9a9ba1e</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 6</desc>
</pubkey>
<pubkey>
<id>composite160/5</id>
<inline>0x896db2058ec6de5bf0c3d4729449c161f3a6513c,0x168828b2d35afa6ae22cfb88470444ecfe31565a</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 12</desc>
</pubkey>
<pubkey>
<id>composite160/6</id>
<inline>0x5addb1c0c2b73b1c3bfa6ee1d4fa55c3d6cb79c8,0x18cf3b6fc6ac06a6af69817234799a7bed594e16</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 107</desc>
</pubkey>
<pubkey>
<id>composite160/7</id>
<inline>0x2a8b120fa9fb0901280068fac4c7343c91707974,0x3c64f73118aa3e6263f988428d4f8e931c835dbd</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 214</desc>
</pubkey>
<pubkey>
<id>composite160/8</id>
<inline>0x09814e9b98b521aa510d24e2eb68484f9cd4f446,0x030f959368478d906bd830105e1e645f9a3e7aa7</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 321</desc>
</pubkey>
<pubkey>
<id>composite160/9</id>
<inline>0x475d0927fdea77619a4c0f3d7f78fa17b1a82ebf,0x0f9ef6e4b67034f84f2568cf93bcd6244f99befb</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 428</desc>
</pubkey>
<pubkey>
<id>composite160/10</id>
<inline>0x441a137ed2bbe1397492bacec4d8d98e54e88fcd,0x1ba3217b753b1fd483ebd0eb6ce6642ab8f9b1d1</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 642</desc>
</pubkey>
<pubkey>
<id>composite160/11</id>
<inline>0x8fcb8221093a80fe3ab7ee7ce952ae78e21177c3,0x29c944efc6e04c8a3393470be6eff62e250795c8</inline>
- <curve>composite/composite160</curve>
+ <curve>composite/whole/composite160</curve>
<desc>order = 504</desc>
</pubkey>
<pubkey>
<id>composite192/1</id>
<inline>0x8220bcea81992c46bc57e0dae661eeff29e66d64b33253c5,0x000000000000000000000000000000000000000000000000</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 2</desc>
</pubkey>
<pubkey>
<id>composite192/2</id>
<inline>0x94863540fdd9e8f415df79e18aee4bdd0914127581b6bb15,0x3aa760e488d12f8f93b10da531e1dbc033db25729119839f</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 3</desc>
</pubkey>
<pubkey>
<id>composite192/3</id>
<inline>0x0cdf12ec0389daa5dc4fb9a877082e7acc4d7054d7eb320d,0x2a135f63802b9bb9064ffe6d319942ada312b0a06a506c68</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 5</desc>
</pubkey>
<pubkey>
<id>composite192/4</id>
<inline>0x3d2cf1aa8ef6db0076b8e026f5f5eeb612bed45c2bf57796,0x40b1b1c78925a90c4f9c994ee9ac8a97ce8e1e5613676ec1</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 6</desc>
</pubkey>
<pubkey>
<id>composite192/5</id>
<inline>0x069f245ec322d6ed422f18b4df1b2728bcff22a08c160de7,0x792466cd587549a3ffb4dbe491d54e5df25494ba9be83472</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 9</desc>
</pubkey>
<pubkey>
<id>composite192/6</id>
<inline>0x649ddaeba68589618a326232704a4324957c8191fd558c60,0x9461496a59b680b82f199144c29323e061273efa62a60faf</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 10</desc>
</pubkey>
<pubkey>
<id>composite192/7</id>
<inline>0x319a75780c9090f769b69b082ad16dbce0e8bdbc16d04cd5,0x76b03040b524f21b3dd5008995459ca8ed35dae3722c7035</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 15</desc>
</pubkey>
<pubkey>
<id>composite192/8</id>
<inline>0x77acef779d8562b4492309adf946f5970bb83190ad76a2e3,0x3e98d9c7b72a8bfd5c6f6a7c07478df003d273b1326caa6c</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 18</desc>
</pubkey>
<pubkey>
<id>composite192/9</id>
<inline>0x1e90f09d5328536457f6d9fe58444f086e32229007ef12fc,0x26407fbfba9f796afa97ea2c2e986d3343d711015b220f44</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 19</desc>
</pubkey>
<pubkey>
<id>composite192/10</id>
<inline>0xa2e5982912dd423cfb745a01088e540b41e19ba84107cddc,0xaa29fc9dd974238b9daf73997d3c4dd331584d87356f9549</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 30</desc>
</pubkey>
<pubkey>
<id>composite192/11</id>
<inline>0x670c2e74df1cf4f473ab37ef685b2a915858863bc9c67868,0x2edc6b47a9fbe500c2f4f4b79bb44b229dd99194aca26d5a</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 38</desc>
</pubkey>
<pubkey>
<id>composite192/12</id>
<inline>0x14c936965c39188192d431aaf96f37e0d398b5a858933b3c,0x19c6526df20625d92445007603f19dd120702351869f9ae3</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 45</desc>
</pubkey>
<pubkey>
<id>composite192/13</id>
<inline>0x595694d6d70b13b372b2f1b4daf5ffd391513d9542b0d600,0x099f0ac0ce38d9920f3c59a63433230f4f945716c8d246f9</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 57</desc>
</pubkey>
<pubkey>
<id>composite192/14</id>
<inline>0x09cf293ad9517ef1932fb81a4800d60a768356fd2980ae77,0x1b12ab568cb4ac07593bb7cd6bc8a9364bac3c345419026f</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 90</desc>
</pubkey>
<pubkey>
<id>composite192/15</id>
<inline>0x9424bf6ba15758fc88df622be2a7055ebd34bb0e8e89c945,0x2611aaf3752880c39238f669d910ca591358e5aa06f95119</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 95</desc>
</pubkey>
<pubkey>
<id>composite192/16</id>
<inline>0x4289f802fa238ded56eda2164532f205cdde5b9ba58b8226,0xa2e1cdff2ae8312f4882ff44e4ef1d9e16be424fecd624e3</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 114</desc>
</pubkey>
<pubkey>
<id>composite192/17</id>
<inline>0x5cabb4f80e166127067104af1327a8531c053ec510702d6a,0x2fdd3945ffdde5e5389ff43ec323031f9c39b795fbb9f41b</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 171</desc>
</pubkey>
<pubkey>
<id>composite192/18</id>
<inline>0x9a6f5c897b695025e86d74043bf6a5a2bdf38ea7e2fe8f0e,0x4367779cadb1f8a193ac73dc51293aa0e94e930456e89692</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 190</desc>
</pubkey>
<pubkey>
<id>composite192/19</id>
<inline>0x30f786b7a6a3292c40a1a2ac6934646595787c4f003a08c3,0x84e4b9970c123d1f5188fca8f27152d377d85f2352543992</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 285</desc>
</pubkey>
<pubkey>
<id>composite192/20</id>
<inline>0x042d015cd6633de4ed1700c346774ae17263b3e284b43162,0x7c27c4593d37115d93bfd33797ae73f0805117b032289e46</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 342</desc>
</pubkey>
<pubkey>
<id>composite192/21</id>
<inline>0x9f62978f1018599e5139fa6560fe3a39c108674f361b1389,0x884e25851a5de235df686fbb870e6b7b81accb8bbc63cd15</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 570</desc>
</pubkey>
<pubkey>
<id>composite192/22</id>
<inline>0x29d846d8f363bc58149fdf6eaced9dbc7692a0942f6ecabb,0x784af0c66238ef9cdf900eee2fdce8081d2aa59dd327c8c3</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 855</desc>
</pubkey>
<pubkey>
<id>composite192/23</id>
<inline>0x3c6d33801293213a71f4a7d9b1091cabb89bcf7fc266084e,0x80eb1f866a3774c45811feaee8cda2f020e5aec70a2b5233</inline>
- <curve>composite/composite192</curve>
+ <curve>composite/whole/composite192</curve>
<desc>order = 1710</desc>
</pubkey>
<pubkey>
<id>composite224/1</id>
<inline>0x14f89a6ef687659649fd6e0e6cb1f7f27c0f9f94fc872e7f54a9c856,0x00000000000000000000000000000000000000000000000000000000</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 2</desc>
</pubkey>
<pubkey>
<id>composite224/2</id>
<inline>0xb4fbabc7cf96b62b08edbaa2df53346bbb871c121bbb35e771c74db5,0x61cf8b556f068f45ec69963964a0e8ab72c1fa0be48e2ea886235956</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 3</desc>
</pubkey>
<pubkey>
<id>composite224/3</id>
<inline>0x5b98ef6f104d0cc4159cc793d52713bafbc2b37a9f64af8f962b1c5a,0x7935aef16b1cb800beca9ab322aa8ecf8281f870057a8e1fbdd72490</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 4</desc>
</pubkey>
<pubkey>
<id>composite224/4</id>
<inline>0x3abe85a7ef34758c487373eb1f193a86f2b073b23a42ab3753596308,0xca9743c8ebf2fe6ceb300b93e0742ebe5f594b2ed84dba7f42f7aedc</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 6</desc>
</pubkey>
<pubkey>
<id>composite224/5</id>
<inline>0x3b931bbe008a038b5a5b03cf34c4102ba919579bd0a81f066193ab76,0x794f623ed1525010559240ad899b19a841bbbb818a64f32fc28c9931</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 8</desc>
</pubkey>
<pubkey>
<id>composite224/6</id>
<inline>0x6ca8b206ce077be28ff56c18295508ade9fce4a051d4975d61ee84d0,0x1f5720ccc870e31e83eb58f7c7c5ada471f7502ae5b2d87a69109df7</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 12</desc>
</pubkey>
<pubkey>
<id>composite224/7</id>
<inline>0x45437959ee88358cd8ee9902139cf6c9eee124c8ee199bd1a1ecc2da,0x756ad18b140d6a13a010fc21f1c4cf45a67eeb4c3dd4b202e9ae775f</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 16</desc>
</pubkey>
<pubkey>
<id>composite224/8</id>
<inline>0xd2074198f477e79a92918d4a5bc0ba104de4b0369104a8b51012595d,0x5025127d318e3c34e4fbbefb397874a3ed50a9cfd6ca455d4be02125</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 24</desc>
</pubkey>
<pubkey>
<id>composite224/9</id>
<inline>0x4513ad86e9415caae932018d67c869dbbe001cd53e64d82d205f4e2a,0x130dbd3e71618ddb0464bf3e894c30e1dd3bc25bb01e09e5b50a001d</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 29</desc>
</pubkey>
<pubkey>
<id>composite224/10</id>
<inline>0x2f4f470b72c093667e3f433a5189988adbb0fe1ae36482c3eeecf8a4,0xc1ac6c167ff41b0842f6470bac49d2a518da6c4c456c5657be15dec6</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 32</desc>
</pubkey>
<pubkey>
<id>composite224/11</id>
<inline>0x58741bd7ac127ecf8aa7c9fd78d22d81f8c10bb971bb77c015f69cd6,0x52e914fc15edb4af4a53ebeaf8466d2b7cf1bfe4a78c036a8faa5cdf</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 48</desc>
</pubkey>
<pubkey>
<id>composite224/12</id>
<inline>0x7a06eeb07784de6a15d1322243b4edbe24eb9d24869e1d9b7b883686,0xba5f157579eda39cc85cf04cd48f710133716a0fa0f5a48c3948381c</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 58</desc>
</pubkey>
<pubkey>
<id>composite224/13</id>
<inline>0x67d78ae1eaa30a898a3497c0cff43675be6d8cd4e41971661e8622b8,0x2e7337490aa8220d721167f7d047952af1d68615b07619607c771f5d</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 87</desc>
</pubkey>
<pubkey>
<id>composite224/</id>
<inline>0x30eea9b5158e7ba9ba6a2a955942e3324c6539a70e78270abe43f7fd,0xb3eb76bbcac6cd68e28688d70f431d26147bbb380bf1938d8038418e</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 96</desc>
</pubkey>
<pubkey>
<id>composite224/14</id>
<inline>0x4a27a6d15ecdfa776161aa180a4cd2de898610aac1b274f7a85d7ef1,0xd92847404473b63060e1514fe6a431130a79512c867d89eda0e3c674</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 116</desc>
</pubkey>
<pubkey>
<id>composite224/15</id>
<inline>0x6a7ed0907ecee744da1a57ec48ff6cfc0d8d77c67a585fd9750081e6,0x96106e57beafd660a8622f6341967fd4565ce9f4f09793cc3f287316</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 174</desc>
</pubkey>
<pubkey>
<id>composite224/16</id>
<inline>0x52c53640843d85f9945b18452a96e48816bbb52c76d012b3bd197f79,0x9630aba4de01758e0aaddef1de1cfb070af629f80c3ad3bb21e3cce5</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 232</desc>
</pubkey>
<pubkey>
<id>composite224/17</id>
<inline>0x88166b34bee1151dc0589da4bed6da8c6a2e9d4c78eb4ef21c5a9efd,0xbb92af84b1faffb9cbd516316e2c58dabd3867c5ac4dccb4b3d7c25c</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 348</desc>
</pubkey>
<pubkey>
<id>composite224/18</id>
<inline>0x02edb51c0bc83b37cc89d2a7eab42719f0c847d61334022b6ca765c6,0xe08729140e552810499c414488de5751769d595940be05992e1e2977</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 464</desc>
</pubkey>
<pubkey>
<id>composite224/19</id>
<inline>0x96967cf6b0ae919e50f815ac8ebcc35d0625b518d3fd095224b3c70a,0xd7d51361df21536593163d588bb4843a3ea53bfb114e43afa5eae2fb</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 696</desc>
</pubkey>
<pubkey>
<id>composite224/20</id>
<inline>0xb2b0a8e35a9597549a98a150f2b2a311feb560c99923e5ad23befcfa,0x6275928b50ccfd639b81c77c65a8d016c7ea4a035975e871dd10ef5d</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 928</desc>
</pubkey>
<pubkey>
<id>composite224/21</id>
<inline>0xd22b61d5ba5ee04d963bedcbb11165c23990b7053e5d9aef656eb078,0xa000d64563591df0b2f9e270247bca57b242e70f58ed57b4a8acec2e</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 1392</desc>
</pubkey>
<pubkey>
<id>composite224/22</id>
<inline>0x1f126f0463995cd293799fc58cb3efa1459a539cbd2d88c8d7283cfc,0x51175df02b5884fce8bfd17a7a97ccf12a5fdfdec4c297b301e477cc</inline>
- <curve>composite/composite224</curve>
+ <curve>composite/whole/composite224</curve>
<desc>order = 2784</desc>
</pubkey>
<pubkey>
<id>composite256/1</id>
<inline>0xadd83091be650ca4d78b81c1ae2851a9197a5fe33a136d368ecbb1fe06200764,0x0000000000000000000000000000000000000000000000000000000000000000</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 2</desc>
</pubkey>
<pubkey>
<id>composite256/2</id>
<inline>0x8ca20dd1fa045339a171513fb1daa25fa7439e4b97c129c6039e4b9abbac1532,0xb565bde8fe9831f0bce07d70784dc1b7064c443b54b5e96408c1942e30437cc3</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 5</desc>
</pubkey>
<pubkey>
<id>composite256/3</id>
<inline>0x7f25698dc1a9a0810dbd97e1918ea4a78f20783ce3ed4133df0fe6f66fe29c3f,0x0eff3a76e05d5e24b6b57c13f704ea2a54750502000c9d3f04d1ad932cfb6d3e</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 10</desc>
</pubkey>
<pubkey>
<id>composite256/4</id>
<inline>0x8b6be31db337293200eb7a6a2ac144374223a4f76ea7b003eb789d0622cbc806,0xd9556692a39eb79d29c0a019d94f88737edd90006f55ecdc1ac204c81eb0c32b</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 17</desc>
</pubkey>
<pubkey>
<id>composite256/5</id>
<inline>0x497170999460d32516062fa49929789e645a46e2db216e83a7f738d2c5c482d6,0xa1666de87f4f0de0ed523a962d386349d87b4e40c7c6db555e52e33da3de738b</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 34</desc>
</pubkey>
<pubkey>
<id>composite256/6</id>
<inline>0x409a4d05651cfa87af444fa58f9d3fa3d5bbd25a8c9f7a6be200b5255bb06bac,0x3a08b088284a3da5c59246379b9b7aa36a86917f58c390cc49d2172e33d5c094</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 85</desc>
</pubkey>
<pubkey>
<id>composite256/7</id>
<inline>0x5ebd412e2785d08f2fd0403a3df2d028a4c33c887637d75ce05543cb6c33f172,0xa3f76e00200df483e710db5724c08ef01f813959ae3205b5e4e3c7a051d303b8</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 170</desc>
</pubkey>
<pubkey>
<id>composite256/8</id>
<inline>0x756ab6f97c43c68c38c8070766c3d86df422f8bc9c8e5ff8e8fee0af683b58e0,0x08746e1b87c5e8e582fa8a4e13b5971728af1e6c6f74a28478b0a606357c17b4</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 289</desc>
</pubkey>
<pubkey>
<id>composite256/9</id>
<inline>0x0e02b7a9def8eb46986ad908a49109267beb19e331bc399eb036ec087c2081c5,0xa1e1fff1a84a3b131c072f76c1ed54293f5d82dc5c9c78c9984786648d172cb2</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 578</desc>
</pubkey>
<pubkey>
<id>composite256/10</id>
<inline>0x5330e8ad3035f2b256091a362313ae5b7f183d11c3fce1528443cf2626911e09,0xb3abb61c1ac189a3980f8c6dfc4330997096dca089273000a7302682b40ff6bc</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 1445</desc>
</pubkey>
<pubkey>
<id>composite256/11</id>
<inline>0x31f4f374d564ec73cd4e066ec84cdfa89be9389c2c0e557d0226af8f4a960768,0xba1b2169c90ea6cf612db29e4142c1483f9268012114148e28d35969669a7549</inline>
- <curve>composite/composite256</curve>
+ <curve>composite/whole/composite256</curve>
<desc>order = 2890</desc>
</pubkey>
<pubkey>
<id>composite384/1</id>
<inline>0x5136c182f03241ec87e6eec1728c1fb2d6b2ddcd4d9abf2a110c337419c4ec7cc8386b7b9ea9f5cb18b0f3c2a78e6489,0x9130cb73f8064fddb24d8c6a216b57fe99df93bcc82c93343617a5246ca1643fe57a06d6112a1791d1bd3643fbd9c041</inline>
- <curve>composite/composite384</curve>
+ <curve>composite/whole/composite384</curve>
<desc>order = 5</desc>
</pubkey>
<pubkey>
<id>composite384/2</id>
<inline>0x20070cc3e17bf1c770ef297b679c54d6454a3cd5effd94e236677b10e3e8075a8a9902ecd71e930f19fda4d79931502d,0x04a21190dbba4b6efe62640887256163ba5c9fa706aad74f1bfebdc27ca6f9e2f9b37bf9abf2c72803968799e2c7e702</inline>
- <curve>composite/composite384</curve>
+ <curve>composite/whole/composite384</curve>
<desc>order = 11</desc>
</pubkey>
<pubkey>
<id>composite384/3</id>
<inline>0x6d24691bacf187946f24885f2bec9a6b09239f4b7d93651c8c62f0221ba695baa5f70c49028ca5bc462289edcec081fe,0x7489fb2fd719c84ab0a12eed6f5f45fabb7c19d49d9d185a4d4efcffc9d2110a1b5a04961251f1ab19908662c8dadc9a</inline>
- <curve>composite/composite384</curve>
+ <curve>composite/whole/composite384</curve>
<desc>order = 55</desc>
</pubkey>
<pubkey>
<id>composite384/4</id>
<inline>0x0c5dccdb9c83f4d3cad69213b80f2c969210a228b85dce49c8a31ad08cf232118c6eb03d3b7e3d7bc8add230c24d184b,0x6316b45ee6832912cf3d54fc1fb73de47753ed225074cf76ebcdecb5f0c797e166b90767e2f267a4ea6b43cf6cde23c1</inline>
- <curve>composite/composite384</curve>
+ <curve>composite/whole/composite384</curve>
<desc>order = 61</desc>
</pubkey>
<pubkey>
<id>composite384/5</id>
<inline>0x32a43b215a94626d6f28974d5622469ebbdb7a54fef268267066fa3199f343f044248f39bf6ef10bdfffa6cb80155bb7,0x3d6a14e4bfec02b2306649a6da4fbbac157cecb3faa6cc9e62b5a469ea7f17a6f5e66a7c6753eee3f9cb7bdd4d0f8a4c</inline>
- <curve>composite/composite384</curve>
+ <curve>composite/whole/composite384</curve>
<desc>order = 305</desc>
</pubkey>
<pubkey>
<id>composite384/6</id>
<inline>0x5baac92f9d31ffd1cf982566f6d4bc239350ffae1f6b068ec07fb200795f4a902978d080a70d5908bd8ee283723ee196,0x164584fff8bb749bb781eedc62f9a39f658490969d24bff24b5c91f7af7eb7dd967b0066daf54678788f241b67d1a78b</inline>
- <curve>composite/composite384</curve>
+ <curve>composite/whole/composite384</curve>
<desc>order = 671</desc>
</pubkey>
<pubkey>
<id>composite384/7</id>
<inline>0x3b2d81fd9001d4b208e9d6312553bc3c2ca0853145dd882188b4b197152faca8f1194826c745f74c90d96594dcc0794b,0x8fef63c95e804b6ab0bbe7142bb56ecaa24737e8f97466d68f0c9ca7c230480b28d958d69277fcbcd77f6a566423ddec</inline>
- <curve>composite/composite384</curve>
+ <curve>composite/whole/composite384</curve>
<desc>order = 3355</desc>
</pubkey>
<pubkey>
<id>composite521/1</id>
<inline>0x01221fb007e1c2f7413b4d79a0265baf9d9ea2850e9e262b28ef5ead6f5f505d05cf731a891a443e7c1a35c867d7a3de4118f76d1cb68f6479eb85fe87fc9c6be098,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 2</desc>
</pubkey>
<pubkey>
<id>composite521/2</id>
<inline>0x00a4b42ad90c0e3f7e342d8d661b4d5162ab7928b4938ab660b2e6fea3213c5d4b420123f65141a8eb7b4a46173bfce6ea1577df94f6f934f72d459c4dd3c0ef038e,0x003316c4b6c5c6b3ab3eee7f1ff365cce6045fdc43d4e6c64efa7789f2626676b47b488e6612d291d60d4a788ddd2e8b1aa8bfff02e105a285532a20ac08fa1088e7</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 5</desc>
</pubkey>
<pubkey>
<id>composite521/3</id>
<inline>0x0039ccb35a071951bda5c9c40edb1fbfa365ce59a2a89ee37739708d748cc66bb19cbcfa30cc4ef6bfbb48728e930d940e30c64b6d77c0e64c79c1bad49540084662,0x00d7016bd5016c8ba9601ec3dd44f77b8ff7bb3aaa6c358ac78bf931f7f4d140e4de1912c343bfe7956ab0b29aa9ec0922008d025e9895a8141bd7c88f913e745e29</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 10</desc>
</pubkey>
<pubkey>
<id>composite521/4</id>
<inline>0x00426f8691e7f8afc0f7443206d3d44779b96c942714386733853530d3af4944e1ad38c7c1047f50e2bf8db7dfc0d4a8803976da934eaaa19e478ee026736ae8ac6d,0x00c97e0d2dedcd7b601430f1b8959c26c24918f6c9bd803bfe8cc015e7285956f878f27a33c91f64fec051f478cadcb7ed80c21127a7916d1e2c88ee921f1f65cf94</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 25</desc>
</pubkey>
<pubkey>
<id>composite521/5</id>
<inline>0x001550be76b460f82f2fbf3ebfd9709c50c07ec18c250c01b7d934eda2bcf3b78f648b7dd813cfd58a3f12ab35ad015c03ed0e14af6ef1560706dd59fafc32ecd5aa,0x00eb5368f5c53f70d88bbb1f31afe0d730aac4523b998043b2029a441528f7ae3483773117184e8d2efc875fe5447b0eb4ffb781bb014c67505434477fc4d6e343cd</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 31</desc>
</pubkey>
<pubkey>
<id>composite521/6</id>
<inline>0x016bad260ce10570e179138810152059e4ed8d1a6f5d8f8f2697ff98e8a1d8400cb5fb2334e5ccd88c3933add314e1f94b67ce99a4594da7754b39d58262c2275827,0x004a9b47353f119a01bb8dff6f63b58499a83c20a6fb8cbf84e717e35643c23eefef157891ca720b332355b70ee265bad5e057958ee42ab6a0f0675aa85caaad4a8d</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 50</desc>
</pubkey>
<pubkey>
<id>composite521/7</id>
<inline>0x01320c8762348be979ddf729b42a3839bd8e6a99923b3bab663dbb298f470d0e3aac375a1d1aa7119ec5b2e82c7921f192bea4ac81b7259af3a417135e82ad56aa4b,0x01c0be727f0480ea5137efc3fd201fca223ecd58d34dcc31cbfd6b7909b3033bb7d65e006e4dfe7c80f2a75d0bb5256986077d16cdd3c4d74bddfedc700c5be39541</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 62</desc>
</pubkey>
<pubkey>
<id>composite521/8</id>
<inline>0x0097c707694d550fe1533a9ce461e0317206385ee961cc3c646cbe84afc17a426023c8dd1e8db9df81bfd01b8cd123fd381c7fffd375f1776eb69994c94d67088ddc,0x00f3c16b5bb57044a555c5c89dc0fe1d2dec3406a645e66811d9a466a687884133cb9863394ddb19e2888d1f311d88060b0601f960d8a2ba86f67b4e1c8dad61326b</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 155</desc>
</pubkey>
<pubkey>
<id>composite521/9</id>
<inline>0x014ae6ee5a69767d8abb24d62d0435807e36d9c42572eeb2a7d2852837f68d62dd97c4ae4ed4b47f1208e9b80c0e285b69db277be2072e104b1892892be5e09d1d6a,0x0008a34156d7f671159b1bd85ab0413092fb16de8a6ea9ddae20c427262d2636b926339bf1ad1a2a1518aba13d3ce858f7b232971ebdb3b54b61e1273defd0c20ba7</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 310</desc>
</pubkey>
<pubkey>
<id>composite521/10</id>
<inline>0x00f6d940ce18d53a7706999da53c40cb8e4581a73069ae4358747257a169ab1532474b43e506603fcbd743b63b48551faa3bcac5fb1a40ca2b3f49f369fec36b7c7d,0x00f881dbc0ab0b74c20db84810eb476b1fb852398e87f8d909873f0b73cce0166baf43f07487a7a35a172000f5050c8531b108afb03c2654fa4a81b0538b58c4ddb1</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 775</desc>
</pubkey>
<pubkey>
<id>composite521/11</id>
<inline>0x0012538aae315d49a9b443382a19de468f57c7ff2494ecbaa54e927d3affb6d1d6503cb3acfbb0feee44caeb7fbef8804ac073c709a90eb3c7464a6644c9c5581e9b,0x01afeb2c9e1b519804e3a73364953368f915e6abc765adbd3ec7cfc2b808b1b4b46d575a664d06b4b455850cf295fd69eb823ca069cd2de90542db1496ad9095fad4</inline>
- <curve>composite/composite521</curve>
+ <curve>composite/whole/composite521</curve>
<desc>order = 1550</desc>
</pubkey>
</keys> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/10.csv b/src/cz/crcs/ectester/data/composite/varying/160/10.csv
new file mode 100644
index 0000000..5fa842a
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/10.csv
@@ -0,0 +1 @@
+0xb1c8eb4d314d22f1bdb2294eaed063e64f580611,0x6a1a4b89dc64200e98c46af58e8d7d0a52aba862,0xa0c9a0d9070ceefcaa3f2324668d6e3e9a3bf8f7,0x4b517e44056658e1f778d6c1075eefc644eaae5e,0x15ca498bd6ab9519c5be6f29882cbc68e47479cd,0x0000000000000000000000000000000000000337,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/112.csv b/src/cz/crcs/ectester/data/composite/varying/160/112.csv
new file mode 100644
index 0000000..633ccd5
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/112.csv
@@ -0,0 +1 @@
+0x9f3386530aa0a8009acbbe9caa919f72c8d5730f,0x33f8b03510268eb1ca33c2996ddacec1b314c5a6,0x4d9b3a2737345fe43069f306eabdc123e8e847b2,0x803f5afafe7ccb0433355eaf7a1aa1e93d1161b0,0x702c66bf3f3235fbcf3e2a7bf3bf56a69169d1c1,0x000000000000c978cb903a08ddcef1daa40de1f5,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/12.csv b/src/cz/crcs/ectester/data/composite/varying/160/12.csv
new file mode 100644
index 0000000..62bb1a0
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/12.csv
@@ -0,0 +1 @@
+0xa7d15a5258f4f3855cb22ce8d00571133e8ad0f3,0x61f9830a932a4cdd257061624f3b820e9b91db6e,0x758ee90aa5d7fe797c4817d0c2011f062a263429,0x4f448e668102ec49a2042cf2c15f9879d2d14068,0x05043866b8c4d47377f25942b075e835b121ceeb,0x0000000000000000000000000000000000000c25,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/128.csv b/src/cz/crcs/ectester/data/composite/varying/160/128.csv
new file mode 100644
index 0000000..5f8c532
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/128.csv
@@ -0,0 +1 @@
+0xb13f0d997960752db0a77c95ade4843941645c87,0x7acba0516ea114053bc3e8fa026857990e610d4b,0x7f9755351f5279758bde2b9739c5f907d159ff26,0x08010035ebd4107beb815893817f2b00f7911d96,0x932569a7385306a3b33e4669100feda47db97168,0x00000000c85d322721a790e50860fee459f6292f,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/135.csv b/src/cz/crcs/ectester/data/composite/varying/160/135.csv
new file mode 100644
index 0000000..232abff
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/135.csv
@@ -0,0 +1 @@
+0xd3f3289b14ab182f38b78fab5dbaf3674c02597d,0xb8880d01c2b44c8a27805524913e438e6458411d,0x89482f3814165014cc30b134849ead387c7ad048,0xc44043b00f6f65000cb63a22fbbb0785985d0699,0x6097e0e529330900f844ccd27a69a96b16509c16,0x0000006c7fcc23ea5ce765d52954b58745d67e81,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/14.csv b/src/cz/crcs/ectester/data/composite/varying/160/14.csv
new file mode 100644
index 0000000..c8df53e
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/14.csv
@@ -0,0 +1 @@
+0xbdf7ada7a57600f5d5b371b51218a619536cebc7,0x799707863618aaaffb5d46ca3427d6cfecdc6476,0x590f7e7193a997a2b60ab8e31107f1832473290b,0x795684e5a9816c14dff9c8b509c8c87afa3bbbc3,0xaabbea132ba2097d8025a5387aed8482147c530a,0x0000000000000000000000000000000000003437,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/140.csv b/src/cz/crcs/ectester/data/composite/varying/160/140.csv
new file mode 100644
index 0000000..4d59858
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/140.csv
@@ -0,0 +1 @@
+0xcf8ecac9bc992d2df7ba9015b5bdcbdf2d1c2aa9,0xa067f72ab472977a150f4684df8e9ccee909489f,0x080cac1702258fce0fbafbdb4f861ad4554a05c6,0xa4601066e4fcb7308022ac922a3a1475197e723e,0x0a210871677b6b921846b4ff0c055cd93f2aa275,0x00000fe55175f2c1fc9827ef4997357705b40a5d,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/144.csv b/src/cz/crcs/ectester/data/composite/varying/160/144.csv
new file mode 100644
index 0000000..e8c6492
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/144.csv
@@ -0,0 +1 @@
+0xc4bfe673203f80fd04c89a5942c18074bcc2a719,0x9d4a0edafeb576559fe95f1dfde0e006a9e0f6fb,0x2c075927ef142a14c84de72b208e8b5ee1d762b0,0x5a808971a0093ceadb15cf76068c5e7c3c4269b1,0x27a0f2741a55767ef3175461120c5f42a5b54f4f,0x0000d9935a273b9b1402519925d6a6a8b4f9342b,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/146.csv b/src/cz/crcs/ectester/data/composite/varying/160/146.csv
new file mode 100644
index 0000000..f656c72
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/146.csv
@@ -0,0 +1 @@
+0xbdf7ada7a57600f5d5b371b51218a619536cebc7,0x799707863618aaaffb5d46ca3427d6cfecdc6476,0x590f7e7193a997a2b60ab8e31107f1832473290b,0x4ccf365eda5a0e85438b6df2bf57d668cf5d8192,0x702b5f386587f0d85e6cf56b511de035b62c4379,0x0003a3606233edce56cac59bd01e622561e99e77,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/148.csv b/src/cz/crcs/ectester/data/composite/varying/160/148.csv
new file mode 100644
index 0000000..b292889
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/148.csv
@@ -0,0 +1 @@
+0xa7d15a5258f4f3855cb22ce8d00571133e8ad0f3,0x61f9830a932a4cdd257061624f3b820e9b91db6e,0x758ee90aa5d7fe797c4817d0c2011f062a263429,0x356da5d90cef81adb97a8cc3e95861fc156ab6c3,0x63ea1cb827821f6d3599e303594a4e21911971a3,0x000dd1818cc0197085816a97b6056c3917bb32d9,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/150.csv b/src/cz/crcs/ectester/data/composite/varying/160/150.csv
new file mode 100644
index 0000000..c1bf12e
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/150.csv
@@ -0,0 +1 @@
+0xb1c8eb4d314d22f1bdb2294eaed063e64f580611,0x6a1a4b89dc64200e98c46af58e8d7d0a52aba862,0xa0c9a0d9070ceefcaa3f2324668d6e3e9a3bf8f7,0x39ce0be4410100e1349fae8ec18fabb91f1816dd,0x3a44dee9ecb21038fb8c3e987e285f09b456bdc7,0x00374d1df48d00aa21837b6f9717173eb656c659,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/152.csv b/src/cz/crcs/ectester/data/composite/varying/160/152.csv
new file mode 100644
index 0000000..24a03ba
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/152.csv
@@ -0,0 +1 @@
+0xc9d72249375ff1884a80e426e79315f02fb6904f,0x003ce7e6420986df1c87895fe1b83ed86f93cf10,0x7ed71b8a343a6d4da4220123d2b3405d9e4f813f,0x3f30626d74214324e1ee6c97341abe2a9b2bdd07,0x17fb8a3dc06dc7680485871fc3ed4f8e8e662778,0x00e7b588f02d33982511ca6ab8485259bf119a2f,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/152_cofactor.csv b/src/cz/crcs/ectester/data/composite/varying/160/152_cofactor.csv
new file mode 100644
index 0000000..7861bbd
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/152_cofactor.csv
@@ -0,0 +1 @@
+0xc9d72249375ff1884a80e426e79315f02fb6904f,0x003ce7e6420986df1c87895fe1b83ed86f93cf10,0x7ed71b8a343a6d4da4220123d2b3405d9e4f813f,0x3f30626d74214324e1ee6c97341abe2a9b2bdd07,0x17fb8a3dc06dc7680485871fc3ed4f8e8e662778,0x00e7b588f02d33982511ca6ab8485259bf119a2f,0xdf
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/16.csv b/src/cz/crcs/ectester/data/composite/varying/160/16.csv
new file mode 100644
index 0000000..fd76ff7
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/16.csv
@@ -0,0 +1 @@
+0xc4bfe673203f80fd04c89a5942c18074bcc2a719,0x9d4a0edafeb576559fe95f1dfde0e006a9e0f6fb,0x2c075927ef142a14c84de72b208e8b5ee1d762b0,0x364591432aca4ab7e451866819263e32f57fa052,0x634d15df260f3bb8e92cd0d4940d176e2d97bddc,0x000000000000000000000000000000000000e77f,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/20.csv b/src/cz/crcs/ectester/data/composite/varying/160/20.csv
new file mode 100644
index 0000000..940d10c
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/20.csv
@@ -0,0 +1 @@
+0xcf8ecac9bc992d2df7ba9015b5bdcbdf2d1c2aa9,0xa067f72ab472977a150f4684df8e9ccee909489f,0x080cac1702258fce0fbafbdb4f861ad4554a05c6,0x4c4356d56316d6556e7b427a3e1aacd1c1805a8a,0x3d55e3b1904c5e66c75b00710068ffaec4a60ddb,0x00000000000000000000000000000000000d0eb3,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/25.csv b/src/cz/crcs/ectester/data/composite/varying/160/25.csv
new file mode 100644
index 0000000..318099b
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/25.csv
@@ -0,0 +1 @@
+0xd3f3289b14ab182f38b78fab5dbaf3674c02597d,0xb8880d01c2b44c8a27805524913e438e6458411d,0x89482f3814165014cc30b134849ead387c7ad048,0x593ddf0087b88e469110d12067c86b00bb6f219d,0x968f74b30717f0ca56749382ba5aece4182b35d6,0x0000000000000000000000000000000001f4168b,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/2a.csv b/src/cz/crcs/ectester/data/composite/varying/160/2a.csv
new file mode 100644
index 0000000..670f4bc
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/2a.csv
@@ -0,0 +1 @@
+0x7b6d7f82beae015788a67ad391bb68ad720ba991,0x6f222dd4f5ec04fdb0202f461d10c3fa1cec6d45,0x2792a26122d154d68bdb523330a06cc252894165,0x50fa49d7061feaeec4f4f4592744d26decd6243a,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000002,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/2b.csv b/src/cz/crcs/ectester/data/composite/varying/160/2b.csv
new file mode 100644
index 0000000..216827b
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/2b.csv
@@ -0,0 +1 @@
+0xa0ba653351a6fe7af0eeb9d45eb4f5bab12e453f,0x6e2ca1be3773179e400bb31f783013138cf62eae,0x1db941d201e9dae19f2eaaef2735a46fb9948ee3,0x070fe9bde5d37d7adc7af71cdabdf99ba76b2941,0x9ad498be6e81114c204ac11300fbdd6a3ef8d2cd,0x0000000000000000000000000000000000000003,0x01 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/3.csv b/src/cz/crcs/ectester/data/composite/varying/160/3.csv
new file mode 100644
index 0000000..18ec491
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/3.csv
@@ -0,0 +1 @@
+0xd41869824871ccc03ff87bd99c9a6d2eb7c557bd,0x80b0b37638bd5678af01089dbc13a8674ad96422,0x4c2d8f41681795f138af380c86c98e1d6ee2f3a4,0x6597db8eade96de1d5a546172358d578985e4802,0xa8f85050990cbd2d365b4ef44ead757bfb9af8b5,0x0000000000000000000000000000000000000007,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/32.csv b/src/cz/crcs/ectester/data/composite/varying/160/32.csv
new file mode 100644
index 0000000..fddfeee
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/32.csv
@@ -0,0 +1 @@
+0xb13f0d997960752db0a77c95ade4843941645c87,0x7acba0516ea114053bc3e8fa026857990e610d4b,0x7f9755351f5279758bde2b9739c5f907d159ff26,0x4ce786a838268215724f1edae0ddec658ef20e6a,0xaeaa4f03aefbbf5fbaeb393ca859d8f27ca56a32,0x00000000000000000000000000000000e2768a75,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/4.csv b/src/cz/crcs/ectester/data/composite/varying/160/4.csv
new file mode 100644
index 0000000..a5b9e09
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/4.csv
@@ -0,0 +1 @@
+0xb12cff876adc5a923ed34fcd10143de02f8e0369,0x6cb241142b8fb14f45608aec44a325ad195044b5,0xa7cb4cbde8d7792bee9d4856d80df54cdc925b1f,0x07527e2751335207ab0ddb4d5692c7d9219990f5,0x1d1cd5f91fce22653562dd0534ddb861e7005cb6,0x000000000000000000000000000000000000000d,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/48.csv b/src/cz/crcs/ectester/data/composite/varying/160/48.csv
new file mode 100644
index 0000000..202a15b
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/48.csv
@@ -0,0 +1 @@
+0x9f3386530aa0a8009acbbe9caa919f72c8d5730f,0x33f8b03510268eb1ca33c2996ddacec1b314c5a6,0x4d9b3a2737345fe43069f306eabdc123e8e847b2,0x0f1ca7149bc1933e1e7efdc55c325df7ad4ba562,0x3b689e90dec0b6c85d679d970278d0f9fa30f013,0x0000000000000000000000000000ca49f6d457c1,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/5.csv b/src/cz/crcs/ectester/data/composite/varying/160/5.csv
new file mode 100644
index 0000000..5f0597c
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/5.csv
@@ -0,0 +1 @@
+0xe13cc8432dad5ed8a4d2893803957c1e109e0c8f,0x7102ce05e08a10ffe665313cece127f5ff590473,0x2dcb47653c268fc7b0f767ae66fcefc98055399c,0x2c4b06f7428dda4532fbea727c7b1f84782e9762,0x4406bb147b080724d2be46eb15327dd350d7307a,0x000000000000000000000000000000000000001f,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/6.csv b/src/cz/crcs/ectester/data/composite/varying/160/6.csv
new file mode 100644
index 0000000..9c1528f
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/6.csv
@@ -0,0 +1 @@
+0xe9e74933088156a9f60b0f23253fe21ce259d783,0x6a01bdfb7c22fa778456edc767d0f61895561f27,0x27591495bbaf4845cf807f59d3091b0ec830b080,0xb956503ece30bccd9dc08bc76da995e390b2d0ea,0x30ca629aa64506f2b5e6c71fe7dea2c4284d1a2a,0x000000000000000000000000000000000000003d,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/64.csv b/src/cz/crcs/ectester/data/composite/varying/160/64.csv
new file mode 100644
index 0000000..94a2709
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/64.csv
@@ -0,0 +1 @@
+0xba824697c3ac48fbf53bdc6997a10f2e9e9d24fd,0x00878d8c00cc5b137d7ee7f3defe3ee2d614112e,0x439154313b1e0b63a3cf445a67af1f2f9442238c,0x33e0dfbcd3bdbd0a3d98254c8c706852ac9160ec,0xb0895e2997ef93d8b9500068855afeff515284c3,0x000000000000000000000000ee49fe4c5b77e201,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/7.csv b/src/cz/crcs/ectester/data/composite/varying/160/7.csv
new file mode 100644
index 0000000..170b180
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/7.csv
@@ -0,0 +1 @@
+0xb7a0a5730514d83583a708acd53a492d970022bd,0x6ee6d2a43a4daf1c0190aaf2384644b59b1c7f11,0x1835fc673409a0265da795eb4d0ad15358b3369a,0x0fee93a779b05c49623527d2a0af78315efbded6,0xb75b77ea3261bf5713cdec1cdd7251dff38232d6,0x0000000000000000000000000000000000000065,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/70.csv b/src/cz/crcs/ectester/data/composite/varying/160/70.csv
new file mode 100644
index 0000000..1dbf9c0
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/70.csv
@@ -0,0 +1 @@
+0xcc0786de97196a16f433bd40cd1932999867b103,0x7a58470e1615f4676bfc6fc57d71c99285a56919,0xa047dff6287d28be79b09ce6a398b57e8c2a97e9,0x570bda529a23c0a651113cdb5083439d3a6fd30c,0x9d71ecbe74fb180d08a7bdbb77e6aad40d2146b7,0x00000000000000000000003ba788abd620e775e7,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/8.csv b/src/cz/crcs/ectester/data/composite/varying/160/8.csv
new file mode 100644
index 0000000..232df05
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/8.csv
@@ -0,0 +1 @@
+0xc9d72249375ff1884a80e426e79315f02fb6904f,0x003ce7e6420986df1c87895fe1b83ed86f93cf10,0x7ed71b8a343a6d4da4220123d2b3405d9e4f813f,0x083e1d65a5ebcf6f98f2202ea5bfe021db0ce40e,0x16947d2cf97c654222c015b6ff56b9471f9518a9,0x00000000000000000000000000000000000000df,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/80.csv b/src/cz/crcs/ectester/data/composite/varying/160/80.csv
new file mode 100644
index 0000000..da082ef
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/80.csv
@@ -0,0 +1 @@
+0xd84ff9bc6df5a2f01d087f4c5e35ae905eb55e13,0xa50dbf4c40d4455f045c249b655b146d5d07a8a3,0xd6aed5bd031f7c3af319cdf03d45ee1b2e5c72ae,0x3a2b110757656c93362455ad480d38207b826d38,0x9cf1881da1e1f10777900f8c18996e8fbd3e470f,0x00000000000000000000e74bbc29baa61aca49d1,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/90.csv b/src/cz/crcs/ectester/data/composite/varying/160/90.csv
new file mode 100644
index 0000000..d67e673
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/90.csv
@@ -0,0 +1 @@
+0xcc0786de97196a16f433bd40cd1932999867b103,0x7a58470e1615f4676bfc6fc57d71c99285a56919,0xa047dff6287d28be79b09ce6a398b57e8c2a97e9,0x353f1f34902fb9c28b62c145369afa64b301e48c,0x0fd9c5d52882c2af8b99b5209bd80e44839c2e2e,0x0000000000000000036b917bc29fe57e7df01d13,0x01
diff --git a/src/cz/crcs/ectester/data/composite/varying/160/96.csv b/src/cz/crcs/ectester/data/composite/varying/160/96.csv
new file mode 100644
index 0000000..5dd2d5c
--- /dev/null
+++ b/src/cz/crcs/ectester/data/composite/varying/160/96.csv
@@ -0,0 +1 @@
+0xba824697c3ac48fbf53bdc6997a10f2e9e9d24fd,0x00878d8c00cc5b137d7ee7f3defe3ee2d614112e,0x439154313b1e0b63a3cf445a67af1f2f9442238c,0x5fb9809c2f608e2fb788c735d0233b2dd1cbc243,0x4e71dd0a87b3d4ff1689a77829ba527781f21cbd,0x0000000000000000c85f0b3dd7355b3a516de59b,0x01
diff --git a/src/cz/crcs/ectester/data/degenerate/brainpool.xml b/src/cz/crcs/ectester/data/degenerate/brainpool.xml
new file mode 100644
index 0000000..3dd2f54
--- /dev/null
+++ b/src/cz/crcs/ectester/data/degenerate/brainpool.xml
@@ -0,0 +1,362 @@
+<pubkey>
+ <id>brainpoolP160r1/0</id>
+ <inline>0x0000000000000000000000000000000000000000,0xe95e4a5f737059dc60dfc7ad95b3d8139515620e</inline>
+ <curve>brainpool/brainpoolP160r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP160r1/1</id>
+ <inline>0x0000000000000000000000000000000000000000,0x3290e9c18a987fec8da975f2433060ce9a5d67a4</inline>
+ <curve>brainpool/brainpoolP160r1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP160r1/2</id>
+ <inline>0x0000000000000000000000000000000000000000,0xb70d585c2b880eb1dfdf91e77b37f1b755c8f73d</inline>
+ <curve>brainpool/brainpoolP160r1</curve>
+ <desc>degenerate order = 7</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP160r1/3</id>
+ <inline>0x0000000000000000000000000000000000000000,0xd6dcfdaf8654e853148d03b11a346873bda99f78</inline>
+ <curve>brainpool/brainpoolP160r1</curve>
+ <desc>degenerate order = 53</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP160r1/4</id>
+ <inline>0x0000000000000000000000000000000000000000,0x132024d2fa2b15b992fd336077f7da8644367c84</inline>
+ <curve>brainpool/brainpoolP160r1</curve>
+ <desc>degenerate order = 82977018063719683</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP160r1/5</id>
+ <inline>0x0000000000000000000000000000000000000000,0x5cad9ba4b9e18c1d1167683b8d2e89340cb7391f</inline>
+ <curve>brainpool/brainpoolP160r1</curve>
+ <desc>degenerate order = 136095069548351808925828417</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP160r1/gen</id>
+ <inline>0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000003</inline>
+ <curve>brainpool/brainpoolP160r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>brainpoolP192r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0xc302f41d932a36cda7a3463093d18db78fce476de1a86296</inline>
+ <curve>brainpool/brainpoolP192r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP192r1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0xc2d59e85f6c3b8e1f01fc05f5185f332c44928215c7713b2</inline>
+ <curve>brainpool/brainpoolP192r1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP192r1/2</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x5e649a10e22dbb7f226426a753c977dc23ed974d33107dde</inline>
+ <curve>brainpool/brainpoolP192r1</curve>
+ <desc>degenerate order = 7</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP192r1/3</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x87c26e71982b23eb6e9df053ad929f67dbd26566729d303e</inline>
+ <curve>brainpool/brainpoolP192r1</curve>
+ <desc>degenerate order = 51326679042491</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP192r1/4</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x28bd61f0833fb3c4106cbba35c74280bdb897ffb4ef1663d</inline>
+ <curve>brainpool/brainpoolP192r1</curve>
+ <desc>degenerate order = 2218130291019312052925190546351456293022253</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP192r1/gen</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000007</inline>
+ <curve>brainpool/brainpoolP192r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>brainpoolP224r1/0</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0fe</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/1</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x5d0ee8269faa5766328ef18457528c874c408f5dd8b9991c005894ae</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/2</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x9fae816f63ae358d9ab07d30aed377ca63572c8b1cb1f982af33496c</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 5</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/3</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x1dfa7dc36ec72696d874d99b8b09013ce924820fdecaa1bd9cd09b7e</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 11</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/4</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x5267eb8a73ff20d570e131f6a0a33558c3a85cbecb51d7e4f4104132</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 89</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/5</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x92d82ad4ea31d2c90853b5a0da3f3dd233ebfbee9ef3e4eb4269846f</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 257</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/6</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0xc09fd12cf48c63d65e152f6a208bb2ab4eb003e1d9ddeb17d599a54c</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 1091</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/7</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x6af88537440e290df74852480f628ce983f542958c08768592e44dfa</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 2713</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/8</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x6e85c24f03a0dbdd4e4ddfe8a3c7b335f7bfeb83d6fecf3a9c1c23e6</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 6553</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/9</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0xb60e89dbc1fedacb81b2e172db5ec0b7ad6b797786582113b56d6955</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 1322801685354439</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/10</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x6634b0f61120124365dc719bc583a9821a027bea6dd3b6366d216be3</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>degenerate order = 13036179062997789943375385313119191</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/gen</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000003</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>brainpoolP256r1/0</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5376</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256r1/1</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x88dbe84830c188e78ac83f1107fbd561631bdc35d59ec7fb8ed568b12eb8dbab</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>degenerate order = 5</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256r1/2</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x295770494572e605f3a972816bf9c65701efe08c180da9736ad216400553b2ea</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>degenerate order = 23</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256r1/3</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x817663dd4fecc333507f8d78f9605b24196d7e212d0184f277768751c2ec4c46</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>degenerate order = 1667</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256r1/4</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x716b3a9abe12db2eeb97c18ecb121d31eed98538c62d35fc5a28ba9b930d4ae5</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>degenerate order = 149459</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256r1/5</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x2ddf09c88fb6f4d0ffa124121cc3a3cd34254e45a2361f4ba3c2cef5e9098d5f</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>degenerate order = 17543087</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256r1/6</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x029af8201d9619fb12bc9238dbeeed0629fc221438893b6ca92b44d7459a9bfb</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>degenerate order = 3059213862715144055733503214373292934438943635608167530247</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256r1/gen</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000b</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>brainpoolP320r1/0</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000,0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e26</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP320r1/1</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000,0x762fa9e1988fdb911a91a2ee9938e0c667364417df5b2a1d470dfcb2386fc42bec7c67b3595dcd8e</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>degenerate order = 11</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP320r1/2</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000,0x04fe1e15fa803fdb486be596b00abc53feb2eeeb9081d5b2a539e333646138d298d36b588bfbd041</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>degenerate order = 13</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP320r1/3</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000,0x595c3f8fddf0bca7f722d69a59d0cf269bea1e5f1e5b0ed7ad0ae6341a30ef8733865deb5996bb37</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>degenerate order = 59</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP320r1/4</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000,0x85de1d0bfec99e087e3315a045261dfa7ad55e035575d61d858c7b4dc807df052b2dbfa803374020</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>degenerate order = 196907</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP320r1/5</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000,0x044664f95553a4e4204b3c584eed7eb3c91ae92c8ee7dc9ee37e7cc067b58688c42fa8f26f3ad828</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>degenerate order = 146208281456251399783</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP320r1/6</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0d728bc8ccd9b7fd249f959dad0b57ff028e7858deff4cf9c9d65b11e3b5bbd01b6f568be5910dd6</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>degenerate order = 2307908307480288228542246803936276549862379769663891118114524423</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP320r1/gen</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000000000000000000000000000005</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>brainpoolP384r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec52</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP384r1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x70269a7b61909d9fbdc89c77a359c168b31f40d488f4a817f2811d0aeda71aec407ecb8d2d561af30e52ab55bb126ae9</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP384r1/2</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x3ef4b5a9b5525a600cdfd481ff13dbeacb9f25f29af360d0e9bed208a4b650f9a26bbe89248d3bf7bc5cfd1bf1108054</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>degenerate order = 5</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP384r1/3</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x8ca0a25e4fbf0d7b69585acdd9cb26f2cc2e6036061a960c9f342c0c2f2bef9ce8d410df3da73f2955f82dc6cfede0f6</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>degenerate order = 11</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP384r1/4</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x7ca77491eca28a1dd1667da80aa95ecbe84ba9e379e12d1d30482790c43dcd59a0e0e2e8fad09dac4ead54b18e4911b2</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>degenerate order = 79</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP384r1/5</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x34d6057691520ed040a958956ee8821efffa9f4827f8507b9f7d86ffdccee6a09a866839b9b631fae9b330ece487a1fb</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>degenerate order = 734647</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP384r1/6</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x8c1e0c36b3dd4de379143acb43f078cb211543f95d85405fbcc2474f6c88701d5aece6c92d8d21e2b7b42be1e7da67b3</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>degenerate order = 27093605140967</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP384r1/7</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x7d712d6ebcceb876c1f40263ad5c952cf2264c660c17d4567a24dfb776cd94182560094ab0f1353341851079bfdf99bd</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>degenerate order = 3012146720727260651</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP384r1/8</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x84cf53d9ffa36b9300dcf53a1db4030f5afba0c2b5299685620432993772359358ccef721662b7d6b679207517b52817</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>degenerate order = 13857381403312519376221497559214358876512960238914501360589056738895920081</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP384r1/gen</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>brainpoolP512r1/0</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f2</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP512r1/1</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x177c47f1f2bd3306efe5a93ed046a559abbb32424d5887e6c3f49c23c907c5a3b68aee1d7ae4247ba3491698c3c7c4dd9e105383f58984e45b4104cce042417b</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>degenerate order = 7</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP512r1/2</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x9b9e9905d13f35cc5b6578523e0380be922803fa98bcde94c920aca572a8fb4a432520b51b0f9eb3d854aa14aa5ef9fcc4ac08bf06eaec4b98ffdf90244f67d7</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>degenerate order = 61</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP512r1/3</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x77b03a217034dd2adcbcbfbdfe879b4ce1f0ecdd6025d1c3da80bef3e905a34bfdcb88362d553219b025cb8123698296c437411ecba452db94d829729def073e</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>degenerate order = 329430728783919403</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP512r1/4</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x890e0b1d03bd78442f0144b752cce879cec7a069497a83a6dac714a37221fa282ef147385b796653c2b98c87c003a7285ee98f69ed3df135c6a59adf8f17be5a</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>degenerate order = 18335424362847464339</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP512r1/5</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x25c0f1328c75876e338e66fb112cd47e8936c41b57dbf2c97de9c6bf300fb035bbcb20fb44046e6172c00939075da436b9c7d84941a9b98219fced6d9e17da64</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>degenerate order = 120179186709126902983513742993</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP512r1/6</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x1d93c72f487fc4ad34cb0c522dda3a7067b1b5c11175fc90ebbd086f639cad2d30d345e5596a93136e48aad4226cdb1a320e4b0aa68da2ca62cd5fe51c601f8e</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>degenerate order = 14435454750020088047685444818571282397270727096595623715684950293729763357371155607979</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP512r1/gen</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+
diff --git a/src/cz/crcs/ectester/data/degenerate/keys.xml b/src/cz/crcs/ectester/data/degenerate/keys.xml
new file mode 100644
index 0000000..cbeecce
--- /dev/null
+++ b/src/cz/crcs/ectester/data/degenerate/keys.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE keys [
+ <!ENTITY secg SYSTEM "degenerate/secg.xml">
+ <!ENTITY brainpool SYSTEM "degenerate/brainpool.xml">
+ ]>
+<keys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../schema.xsd"
+ category="degenerate"
+ desc="">
+ <!--
+ This is messy and what not, but Java XML api doesn't support
+ the XInclude selector necessary to make this work nicely, so XInclude is out...
+ -->
+ &secg;
+ &brainpool;
+</keys> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/degenerate/secg.xml b/src/cz/crcs/ectester/data/degenerate/secg.xml
new file mode 100644
index 0000000..7d6bce8
--- /dev/null
+++ b/src/cz/crcs/ectester/data/degenerate/secg.xml
@@ -0,0 +1,628 @@
+<pubkey>
+ <id>secp112r1/0</id>
+ <inline>0x0000000000000000000000000000,0xdb7c2abf62e35e668076bead208a</inline>
+ <curve>secg/secp112r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp112r1/1</id>
+ <inline>0x0000000000000000000000000000,0x75087e0bcdb604d9ca3a0998a8f6</inline>
+ <curve>secg/secp112r1</curve>
+ <desc>degenerate order = 23</desc>
+</pubkey>
+<pubkey>
+ <id>secp112r1/2</id>
+ <inline>0x0000000000000000000000000000,0x9ceca7fd3423a8580f4d8be19b71</inline>
+ <curve>secg/secp112r1</curve>
+ <desc>degenerate order = 452873</desc>
+</pubkey>
+<pubkey>
+ <id>secp112r1/3</id>
+ <inline>0x0000000000000000000000000000,0x250b6a43ac8a790cf22b7cdb36bd</inline>
+ <curve>secg/secp112r1</curve>
+ <desc>degenerate order = 213692946505768378488901547</desc>
+</pubkey>
+<pubkey>
+ <id>secp112r1/gen</id>
+ <inline>0x0000000000000000000000000000,0x0000000000000000000000000005</inline>
+ <curve>secg/secp112r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>secp128r1/0</id>
+ <inline>0x00000000000000000000000000000000,0xfffffffdfffffffffffffffffffffffe</inline>
+ <curve>secg/secp128r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp128r1/1</id>
+ <inline>0x00000000000000000000000000000000,0x0a50650222aa47d2cd1077082c2b77a1</inline>
+ <curve>secg/secp128r1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>secp128r1/2</id>
+ <inline>0x00000000000000000000000000000000,0x5acdd440659ebf4945f5e131da2097c4</inline>
+ <curve>secg/secp128r1</curve>
+ <desc>degenerate order = 7</desc>
+</pubkey>
+<pubkey>
+ <id>secp128r1/3</id>
+ <inline>0x00000000000000000000000000000000,0x86ba614538631a14c10485c80d2e52aa</inline>
+ <curve>secg/secp128r1</curve>
+ <desc>degenerate order = 2700653704464143955832110573370478657</desc>
+</pubkey>
+<pubkey>
+ <id>secp128r1/gen</id>
+ <inline>0x00000000000000000000000000000000,0x00000000000000000000000000000003</inline>
+ <curve>secg/secp128r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>secp160r2/0</id>
+ <inline>0x0000000000000000000000000000000000000000,0xfffffffffffffffffffffffffffffffeffffac72</inline>
+ <curve>secg/secp160r2</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r2/1</id>
+ <inline>0x0000000000000000000000000000000000000000,0x9ba48cba5ebcb9b6bd33b92830b2a2e0e192f10a</inline>
+ <curve>secg/secp160r2</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r2/2</id>
+ <inline>0x0000000000000000000000000000000000000000,0x508a8264d56922add3cd40482649d840497476e8</inline>
+ <curve>secg/secp160r2</curve>
+ <desc>degenerate order = 5</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r2/3</id>
+ <inline>0x0000000000000000000000000000000000000000,0x36aec30a63930538841d0324a54aecf4f89bf859</inline>
+ <curve>secg/secp160r2</curve>
+ <desc>degenerate order = 7</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r2/4</id>
+ <inline>0x0000000000000000000000000000000000000000,0xd2204d87c083aa9062de5c195c88de10d5f82f39</inline>
+ <curve>secg/secp160r2</curve>
+ <desc>degenerate order = 113</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r2/5</id>
+ <inline>0x0000000000000000000000000000000000000000,0xaf2fb7626db439a172b14b80a13f4f871d0aaf97</inline>
+ <curve>secg/secp160r2</curve>
+ <desc>degenerate order = 61588775277324185343602394973294691093621473</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r2/gen</id>
+ <inline>0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000002</inline>
+ <curve>secg/secp160r2</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>secp160r1/0</id>
+ <inline>0x0000000000000000000000000000000000000000,0xffffffffffffffffffffffffffffffff7ffffffe</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r1/1</id>
+ <inline>0x0000000000000000000000000000000000000000,0x5286e47bcbf86e7587ca6053773787924c765eb8</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r1/2</id>
+ <inline>0x0000000000000000000000000000000000000000,0x6c391d32e5649a5a9fdd84584abc45d0e3604ad0</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>degenerate order = 19</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r1/3</id>
+ <inline>0x0000000000000000000000000000000000000000,0x26c2e1fa26e422ee36b7cdf067cd73278d1d2da4</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>degenerate order = 115901</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r1/4</id>
+ <inline>0x0000000000000000000000000000000000000000,0xffcb6408974e4377c57bd619ef22e839bc025fe1</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>degenerate order = 6030259</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r1/5</id>
+ <inline>0x0000000000000000000000000000000000000000,0x14cc0ef773488d788c437edb4e462689cb9e6004</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>degenerate order = 104179991</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r1/6</id>
+ <inline>0x0000000000000000000000000000000000000000,0xbdaa241dd40b0d7df97b00b41170fcb4a6fdabf9</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>degenerate order = 176070659401435712181211511</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r1/gen</id>
+ <inline>0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000003</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>secp192r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0xfffffffffffffffffffffffffffffffefffffffffffffffe</inline>
+ <curve>secg/secp192r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp192r1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x2f9fe7a38e825c1f01de3418bc1d118d66ed4626e89a9b62</inline>
+ <curve>secg/secp192r1</curve>
+ <desc>degenerate order = 59</desc>
+</pubkey>
+<pubkey>
+ <id>secp192r1/2</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x9fbf41aed6e2e0ef99359b0316f6645402f602a520af5e3f</inline>
+ <curve>secg/secp192r1</curve>
+ <desc>degenerate order = 149309</desc>
+</pubkey>
+<pubkey>
+ <id>secp192r1/3</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x8c89aea49b8b009d7f0d0e3af71bdd9bba9fbde0fabc5f9e</inline>
+ <curve>secg/secp192r1</curve>
+ <desc>degenerate order = 11393611</desc>
+</pubkey>
+<pubkey>
+ <id>secp192r1/4</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0xbfc817a4572bbd90b5a1b7bdcc3f2822d79fc8445541b033</inline>
+ <curve>secg/secp192r1</curve>
+ <desc>degenerate order = 108341181769254293</desc>
+</pubkey>
+<pubkey>
+ <id>secp192r1/5</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0xef8804cd3326d6354ecc3ec957019d8fde73325cf7ffd877</inline>
+ <curve>secg/secp192r1</curve>
+ <desc>degenerate order = 288626509448065367648032903</desc>
+</pubkey>
+<pubkey>
+ <id>secp192r1/gen</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000b</inline>
+ <curve>secg/secp192r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>secp192k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0xfffffffffffffffffffffffffffffffffffffffeffffee36</inline>
+ <curve>secg/secp192k1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp192k1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0xbb85691939b869c1d087f601554b96b80cb4f55b35f433c2</inline>
+ <curve>secg/secp192k1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>secp192k1/2</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x52bc2dde06d9be0fca70e761d5f395852750edf7e5ded184</inline>
+ <curve>secg/secp192k1</curve>
+ <desc>degenerate order = 7</desc>
+</pubkey>
+<pubkey>
+ <id>secp192k1/3</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x0e79be49b05f5ac28e2ac611eeafb14a4c75900d643ff5fe</inline>
+ <curve>secg/secp192k1</curve>
+ <desc>degenerate order = 11</desc>
+</pubkey>
+<pubkey>
+ <id>secp192k1/4</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0xc06c0ad9b66541332b54f95c96021bfb6d6edfccc3c01c6a</inline>
+ <curve>secg/secp192k1</curve>
+ <desc>degenerate order = 1295233555201613</desc>
+</pubkey>
+<pubkey>
+ <id>secp192k1/5</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0xf73770178fa1a34019c04218683af4621b41b80e9669f2a5</inline>
+ <curve>secg/secp192k1</curve>
+ <desc>degenerate order = 10489845818524887021689201254173392444641</desc>
+</pubkey>
+<pubkey>
+ <id>secp192k1/gen</id>
+ <inline>0x000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000003</inline>
+ <curve>secg/secp192k1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>secp224r1/0</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0xffffffffffffffffffffffffffffffff000000000000000000000000</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/1</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x94353937171b8337606664f1900be8995691cf49934d5551cc5ace29</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/2</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0xa2bd9c773c593dd8031caa9a1d9f6483b4731af7167d6d795e0d9e9f</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>degenerate order = 5</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/3</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0xf15055c151148708a733ec4650e58279fb849e792c4af526f029729a</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>degenerate order = 17</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/4</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0xef92abfcfef7401f48b092a12e1abd4834f0de67a8fabccfec740794</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>degenerate order = 257</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/5</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x3acd587a1347c0b6b0e94dc195e63cae7bd568649255ea00f8c3f844</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>degenerate order = 641</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/6</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x7515e65e8ab6e99753c979b6b111d4dd7f9a5cc17ef79d43924b38a9</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>degenerate order = 65537</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/7</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x872df407d9718cf23e4a9b3da9226accec9cf29f4fb1d287f222c841</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>degenerate order = 274177</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/8</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x3012a7ffd8177bfdc61e62209414d3ec85bf25334e231f9dec255211</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>degenerate order = 6700417</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/9</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0xf366138e28cf4ac57586d5759a79949fa71225114a8925cf21a2ae35</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>degenerate order = 67280421310721</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/gen</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000016</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>secp256r1/0</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0xffffffff00000001000000000000000000000000fffffffffffffffffffffffe</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/1</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x4d6ea8928adb86cf62388a8e0ef623312e68c59bdef3e53fd964598eb819acce</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/2</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x0dc5b3bf9607f9854b836abbd19428f556a1cea2ebb7a71e3e71710ffa4f2b0e</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 5</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/3</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x04b8252e44493fb6f06c6b88e3c665c9f0d470cc964557955b267519f531a262</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 17</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/4</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0xd18ddce5e27dd6a457c4ab955e351bb61b4d8d796ef679744fc0554baa8d8fc2</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 257</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/5</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0xa319d26b19bcd46157ff4f68c57b3a3f780dd35a9df3dd4a4991ea6fffa0d54e</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 641</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/6</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0xc0875c9f1d579d82da2e2e3bf14cb1f836852a2349501fd82ded6f8e772301c7</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 1531</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/7</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0xef45524f9bdfa9473bb8020719dbc64297b7f80ea1939fb69041e799d3d5c977</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 65537</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/8</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x69214c4575b40595c02c63b57fb6de6ce6bb01e34c4a7a4cfa38fa917d3b5f74</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 490463</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/9</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0xc01fe1a04efa7f9e140ccea80e206c138fa68f40900d0b75b36241e4a05f8d40</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 6700417</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/10</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0xcf8f641aa234fe4b4e4d2620abc597a13300e19bcfa247ec3c33123ce7d719cb</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>degenerate order = 835945042244614951780389953367877943453916927241</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/gen</id>
+ <inline>0x0000000000000000000000000000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000000000000000000000000006</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>secp256k1/0</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000,0x0000fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp256k1/1</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000,0x0000851695d49a83f8ef919bb86153cbcb16630fb68aed0a766a3ec693d68e6afa40</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>secp256k1/2</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000,0x0000a2ab335e7a5b9784e9425431411a8f02a1e39029745c0d2567e7b217154fe2cb</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>degenerate order = 7</desc>
+</pubkey>
+<pubkey>
+ <id>secp256k1/3</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000,0x000068105a205ec4e9ceb2b1dd5285ab623cf09e207bad567e15482d24e582ff833f</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>degenerate order = 13441</desc>
+</pubkey>
+<pubkey>
+ <id>secp256k1/4</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000,0x0000212e9abc82e8709493c087cd14e2ebd253ecf3cd0abd68a2b7b766fcc2aa4ca6</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>degenerate order = 205115282021455665897114700593932402728804164701536103180137503955397371</desc>
+</pubkey>
+<pubkey>
+ <id>secp256k1/gen</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000000000000000003</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>secp384r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe</inline>
+ <curve>secg/secp384r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp384r1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0xad23fbead5a22478b4da040e57fea836a345078a37cb2c7045c3daf1de0db10dbda32da13fd3da4dcf3d95150e3522c8</inline>
+ <curve>secg/secp384r1</curve>
+ <desc>degenerate order = 19</desc>
+</pubkey>
+<pubkey>
+ <id>secp384r1/2</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x83eb94214f07c841569b4da60430f7fc19aef03de2d2812d91ae40f9b2a7f5a83262b640fa4b31995a93869f71109783</inline>
+ <curve>secg/secp384r1</curve>
+ <desc>degenerate order = 67</desc>
+</pubkey>
+<pubkey>
+ <id>secp384r1/3</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0xb3538721ea2a7edbae6973a8efb8f5109f49af10882e02239c90c7581c7f00f4cd892daede62ca75dd89971cedb618f0</inline>
+ <curve>secg/secp384r1</curve>
+ <desc>degenerate order = 807145746439</desc>
+</pubkey>
+<pubkey>
+ <id>secp384r1/4</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0xab5c6abb2811893a9a7c4d0331e755786b1555daa209b805aec474a742d0cfd02c511e764f764543b394c6c7f89865e5</inline>
+ <curve>secg/secp384r1</curve>
+ <desc>degenerate order = 19173790298027098165721053155794528970226934547887232785722672956982046098136719667167519737147526097</desc>
+</pubkey>
+<pubkey>
+ <id>secp384r1/gen</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013</inline>
+ <curve>secg/secp384r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
+
+<pubkey>
+ <id>secp521r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0032749246cef38c558b84265cbe9454c5b08624d5cb14a69636a701122712fcae5faafa042ad6c33247520b119fd582bcd5a02f43e801348f88f734ddb0b41f5b39</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 3</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/2</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x01257bef538f850baff583c2dccc5da15be046297570d85a4dfa580a1fe9534b616321c5fb944fe9a7927ad420147aba2b6793e1a7ec25556c21ba0c60d1f29f7e93</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 5</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/3</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x01f2f4b8697ed47692e132c92228e98f0dfe1d7b868852a7d76cf9f5c08ade0dfb5033be7c9dca15b8aa68fab9a01b35abd28b490ae8f8fcfa1a2bd50bcecbca89bc</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 11</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/4</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x001836c4a3a70b921586e1194e0a17cb438619edb43846933957b7a9dc09d0f447c6a0d3163cf3a5bc8ba2b4a55658e70602dc3512021d48ece14cd625e7ac7f5985</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 17</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/5</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x01736df798237091ff59864f3fd212e01b6c496869bdc020beabf83bf656abf6fcce4c6286ea5caf1002401e1f272b1321850ad1d38e9e66abd68be0e79ad6834daa</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 31</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/6</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x011d3bf2a0312f01791ff702149a1616abb9e7cfa93f1ec4c7b9612c5204dfa8a76fcbb24a370774a2f615d98caf2964f87658de9c619b778343275a257cde6c7bab</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 41</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/7</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0085a52672e46236148b9485bcede803ffab149344b77a389c7537bb94b9df1b3a3854192fa512c6da411653f93d8db663fd4586beef48cd05208f38870fcd763f59</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 53</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/8</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x01f5a1f4766a51e254ac60b54635b79f5830543199fdb957c0e161640a0f74a3fa85cced7857f26bd4be935b06d9fa535d9948f3bcbf1d2dadff3125c8807a21a6d6</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 131</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/9</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00dc13e71619071f58005d54b6b16682be219d85946ea9d199f81591f795003a508b5ea8e7a392450bc2da15673d0deb35d56ac9c10ab0887a1bdcbfd0c86d9d0213</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 157</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/10</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 521</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/11</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00309b3c9a4b45feef07448138eccff629e43e28acdb4fec0e08b0dff64e7292a076a9c733f209232968d60a7d9b7c08026865300f0c355f92021e9238b0558b483f</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 1613</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/12</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00662f3ca82bbfc958876666a9902a96f3437fb0999c8fa28490d8a51c89a1822d576ec48085e14bd55b6cf5cd89903cbe83b3eeef30ec38e1c885222ffc954e8b84</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 2731</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/13</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00f50e74a0ed52f6181c9a1c070de5f693c3d409e4e3bb668935b45d2a2cffcd4daabc6797d8914f18cdd44a13de1b71ca14fea6e611848495ced1f719395eed453f</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 8191</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/14</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0156f644f4d1c482f9c79e122733067cac22834fdb56ddec5e486bbd2e61bda8ec451cce3db115e8424793bc754744fc448b8100015a4f6b8a46b5dd38efec521841</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 42641</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/15</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x018c5c75b44635605ab7f529f86851e323612933fe10cbc72a806c2bafb86e85d254246e1c7468466cc8663cd1cc3aa44ff15ad808e729df4e75fb23da6374d48e8b</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 51481</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/16</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0043c1af0a225ffebeb76cf2d98e0480691871125d1c65304789110f60941a8e3b6265fbe338f584569f0245984050cc94afc190bcc1abc143c557609644cf10f3cf</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 61681</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/17</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00391b1adb891ad8156a8056781c9f665eb51cd4fa6837fc2a7d7d31f7161a7b94b52a7697f24e956b4eec6956d483f52efad14f581360bc8091544932bc14767a3a</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 409891</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/18</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x01757c67f02f8b94f08642e00d4032a721d13a34243686fbb4cec8c0472bbda45fba8ab338b4afd7bac07260b4e8a21a8997eaee01cb5928f605ce0587138fde3e8c</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 858001</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/19</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x009297636ecc72ad872103c99fd3ed0ee94d24af2051d87d77a96df45b52ff26df768d8ddc0ce6e53d24ac482f9b3cc7b6ebf25601a47ce9ba95052a5dc80e4c79e5</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 5746001</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/20</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0130713f9de95587ba4272d1a5e996beee9530e10bd5c15e3e531a9f7ae59e0587106db1802309f49b5812e8811aa667d0ce9b838d814e984caf2833e2144dfc57b7</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 7623851</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/21</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00d08a1bd1285c19d86a1a4fd85f378bcd09a83addfdcc7e392fa9d8f9fa00b3d4af8887aff110f565c50cbc3b99bd7e5d55e051eeea5772cafb6bcec9e936de4955</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 34110701</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/22</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00791d7f3bf9c19a1b61f8f262a2e60a22fa9adfdcc0d6afeffab8068fbd91bc079188ba0365c0fe86c92073e244294a0da331ba36ccd01dcf323e92b16d11ca2b39</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 308761441</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/23</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0066fd8474256e396de2160ee4590caccdec49c5d099e12c7e405315a92dfb21e8277549d8d291744d79b841e8e1e86d5273fe07d3f56fed6f1c1220c2c217c289ef</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 2400573761</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/24</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x01e5be0afc4fa36bc186c73de3ab924e6572d2b239887cf028af290befab2b168e7333f78a80f66525d5bd1534c8fab6b002c5ce2ac2279c1dc0f356dc199ff98c42</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 65427463921</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/25</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x019d8298bbd7449ff8e27bb3cd2243c182bd8dee40b287e903b1da711cf8f90f21b8ab497aba68fa6f252998a16eea60f6ec0a747f58dbf34e5e4544e7b392fb96ce</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 108140989558681</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/26</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x01243fb23685cf51dcab5d05385275f63fd3eb2225aeb2ae3e0e0260d09e84c6a7f655ece1b14e54b17aa512c55ed94168a203bf70c908e1934f8b6fc04f971cdbfc</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 145295143558111</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/27</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x01f803543c1ed5ed182210105552c99b8df0b740f67423a960cd35327914efbf2ae2d4debd0116ffa6d726f9727123f3a2083c8f4633a6a6531afcea86b72a301c6c</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>degenerate order = 173308343918874810521923841</desc>
+</pubkey>
+<pubkey>
+ <id>secp521r1/gen</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>generator of Fp^*</desc>
+</pubkey>
diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml
index fb3645e..b11c2c8 100644
--- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml
@@ -323,3 +323,22 @@
<curve>brainpool/brainpoolP160r1</curve>
<desc>invalid order = 251</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>brainpoolP160r1/54</id>
+ <inline>0x5440002083ce239da4933d543c4a6c2b4043d9d0,0x664f5bc313fae27ba1bb2e45ab4d5788938d1945</inline>
+ <curve>brainpool/brainpoolP160r1</curve>
+ <desc>invalid order = 353</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP160r1/55</id>
+ <inline>0x4af82c74a3420119e5a6cad2beac7299d1ff0b76,0xb53733e9a63a9df9ce745ba7282a91dcd4df63db</inline>
+ <curve>brainpool/brainpoolP160r1</curve>
+ <desc>invalid order = 631</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP160r1/56</id>
+ <inline>0x3d270e44f2a93d28ce6cdf6788f312cabfdfe80d,0xd3560c22ac8c24f223d3cf6592350549071b4830</inline>
+ <curve>brainpool/brainpoolP160r1</curve>
+ <desc>invalid order = 1231</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml
index a712bab..5ef2693 100644
--- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml
+++ b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml
@@ -323,3 +323,22 @@
<curve>brainpool/brainpoolP160t1</curve>
<desc>invalid order = 251</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>brainpoolP160t1/54</id>
+ <inline>0x6d17b06757c690a1ae9f411261be16f402eb9413,0x4b2fd210f79990027d8ee78fedf9c467110a76f5</inline>
+ <curve>brainpool/brainpoolP160t1</curve>
+ <desc>invalid order = 353</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP160t1/55</id>
+ <inline>0x90ab4fc73c706f7778072637ff7fa3694bbfce62,0x0eb9d9dbff4167652d410e235e9fed3acb02d955</inline>
+ <curve>brainpool/brainpoolP160t1</curve>
+ <desc>invalid order = 631</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP160t1/56</id>
+ <inline>0x0b7e4c6697993fa4f9fc88a5f5bf7e5bffdc8554,0xbb9fcd7e5b68d86cd841959a88a6294b725b0607</inline>
+ <curve>brainpool/brainpoolP160t1</curve>
+ <desc>invalid order = 1231</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml
index 13fede5..6458609 100644
--- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml
@@ -365,3 +365,22 @@
<curve>brainpool/brainpoolP192r1</curve>
<desc>invalid order = 283</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>brainpoolP192r1/61</id>
+ <inline>0x952940885d62715784f5501451fe20f56825f449830b8e1a,0xa2786768d1b25f41c2d1a9d219faa70284b4bbe583bf006b</inline>
+ <curve>brainpool/brainpoolP192r1</curve>
+ <desc>invalid order = 353</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP192r1/62</id>
+ <inline>0x6e1bfe4453e3d7fffb26abd47a8eba7eeb601cea9b56f136,0x0549d43dafbe9b0651d9aff2fcfdc07e94c4ce07a8c75595</inline>
+ <curve>brainpool/brainpoolP192r1</curve>
+ <desc>invalid order = 631</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP192r1/63</id>
+ <inline>0x5fa6f0d37e8ab6d27aa6214bb7f4a68feb979ad8d2ce1f48,0x29a93d6ef731d6ba7ae62173d9927012ecb52cf23c45f0d6</inline>
+ <curve>brainpool/brainpoolP192r1</curve>
+ <desc>invalid order = 1231</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml
index 046e109..cf90464 100644
--- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml
+++ b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml
@@ -365,3 +365,22 @@
<curve>brainpool/brainpoolP192t1</curve>
<desc>invalid order = 283</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>brainpoolP192t1/61</id>
+ <inline>0x08ebff23b6c006a582cffd9a9aefa704cf1db3802a94cc15,0xbb823733f0afe7e09b90e537f2e395c77471851185ef837f</inline>
+ <curve>brainpool/brainpoolP192t1</curve>
+ <desc>invalid order = 419</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP192t1/62</id>
+ <inline>0x3a81c7f62751a5474efdc6415087a9c73a8e0ec9aa37ae94,0x79f451441715a120f084f2040d0033c76e23fd91b5135b7b</inline>
+ <curve>brainpool/brainpoolP192t1</curve>
+ <desc>invalid order = 719</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP192t1/63</id>
+ <inline>0xa13f674583e7cf28a7db917343d52eee5021f94687d2cdc7,0x08fee687764ebdb13d1df57635aa36e1bcc5c15ab81c636a</inline>
+ <curve>brainpool/brainpoolP192t1</curve>
+ <desc>invalid order = 1531</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml
index 8fb484c..7a12145 100644
--- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml
@@ -413,3 +413,22 @@
<curve>brainpool/brainpoolP224r1</curve>
<desc>invalid order = 347</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>brainpoolP224r1/69</id>
+ <inline>0x6e8f01ad3bb0efb4b64d063ce895e5b8cebb59ca2e21b51c5c03df99,0x0b9ea9eea8711e05b748ab40a000dcea18f284c4aab641ee2649ee9d</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>invalid order = 419</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/70</id>
+ <inline>0xc86fec6cd248b4f9ce398a115c01efd542cc2466d1339ebb2155334c,0x69f4038dac3a65e33c7ea5f72f667de1d866b1a9dc6b255b163fc6af</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>invalid order = 719</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224r1/71</id>
+ <inline>0xaac6e5506124b876663a417e276772c255f8f02e6b13cf01de7a799a,0x94344c04162c316132c4a57125ab9398b4089ebed5d9db2a3dbf20b4</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>invalid order = 1531</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml
index 3e35a3e..c7ae75b 100644
--- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml
+++ b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml
@@ -413,3 +413,22 @@
<curve>brainpool/brainpoolP224t1</curve>
<desc>invalid order = 347</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>brainpoolP224t1/69</id>
+ <inline>0x96cd2668ee03c4cbb59d1de6011bdcc22935477e95f413817755bf48,0x040cc03af01e6f830694cec88cc0e0b9bcdb0033668265ac2a112d2f</inline>
+ <curve>brainpool/brainpoolP224t1</curve>
+ <desc>invalid order = 419</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224t1/70</id>
+ <inline>0x8a875207d59ca2cfd415447bfdb52f15c710595862542768950e4fa4,0xaa0bfbec6318573c922cc00b73ec86761cdfc7fb959689e9df27eb14</inline>
+ <curve>brainpool/brainpoolP224t1</curve>
+ <desc>invalid order = 719</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP224t1/71</id>
+ <inline>0x6dd14e731e37d6d945ad336106e16f9fd9d2d83f2ddc1dfded98643d,0x500b783f23700d0c79d25c62b2f427faa88e05cbaf8454b53295d0df</inline>
+ <curve>brainpool/brainpoolP224t1</curve>
+ <desc>invalid order = 1531</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml
index c923eae..ebd8f6b 100644
--- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml
@@ -461,3 +461,22 @@
<curve>brainpool/brainpoolP256r1</curve>
<desc>invalid order = 389</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>brainpoolP256r1/77</id>
+ <inline>0x573d17f1ae91154ea19e094a6b6759dde102c6eb677829ec8e7f5fc99aa1ca04,0x2f714a94b9fd5bd31bd9896b0990c09f9c64339ee1f33497760e7d52134458e2</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>invalid order = 419</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256r1/78</id>
+ <inline>0x885a1fc959c4f094a0524b350b576d4383599bd9063b3a8fa27e2f0833695225,0x2e39483178d9253a84b38d94d9ecdc0703be70fa1c1445a0d2038b738e687996</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>invalid order = 719</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256r1/79</id>
+ <inline>0x0c58ff24e3c1c6e38f2d5e8bb4f30a6afce5d88003d48b5c930a7e3d4690652f,0x0bfd16361c8d4d12563000f88832155f172fde581a99d8e63f642ef68b63e2ba</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>invalid order = 1531</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml
index 2f31006..c2cf345 100644
--- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml
+++ b/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml
@@ -461,3 +461,22 @@
<curve>brainpool/brainpoolP256t1</curve>
<desc>invalid order = 389</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>brainpoolP256t1/77</id>
+ <inline>0x2bf8c11defcdac7379c1d81ab87d72d13d8b1a7a53e59a6c5eda6c5d7b615f4e,0x6bcef1b705223c36086a1a06cf6a55fecf4362c0444b4c73b8f8d402955e52fb</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>invalid order = 419</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256t1/78</id>
+ <inline>0x67e3ba2a6485080a29384ddd38f8f5a476338a7b39fe411d18c49cb5ce5a04a2,0x25e146ab0e5b3e5a6ad5dca7bcc72d9afdfaec3e2c993a9166144aa0d9fbecd4</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>invalid order = 719</desc>
+</pubkey>
+<pubkey>
+ <id>brainpoolP256t1/79</id>
+ <inline>0x93efaee7235082be3ce10f16207f91472aa336b7309edfebcfcc77182206949e,0x1ecb5b2db697f34ca887e4fe4fa00fcd9d50dff8c6183038469b67b6060f1030</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>invalid order = 1531</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp112r1.xml b/src/cz/crcs/ectester/data/invalid/secg/secp112r1.xml
index ae8da15..316f0f6 100644
--- a/src/cz/crcs/ectester/data/invalid/secg/secp112r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/secg/secp112r1.xml
@@ -245,3 +245,22 @@
<curve>secg/secp112r1</curve>
<desc>invalid order = 179</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>secp112r1/41</id>
+ <inline>0x8eac00cf476993c428eaf07c80f1,0x27977f0c5acb323667408f21d143</inline>
+ <curve>secg/secp112r1</curve>
+ <desc>invalid order = 353</desc>
+</pubkey>
+<pubkey>
+ <id>secp112r1/42</id>
+ <inline>0x8c5a6233e53b2c6b6fcf33af2726,0x5a04f74d8b5e220e8c23d1f21bb6</inline>
+ <curve>secg/secp112r1</curve>
+ <desc>invalid order = 631</desc>
+</pubkey>
+<pubkey>
+ <id>secp112r1/43</id>
+ <inline>0x5a4479a257ed4b9a519f29184712,0x58c11aa81217d4ce67d8f05da930</inline>
+ <curve>secg/secp112r1</curve>
+ <desc>invalid order = 1231</desc>
+</pubkey>
diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp112r2.xml b/src/cz/crcs/ectester/data/invalid/secg/secp112r2.xml
index 9dc187e..536cb56 100644
--- a/src/cz/crcs/ectester/data/invalid/secg/secp112r2.xml
+++ b/src/cz/crcs/ectester/data/invalid/secg/secp112r2.xml
@@ -245,3 +245,22 @@
<curve>secg/secp112r2</curve>
<desc>invalid order = 179</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>secp112r2/41</id>
+ <inline>0x6fffe4ca3cbda6828ddd63e9ab11,0xcf5e055aa2a94c0d7214d998c3a0</inline>
+ <curve>secg/secp112r2</curve>
+ <desc>invalid order = 353</desc>
+</pubkey>
+<pubkey>
+ <id>secp112r2/42</id>
+ <inline>0x3813064a869de8884025d85736c0,0xd71ae54681ffc105144c8f7ba5bb</inline>
+ <curve>secg/secp112r2</curve>
+ <desc>invalid order = 631</desc>
+</pubkey>
+<pubkey>
+ <id>secp112r2/43</id>
+ <inline>0x6906e5609f3d9e47c7cd961dc08e,0x7fccd8384db6b6fcc842a4f397fd</inline>
+ <curve>secg/secp112r2</curve>
+ <desc>invalid order = 1231</desc>
+</pubkey> \ 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 f038656..76f0aff 100644
--- a/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml
@@ -269,3 +269,21 @@
<curve>secg/secp128r1</curve>
<desc>invalid order = 197</desc>
</pubkey>
+<pubkey>
+ <id>secp128r1/45</id>
+ <inline>0xea08890b70e94ac5d53514b583580faf,0x6cc66b4eedab2a8f01a0b41195271853</inline>
+ <curve>secg/secp128r1</curve>
+ <desc>invalid order = 359</desc>
+</pubkey>
+<pubkey>
+ <id>secp128r1/46</id>
+ <inline>0x0ae9c73132e5ef2fd82d06b0f50bfe64,0x9b78c29bdf53038463fa4bf2edb4297a</inline>
+ <curve>secg/secp128r1</curve>
+ <desc>invalid order = 601</desc>
+</pubkey>
+<pubkey>
+ <id>secp128r1/47</id>
+ <inline>0xd3522b2fb7fd15b8fbaf10a9abc60ca9,0x21236ba59e5a40eb9881a0218a2c2359</inline>
+ <curve>secg/secp128r1</curve>
+ <desc>invalid order = 1103</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp128r2.xml b/src/cz/crcs/ectester/data/invalid/secg/secp128r2.xml
index ecb62bf..11fc0d8 100644
--- a/src/cz/crcs/ectester/data/invalid/secg/secp128r2.xml
+++ b/src/cz/crcs/ectester/data/invalid/secg/secp128r2.xml
@@ -269,3 +269,22 @@
<curve>secg/secp128r2</curve>
<desc>invalid order = 197</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>secp128r2/45</id>
+ <inline>0x33c5f2e6190f7a3c23dbc5a1020e0f32,0x40afb310a8c5537ecc07c59d971c5fe6</inline>
+ <curve>secg/secp128r2</curve>
+ <desc>invalid order = 359</desc>
+</pubkey>
+<pubkey>
+ <id>secp128r2/46</id>
+ <inline>0xd5392aed70323f8a02ec104dbd3dd3f2,0x0733de2e9d20bb117a632a9b5ff3c1a3</inline>
+ <curve>secg/secp128r2</curve>
+ <desc>invalid order = 631</desc>
+</pubkey>
+<pubkey>
+ <id>secp128r2/47</id>
+ <inline>0x005a0ea68afd5793063d4537045e5cba,0x6ec5978352c81a646fc1b29491a62a59</inline>
+ <curve>secg/secp128r2</curve>
+ <desc>invalid order = 1103</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp160r1.xml b/src/cz/crcs/ectester/data/invalid/secg/secp160r1.xml
index 10fc5a0..c9ae8da 100644
--- a/src/cz/crcs/ectester/data/invalid/secg/secp160r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/secg/secp160r1.xml
@@ -323,3 +323,22 @@
<curve>secg/secp160r1</curve>
<desc>invalid order = 251</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>secp160r1/54</id>
+ <inline>0x8932e643678c5a324d7a2cf47528676d08f135d5,0x3a6a976e51623bf13d8d339312e2e65c9b29ea04</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>invalid order = 353</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r1/55</id>
+ <inline>0xaee7bf31f3d12332e5e529eb0a7732ac913d0211,0xaa88ae4645cac4e7970a764e486774b2398e9fd0</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>invalid order = 613</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r1/56</id>
+ <inline>0xc0a7736e7eec336eb3b7f853a832d4eec1d6f33f,0x2d7c536a1ee9cca9bb504755225c678f64ed5275</inline>
+ <curve>secg/secp160r1</curve>
+ <desc>invalid order = 1123</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp160r2.xml b/src/cz/crcs/ectester/data/invalid/secg/secp160r2.xml
index 596fc6c..b1658c5 100644
--- a/src/cz/crcs/ectester/data/invalid/secg/secp160r2.xml
+++ b/src/cz/crcs/ectester/data/invalid/secg/secp160r2.xml
@@ -323,3 +323,22 @@
<curve>secg/secp160r2</curve>
<desc>invalid order = 251</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>secp160r2/54</id>
+ <inline>0x15567f6e8e2d4a71ed809adbd53c620b3d674ca4,0xb418ff9fdc1eb410dd53064090099e76473d3f61</inline>
+ <curve>secg/secp160r2</curve>
+ <desc>invalid order = 353</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r2/55</id>
+ <inline>0x490905f64c868304641864ca9ad90fa48475f765,0xb52e302f7fe9c63a9bf6124daff99e7e3c7f9fda</inline>
+ <curve>secg/secp160r2</curve>
+ <desc>invalid order = 613</desc>
+</pubkey>
+<pubkey>
+ <id>secp160r2/56</id>
+ <inline>0x1de73470d9a5ed4c6bb7a4c162956d20c1c2a38a,0x8037b163763d4dfd2d218f7d85d17c06bfa07ecc</inline>
+ <curve>secg/secp160r2</curve>
+ <desc>invalid order = 1123</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp192r1.xml b/src/cz/crcs/ectester/data/invalid/secg/secp192r1.xml
index 151189e..e823fed 100644
--- a/src/cz/crcs/ectester/data/invalid/secg/secp192r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/secg/secp192r1.xml
@@ -371,3 +371,22 @@
<curve>secg/secp192r1</curve>
<desc>invalid order = 293</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>secp192r1/62</id>
+ <inline>0x64f88f2014026439717b443fd0e9656bae76bc12e04846a6,0xed20d8d4ee021c98be74fdfd4e545fb8b8e529f269f6059e</inline>
+ <curve>secg/secp192r1</curve>
+ <desc>invalid order = 353</desc>
+</pubkey>
+<pubkey>
+ <id>secp192r1/63</id>
+ <inline>0xeed3216e47d486fc7d1717e5732e1ef5409b84a0777df50a,0x20b7bcc21f15418b75ef425fcb0c7caf87c9ccad70e06142</inline>
+ <curve>secg/secp192r1</curve>
+ <desc>invalid order = 631</desc>
+</pubkey>
+<pubkey>
+ <id>secp192r1/64</id>
+ <inline>0xc26950fdd51d386cf3c9d8e3e78c33e10e1046bfd5c41d8a,0x8bea331f38d09138dd75f414466db8c13948f8c6ddcc5def</inline>
+ <curve>secg/secp192r1</curve>
+ <desc>invalid order = 1231</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp224r1.xml b/src/cz/crcs/ectester/data/invalid/secg/secp224r1.xml
index aea9831..3f8c8fc 100644
--- a/src/cz/crcs/ectester/data/invalid/secg/secp224r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/secg/secp224r1.xml
@@ -413,3 +413,22 @@
<curve>secg/secp224r1</curve>
<desc>invalid order = 347</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>secp224r1/69</id>
+ <inline>0x21224a2e74c519b044cb0885bb4d39c93d459cb810a486e2bd257380,0xfcf0f5c414e98767bdd0a95887aa065634102f61afcbe13b7f1918c9</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>invalid order = 353</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/70</id>
+ <inline>0xc81155743c1ce0d22f9bbc7acf64666e1e82973866c63e7e10a295c3,0x83ddf0ad6ed67e8863f3830e0ef6e76857b2d21d6de3ce9bc60153a0</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>invalid order = 631</desc>
+</pubkey>
+<pubkey>
+ <id>secp224r1/71</id>
+ <inline>0x74c39d25aaff45aea0a1e2a1f76ce58fc56bfff0b92f21ecea29b582,0x9a1f6fee02efe3a3013501fb4b77f9f6e6ca633463809207319a0787</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>invalid order = 1231</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp256r1.xml b/src/cz/crcs/ectester/data/invalid/secg/secp256r1.xml
index 6f93370..2c23ea7 100644
--- a/src/cz/crcs/ectester/data/invalid/secg/secp256r1.xml
+++ b/src/cz/crcs/ectester/data/invalid/secg/secp256r1.xml
@@ -461,3 +461,22 @@
<curve>secg/secp256r1</curve>
<desc>invalid order = 389</desc>
</pubkey>
+<!-- Additional points of larger order. -->
+<pubkey>
+ <id>secp256r1/77</id>
+ <inline>0xb1b630092fa728b962bda086704dd16628d8ba65a5836f0e5ab6b268b1874346,0x6741a8de59e27d93c2afe35d02a62a0d6ca1d410f02fa272c916457c3d64024e</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>invalid order = 353</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/78</id>
+ <inline>0x8ccf453921033e2a0e2d612103f9d6037bede19bce172bc7e4cfab350dba5c1b,0x4f381c96db7205602819de572b088b81cd8aad51dec5367b2572d07ec174b13b</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>invalid order = 631</desc>
+</pubkey>
+<pubkey>
+ <id>secp256r1/79</id>
+ <inline>0xed9c0943430dbb23b735c527f5376eb1f159ce7ed42d725f89b03d2b4004dd93,0xc8e98a510b4d1988d8291c4f59b99894285b0a18801ec46e1d732c37fbbe6027</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>invalid order = 1231</desc>
+</pubkey> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/other/curve25519.csv b/src/cz/crcs/ectester/data/other/curve25519.csv
new file mode 100644
index 0000000..2e62d80
--- /dev/null
+++ b/src/cz/crcs/ectester/data/other/curve25519.csv
@@ -0,0 +1 @@
+0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED,0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA984914A144,0x7B425ED097B425ED097B425ED097B425ED097B425ED097B4260B5E9C7710C864,0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD245A,0x20AE19A1B8A086B4E01EDD2C7748D14C923D4D7E6D7C61B229E9C5A27ECED3D9,0x1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED,0x02 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/other/curves.xml b/src/cz/crcs/ectester/data/other/curves.xml
new file mode 100644
index 0000000..f200d9c
--- /dev/null
+++ b/src/cz/crcs/ectester/data/other/curves.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<curves xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../schema.xsd">
+ <curve>
+ <id>M-221</id>
+ <bits>221</bits>
+ <field>prime</field>
+ <file>m221.csv</file>
+ <desc>Montgomery M-221 curve from eprint 2013/647, transformed into short Weierstrass form</desc>
+ </curve>
+ <curve>
+ <id>M-383</id>
+ <bits>383</bits>
+ <field>prime</field>
+ <file>m383.csv</file>
+ <desc>Montgomery M-383 curve from eprint 2013/647, transformed into short Weierstrass form</desc>
+ </curve>
+ <curve>
+ <id>M-511</id>
+ <bits>511</bits>
+ <field>prime</field>
+ <file>m511.csv</file>
+ <desc>Montgomery M-511 curve from eprint 2013/647, transformed into short Weierstrass form</desc>
+ </curve>
+
+ <curve>
+ <id>Curve25519</id>
+ <bits>256</bits>
+ <field>prime</field>
+ <file>curve25519.csv</file>
+ <desc>Curve25519 transformed into short Weierstrass form</desc>
+ </curve>
+</curves> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/other/m221.csv b/src/cz/crcs/ectester/data/other/m221.csv
new file mode 100644
index 0000000..0a74263
--- /dev/null
+++ b/src/cz/crcs/ectester/data/other/m221.csv
@@ -0,0 +1 @@
+0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD,0x155555555555555555555555555555555555555555555554451FF4F3,0x1684BDA12F684BDA12F684BDA12F684BDA12F684BDA19B7249700DF7,0x1555555555555555555555555555555555555555555555555555EDC0,0x0F7ACDD2A4939571D1CEF14ECA37C228E61DBFF10707DC6C08C5056D,0x040000000000000000000000000015A08ED730E8A2F77F005042605B,0x4
diff --git a/src/cz/crcs/ectester/data/other/m383.csv b/src/cz/crcs/ectester/data/other/m383.csv
new file mode 100644
index 0000000..9a8890d
--- /dev/null
+++ b/src/cz/crcs/ectester/data/other/m383.csv
@@ -0,0 +1 @@
+0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45,0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA95FABD1AE6C,0x04BDA12F684BDA12F684BDA12F684BDA12F684BDA12F684BDA12F684BDA12F684BDA12F684BDA12F7159AE18A4923F45,0x5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555FD5E4,0x1EC7ED04AAF834AF310E304B2DA0F328E7C165F0E8988ABD3992861290F617AA1F1B2E7D0B6E332E969991B62555E77E,0x10000000000000000000000000000000000000000000000006C79673AC36BA6E7A32576F7B1B249E46BBC225BE9071D7,0x02
diff --git a/src/cz/crcs/ectester/data/other/m511.csv b/src/cz/crcs/ectester/data/other/m511.csv
new file mode 100644
index 0000000..815714c
--- /dev/null
+++ b/src/cz/crcs/ectester/data/other/m511.csv
@@ -0,0 +1 @@
+0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45,0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA94D474F50C,0x425ED097B425ED097B425ED097B425ED097B425ED097B425ED097B425ED097B425ED097B425ED097B425ED097B425ED097B425ED097B425ED0BEFAE0163491C0,0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5D1E,0x2FBDC0AD8530803D28FDBAD354BB488D32399AC1CF8F6E01EE3F96389B90C809422B9429E8A43DBF49308AC4455940ABE9F1DBCA542093A895E30A64AF056FA5,0x100000000000000000000000000000000000000000000000000000000000000017B5FEFF30C7F5677AB2AEEBD13779A2AC125042A6AA10BFA54C15BAB76BAF1B,0x02
diff --git a/src/cz/crcs/ectester/data/schema.xsd b/src/cz/crcs/ectester/data/schema.xsd
index 2fe7892..85e8107 100644
--- a/src/cz/crcs/ectester/data/schema.xsd
+++ b/src/cz/crcs/ectester/data/schema.xsd
@@ -61,10 +61,11 @@
<xs:simpleType name="kaType">
<xs:restriction base="xs:string">
<xs:enumeration value="DH"/>
- <xs:enumeration value="ECDH"/>
<xs:enumeration value="DHC"/>
- <xs:enumeration value="ECDHC"/>
- <xs:enumeration value="BOTH"/>
+ <xs:enumeration value="DH_PLAIN"/>
+ <xs:enumeration value="DHC_PLAIN"/>
+ <xs:enumeration value="PACE_GM"/>
+ <xs:enumeration value="DH_PLAIN_XY"/>
<xs:enumeration value="ANY"/>
</xs:restriction>
</xs:simpleType>
diff --git a/src/cz/crcs/ectester/data/supersingular/curves.xml b/src/cz/crcs/ectester/data/supersingular/curves.xml
new file mode 100644
index 0000000..186a8a7
--- /dev/null
+++ b/src/cz/crcs/ectester/data/supersingular/curves.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<curves xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../schema.xsd">
+ <curve>
+ <id>ss128</id>
+ <bits>128</bits>
+ <field>prime</field>
+ <file>ss128.csv</file>
+ <desc>Supersingular curve</desc>
+ </curve>
+ <curve>
+ <id>ss192</id>
+ <bits>192</bits>
+ <field>prime</field>
+ <file>ss192.csv</file>
+ <desc>Supersingular curve</desc>
+ </curve>
+ <curve>
+ <id>ss224</id>
+ <bits>224</bits>
+ <field>prime</field>
+ <file>ss224.csv</file>
+ <desc>Supersingular curve</desc>
+ </curve>
+ <curve>
+ <id>ss256</id>
+ <bits>256</bits>
+ <field>prime</field>
+ <file>ss256.csv</file>
+ <desc>Supersingular curve</desc>
+ </curve>
+</curves> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/supersingular/ss128.csv b/src/cz/crcs/ectester/data/supersingular/ss128.csv
new file mode 100644
index 0000000..9dd4f13
--- /dev/null
+++ b/src/cz/crcs/ectester/data/supersingular/ss128.csv
@@ -0,0 +1 @@
+0x9ad6ed2af5bd6f3a9ac1d052ea17b2a9,0x8a3fe60aedb247e20a2d0c4a07de4d37,0x10970720080b27589094c408e2396572,0x563804cbd66f054434143af1e3ec6eaf,0x42af7ba7a078ef8fa3c0f253d1ccc16a,0x4d6b76957adeb79d4d60e829750bd955,0x02 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/supersingular/ss192.csv b/src/cz/crcs/ectester/data/supersingular/ss192.csv
new file mode 100644
index 0000000..0c8ae8b
--- /dev/null
+++ b/src/cz/crcs/ectester/data/supersingular/ss192.csv
@@ -0,0 +1 @@
+0x8c4dbc0e122afdeb466c2b7c3321e72531ac1cd8435f5159,0x64ff701953d8a795e3d9fa41a85eb2bd355479744198ae6c,0x274e4bf4be5256556292313a8ac33467fc57a36401c6a2ed,0x6c39b62a8665aca35dc1669dd483a1e881c65557bbed7f8c,0x1f90241e9bdb361251343bf4cb1ff19545e1e0fff2c8f235,0x4626de0709157ef5a33615be1990f39298d60e6c21afa8ad,0x02 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/supersingular/ss224.csv b/src/cz/crcs/ectester/data/supersingular/ss224.csv
new file mode 100644
index 0000000..01eaa35
--- /dev/null
+++ b/src/cz/crcs/ectester/data/supersingular/ss224.csv
@@ -0,0 +1 @@
+0xa52f9550f18b8475c5cddd1232428b0c6138aa8704759eab7916f839,0x35186ffe96c8460148b9070efdde881f68647ff48a93854966ebf457,0x701725525ac33e747d14d603346402ecf8d42a9279e21962122b03e2,0x726e4342d936e7c3f004d36b5a703ca35d000014e70bceb1e956f7cc,0x9b3785caa9b028340c564ec4e7450229b7a0b16bc7185c78d852e2a6,0x1084c221b1c126d893c7c94e9ea0411ad685aaa71a0bc31125b57f39,0x0a \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/supersingular/ss256.csv b/src/cz/crcs/ectester/data/supersingular/ss256.csv
new file mode 100644
index 0000000..47a8174
--- /dev/null
+++ b/src/cz/crcs/ectester/data/supersingular/ss256.csv
@@ -0,0 +1 @@
+0xf9cde8953b26ab31fe1b135266d2f9187e3d9df982880f05cc80f1998b9b0c8d,0xdf0a21f2f4d03d6ca2e151406e17cc1f0300287a348bc4452d7320db6138269e,0x1ac3c6a246566dc55b39c211f8bb2cf97b3d757f4dfc4ac09f0dd0be2a62e5ef,0x3c52f9e66b5c180923ac7bfb7f88f0162ee1dca122aa8dda1e8de3e044cb55a6,0x89c2f4437118d2edb0021706feef5a4419150afd7d1c3b7401eee93c2e547264,0x7ce6f44a9d935598ff0d89a933697c8c3f1ecefcc1440782e64078ccc5cd8647,0x02 \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/wrong/curves.xml b/src/cz/crcs/ectester/data/wrong/curves.xml
index 396dc4e..2a51474 100644
--- a/src/cz/crcs/ectester/data/wrong/curves.xml
+++ b/src/cz/crcs/ectester/data/wrong/curves.xml
@@ -6,77 +6,90 @@
<bits>128</bits>
<field>prime</field>
<file>wrongp128.csv</file>
+ <desc>The field is not prime.</desc>
</curve>
<curve>
<id>wrongp160</id>
<bits>160</bits>
<field>prime</field>
<file>wrongp160.csv</file>
+ <desc>The field is not prime.</desc>
</curve>
<curve>
<id>wrongp192</id>
<bits>192</bits>
<field>prime</field>
<file>wrongp192.csv</file>
+ <desc>The field is not prime.</desc>
</curve>
<curve>
<id>wrongp224</id>
<bits>224</bits>
<field>prime</field>
<file>wrongp224.csv</file>
+ <desc>The field is not prime.</desc>
</curve>
<curve>
<id>wrongp256</id>
<bits>256</bits>
<field>prime</field>
<file>wrongp256.csv</file>
+ <desc>The field is not prime.</desc>
</curve>
<curve>
<id>wrongp384</id>
<bits>384</bits>
<field>prime</field>
<file>wrongp384.csv</file>
+ <desc>The field is not prime.</desc>
</curve>
<curve>
<id>wrongp521</id>
<bits>521</bits>
<field>prime</field>
<file>wrongp521.csv</file>
+ <desc>The field is not prime.</desc>
</curve>
<curve>
<id>wrongt163</id>
<bits>163</bits>
<field>binary</field>
<file>wrongt163.csv</file>
+ <desc>The field polynomial is not irreducible in F_2^163[x].</desc>
</curve>
<curve>
<id>wrongt233</id>
<bits>233</bits>
<field>binary</field>
<file>wrongt233.csv</file>
+ <desc>The field polynomial is not irreducible in F_2^233[x].</desc>
</curve>
<curve>
<id>wrongt239</id>
<bits>239</bits>
<field>binary</field>
<file>wrongt239.csv</file>
+ <desc>The field polynomial is not irreducible in F_2^239[x].</desc>
</curve>
<curve>
<id>wrongt283</id>
<bits>283</bits>
<field>binary</field>
<file>wrongt283.csv</file>
+ <desc>The field polynomial is not irreducible in F_2^283[x].</desc>
</curve>
<curve>
<id>wrongt409</id>
<bits>409</bits>
<field>binary</field>
<file>wrongt409.csv</file>
+ <desc>The field polynomial is not irreducible in F_2^409[x].</desc>
</curve>
<curve>
<id>wrongt571</id>
<bits>571</bits>
<field>binary</field>
<file>wrongt571.csv</file>
+ <desc>The field polynomial is not irreducible in F_2^571[x].</desc>
</curve>
</curves> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/wycheproof/keys.xml b/src/cz/crcs/ectester/data/wycheproof/keys.xml
new file mode 100644
index 0000000..46cd697
--- /dev/null
+++ b/src/cz/crcs/ectester/data/wycheproof/keys.xml
@@ -0,0 +1,894 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<keys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../schema.xsd"
+ category="wycheproof"
+ desc="">
+ <privkey>
+ <id>addsub/secp224r1/1s</id>
+ <inline>0x0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29b7</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>tcId = 34</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp224r1/1w</id>
+ <inline>0x478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac230,0x2e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504</inline>
+ <!-- 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504 -->
+ <curve>secg/secp224r1</curve>
+ <desc>tcId = 34</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp224r1/2s</id>
+ <inline>0x0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a37</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>tcId = 35</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp224r1/2w</id>
+ <inline>0x478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac230,0x2e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504</inline>
+ <!-- 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504 -->
+ <curve>secg/secp224r1</curve>
+ <desc>tcId = 35</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp224r1/3s</id>
+ <inline>0x0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b</inline>
+ <curve>secg/secp224r1</curve>
+ <desc>tcId = 37</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp224r1/3w</id>
+ <inline>0x478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac230,0x2e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504</inline>
+ <!-- 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504 -->
+ <curve>secg/secp224r1</curve>
+ <desc>tcId = 37</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256r1/1s</id>
+ <inline>0x0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f3</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 106</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256r1/1w</id>
+ <inline>0x31028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f1167447,0x43a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b</inline>
+ <!-- 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b -->
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 106</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256r1/2s</id>
+ <inline>0x0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632533</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 107</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256r1/2w</id>
+ <inline>0x31028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f1167447,0x43a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b</inline>
+ <!-- 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b -->
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 107</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256r1/3s</id>
+ <inline>0x0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632543</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 108</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256r1/3w</id>
+ <inline>0x31028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f1167447,0x43a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b</inline>
+ <!-- 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b -->
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 108</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256r1/4s</id>
+ <inline>0x0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254b</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 109</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256r1/4w</id>
+ <inline>0x31028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f1167447,0x43a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b</inline>
+ <!-- 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b -->
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 109</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256r1/5s</id>
+ <inline>0x0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 111</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256r1/5w</id>
+ <inline>0x31028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f1167447,0x43a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b</inline>
+ <!-- 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b -->
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 111</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp384r1/1s</id>
+ <inline>0x0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52959</inline>
+ <curve>secg/secp384r1</curve>
+ <desc>tcId = 192</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp384r1/1w</id>
+ <inline>0xe9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c0,0x20156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e</inline>
+ <!-- 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e -->
+ <curve>secg/secp384r1</curve>
+ <desc>tcId = 192</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp384r1/2s</id>
+ <inline>0x0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52969</inline>
+ <curve>secg/secp384r1</curve>
+ <desc>tcId = 193</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp384r1/2w</id>
+ <inline>0xe9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c0,0x20156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e</inline>
+ <!-- 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e -->
+ <curve>secg/secp384r1</curve>
+ <desc>tcId = 193</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp384r1/3s</id>
+ <inline>0x0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971</inline>
+ <curve>secg/secp384r1</curve>
+ <desc>tcId = 195</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp384r1/3w</id>
+ <inline>0xe9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c0,0x20156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e</inline>
+ <!-- 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e -->
+ <curve>secg/secp384r1</curve>
+ <desc>tcId = 195</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp521r1/1s</id>
+ <inline>0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138631b</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 273</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp521r1/1w</id>
+ <inline>0x01ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b9,0x00854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314</inline>
+ <!-- 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314 -->
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 273</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp521r1/2s</id>
+ <inline>0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138639b</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 274</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp521r1/2w</id>
+ <inline>0x01ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b9,0x00854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314</inline>
+ <!-- 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314 -->
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 274</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp521r1/3s</id>
+ <inline>0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913863db</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 275</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp521r1/3w</id>
+ <inline>0x01ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b9,0x00854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314</inline>
+ <!-- 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314 -->
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 275</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp521r1/4s</id>
+ <inline>0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913863fb</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 276</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp521r1/4w</id>
+ <inline>0x01ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b9,0x00854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314</inline>
+ <!-- 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314 -->
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 276</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp521r1/5s</id>
+ <inline>0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386403</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 277</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp521r1/5w</id>
+ <inline>0x01ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b9,0x00854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314</inline>
+ <!-- 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314 -->
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 277</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp521r1/6s</id>
+ <inline>0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386407</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 279</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp521r1/6w</id>
+ <inline>0x01ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b9,0x00854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314</inline>
+ <!-- 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314 -->
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 279</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256k1/1s</id>
+ <inline>0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03640c3</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 362</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256k1/1w</id>
+ <inline>0x32bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e,0x981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b</inline>
+ <!-- 3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b -->
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 362</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256k1/2s</id>
+ <inline>0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364103</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 363</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256k1/2w</id>
+ <inline>0x32bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e,0x981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b</inline>
+ <!-- 3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b -->
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 363</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256k1/3s</id>
+ <inline>0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364123</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 364</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256k1/3w</id>
+ <inline>0x32bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e,0x981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b</inline>
+ <!-- 3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b -->
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 364</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256k1/4s</id>
+ <inline>0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364133</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 365</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256k1/4w</id>
+ <inline>0x32bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e,0x981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b</inline>
+ <!-- 3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b -->
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 365</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256k1/5s</id>
+ <inline>0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413b</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 366</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256k1/5w</id>
+ <inline>0x32bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e,0x981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b</inline>
+ <!-- 3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b -->
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 366</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/secp256k1/6s</id>
+ <inline>0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413f</inline>
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 368</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/secp256k1/6w</id>
+ <inline>0x32bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e,0x981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b</inline>
+ <!-- 3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b -->
+ <curve>secg/secp256k1</curve>
+ <desc>tcId = 368</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP224r1/1s</id>
+ <inline>0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a792dd</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>tcId = 441</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP224r1/1w</id>
+ <inline>0xaaf040d6cad2c18b953de46420b387fa83474d74c6767ed708b9d126,0x8c82a09310bc35b5caf2d9b46318b895e4c097ed501d2dcb14d30a66</inline>
+ <!-- 3052301406072a8648ce3d020106092b2403030208010105033a0004aaf040d6cad2c18b953de46420b387fa83474d74c6767ed708b9d1268c82a09310bc35b5caf2d9b46318b895e4c097ed501d2dcb14d30a66 -->
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>tcId = 441</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP224r1/2s</id>
+ <inline>0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7935d</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>tcId = 442</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP224r1/2w</id>
+ <inline>0xaaf040d6cad2c18b953de46420b387fa83474d74c6767ed708b9d126,0x8c82a09310bc35b5caf2d9b46318b895e4c097ed501d2dcb14d30a66</inline>
+ <!-- 3052301406072a8648ce3d020106092b2403030208010105033a0004aaf040d6cad2c18b953de46420b387fa83474d74c6767ed708b9d1268c82a09310bc35b5caf2d9b46318b895e4c097ed501d2dcb14d30a66 -->
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>tcId = 442</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP224r1/3s</id>
+ <inline>0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939d</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>tcId = 444</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP224r1/3w</id>
+ <inline>0xaaf040d6cad2c18b953de46420b387fa83474d74c6767ed708b9d126,0x8c82a09310bc35b5caf2d9b46318b895e4c097ed501d2dcb14d30a66</inline>
+ <!-- 3052301406072a8648ce3d020106092b2403030208010105033a0004aaf040d6cad2c18b953de46420b387fa83474d74c6767ed708b9d1268c82a09310bc35b5caf2d9b46318b895e4c097ed501d2dcb14d30a66 -->
+ <curve>brainpool/brainpoolP224r1</curve>
+ <desc>tcId = 444</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP256r1/1s</id>
+ <inline>0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974855f5</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>tcId = 524</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP256r1/1w</id>
+ <inline>0xa4597cfee2797aaace662caa92a444592c9f626f04beca98a06b6dfcaf53f4b3,0x77d67b1c109154309bcf3d2f3928e58747806f08a8cf88436ac1b2110b83493b</inline>
+ <!-- 305a301406072a8648ce3d020106092b240303020801010703420004a4597cfee2797aaace662caa92a444592c9f626f04beca98a06b6dfcaf53f4b377d67b1c109154309bcf3d2f3928e58747806f08a8cf88436ac1b2110b83493b -->
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>tcId = 524</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP256r1/2s</id>
+ <inline>0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485675</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>tcId = 525</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP256r1/2w</id>
+ <inline>0xa4597cfee2797aaace662caa92a444592c9f626f04beca98a06b6dfcaf53f4b3,0x77d67b1c109154309bcf3d2f3928e58747806f08a8cf88436ac1b2110b83493b</inline>
+ <!-- 305a301406072a8648ce3d020106092b240303020801010703420004a4597cfee2797aaace662caa92a444592c9f626f04beca98a06b6dfcaf53f4b377d67b1c109154309bcf3d2f3928e58747806f08a8cf88436ac1b2110b83493b -->
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>tcId = 525</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP256r1/3s</id>
+ <inline>0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485695</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>tcId = 526</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP256r1/3w</id>
+ <inline>0xa4597cfee2797aaace662caa92a444592c9f626f04beca98a06b6dfcaf53f4b3,0x77d67b1c109154309bcf3d2f3928e58747806f08a8cf88436ac1b2110b83493b</inline>
+ <!-- 305a301406072a8648ce3d020106092b240303020801010703420004a4597cfee2797aaace662caa92a444592c9f626f04beca98a06b6dfcaf53f4b377d67b1c109154309bcf3d2f3928e58747806f08a8cf88436ac1b2110b83493b -->
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>tcId = 526</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP256r1/4s</id>
+ <inline>0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a5</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>tcId = 528</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP256r1/4w</id>
+ <inline>0xa4597cfee2797aaace662caa92a444592c9f626f04beca98a06b6dfcaf53f4b3,0x77d67b1c109154309bcf3d2f3928e58747806f08a8cf88436ac1b2110b83493b</inline>
+ <!-- 305a301406072a8648ce3d020106092b240303020801010703420004a4597cfee2797aaace662caa92a444592c9f626f04beca98a06b6dfcaf53f4b377d67b1c109154309bcf3d2f3928e58747806f08a8cf88436ac1b2110b83493b -->
+ <curve>brainpool/brainpoolP256r1</curve>
+ <desc>tcId = 528</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320r1/1s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59233</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 604</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320r1/1w</id>
+ <inline>0x4e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfe,0xd230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d</inline>
+ <!-- 306a301406072a8648ce3d020106092b2403030208010109035200044e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfed230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d -->
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 604</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320r1/2s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592b3</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 605</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320r1/2w</id>
+ <inline>0x4e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfe,0xd230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d</inline>
+ <!-- 306a301406072a8648ce3d020106092b2403030208010109035200044e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfed230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d -->
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 605</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320r1/3s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592f3</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 606</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320r1/3w</id>
+ <inline>0x4e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfe,0xd230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d</inline>
+ <!-- 306a301406072a8648ce3d020106092b2403030208010109035200044e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfed230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d -->
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 606</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320r1/4s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59303</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 607</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320r1/4w</id>
+ <inline>0x4e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfe,0xd230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d</inline>
+ <!-- 306a301406072a8648ce3d020106092b2403030208010109035200044e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfed230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d -->
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 607</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320r1/5s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930b</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 608</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320r1/5w</id>
+ <inline>0x4e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfe,0xd230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d</inline>
+ <!-- 306a301406072a8648ce3d020106092b2403030208010109035200044e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfed230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d -->
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 608</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320r1/6s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930f</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 610</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320r1/6w</id>
+ <inline>0x4e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfe,0xd230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d</inline>
+ <!-- 306a301406072a8648ce3d020106092b2403030208010109035200044e73d59ec474e679414d0922de22e06d0dad990ba4746c3d026bdea52e7bbeaac928d0ddaab29dfed230dde60fd57d4ef8e935b23cb7d4216b278b17a3f02d70454fa0e45da2054b91b0c4b663ab243d -->
+ <curve>brainpool/brainpoolP320r1</curve>
+ <desc>tcId = 610</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP384r1/1s</id>
+ <inline>0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904652f</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>tcId = 684</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP384r1/1w</id>
+ <inline>0x09d897b6d1452a2f91c4c37fbb06d82f9ebf722298cafb135e582cded3e3210033e4cd07703c34acf36ba72b401c30bf,0x03b161af6e11309a1122145c431996047a7e7808cf8314b6ec37c61a817d08c7d00c8c7b5d258f2674378c832f682edf</inline>
+ <!-- 307a301406072a8648ce3d020106092b240303020801010b0362000409d897b6d1452a2f91c4c37fbb06d82f9ebf722298cafb135e582cded3e3210033e4cd07703c34acf36ba72b401c30bf03b161af6e11309a1122145c431996047a7e7808cf8314b6ec37c61a817d08c7d00c8c7b5d258f2674378c832f682edf -->
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>tcId = 684</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP384r1/2s</id>
+ <inline>0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904654f</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>tcId = 685</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP384r1/2w</id>
+ <inline>0x09d897b6d1452a2f91c4c37fbb06d82f9ebf722298cafb135e582cded3e3210033e4cd07703c34acf36ba72b401c30bf,0x03b161af6e11309a1122145c431996047a7e7808cf8314b6ec37c61a817d08c7d00c8c7b5d258f2674378c832f682edf</inline>
+ <!-- 307a301406072a8648ce3d020106092b240303020801010b0362000409d897b6d1452a2f91c4c37fbb06d82f9ebf722298cafb135e582cded3e3210033e4cd07703c34acf36ba72b401c30bf03b161af6e11309a1122145c431996047a7e7808cf8314b6ec37c61a817d08c7d00c8c7b5d258f2674378c832f682edf -->
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>tcId = 685</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP384r1/3s</id>
+ <inline>0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904655f</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>tcId = 686</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP384r1/3w</id>
+ <inline>0x09d897b6d1452a2f91c4c37fbb06d82f9ebf722298cafb135e582cded3e3210033e4cd07703c34acf36ba72b401c30bf,0x03b161af6e11309a1122145c431996047a7e7808cf8314b6ec37c61a817d08c7d00c8c7b5d258f2674378c832f682edf</inline>
+ <!-- 307a301406072a8648ce3d020106092b240303020801010b0362000409d897b6d1452a2f91c4c37fbb06d82f9ebf722298cafb135e582cded3e3210033e4cd07703c34acf36ba72b401c30bf03b161af6e11309a1122145c431996047a7e7808cf8314b6ec37c61a817d08c7d00c8c7b5d258f2674378c832f682edf -->
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>tcId = 686</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP384r1/4s</id>
+ <inline>0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046563</inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>tcId = 688</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP384r1/4w</id>
+ <inline>0x09d897b6d1452a2f91c4c37fbb06d82f9ebf722298cafb135e582cded3e3210033e4cd07703c34acf36ba72b401c30bf,0x03b161af6e11309a1122145c431996047a7e7808cf8314b6ec37c61a817d08c7d00c8c7b5d258f2674378c832f682edf</inline>
+ <!-- 307a301406072a8648ce3d020106092b240303020801010b0362000409d897b6d1452a2f91c4c37fbb06d82f9ebf722298cafb135e582cded3e3210033e4cd07703c34acf36ba72b401c30bf03b161af6e11309a1122145c431996047a7e7808cf8314b6ec37c61a817d08c7d00c8c7b5d258f2674378c832f682edf -->
+ <curve>brainpool/brainpoolP384r1</curve>
+ <desc>tcId = 688</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP512r1/1s</id>
+ <inline>0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9003b</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>tcId = 774</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP512r1/1w</id>
+ <inline>0x2ee402777200a1c9e7eceb61feb070af49429f9240d7c0bab9b2f01c5ee145683df47cbe852ff6f99198f6fdfaef1925eb96bd25e03d6d70f709eb1922308acc,0x99a3fbc1e982db7a7b3bbf7827ea70912ee677bb0ba70bfabec38d4b993af165c40727680fe79ad0fbb55d1e9568d978b11f77cc4e72aa7ca5c391034078b8bd</inline>
+ <!-- 30819b301406072a8648ce3d020106092b240303020801010d03818200042ee402777200a1c9e7eceb61feb070af49429f9240d7c0bab9b2f01c5ee145683df47cbe852ff6f99198f6fdfaef1925eb96bd25e03d6d70f709eb1922308acc99a3fbc1e982db7a7b3bbf7827ea70912ee677bb0ba70bfabec38d4b993af165c40727680fe79ad0fbb55d1e9568d978b11f77cc4e72aa7ca5c391034078b8bd -->
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>tcId = 774</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP512r1/2s</id>
+ <inline>0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9005b</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>tcId = 775</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP512r1/2w</id>
+ <inline>0x2ee402777200a1c9e7eceb61feb070af49429f9240d7c0bab9b2f01c5ee145683df47cbe852ff6f99198f6fdfaef1925eb96bd25e03d6d70f709eb1922308acc,0x99a3fbc1e982db7a7b3bbf7827ea70912ee677bb0ba70bfabec38d4b993af165c40727680fe79ad0fbb55d1e9568d978b11f77cc4e72aa7ca5c391034078b8bd</inline>
+ <!-- 30819b301406072a8648ce3d020106092b240303020801010d03818200042ee402777200a1c9e7eceb61feb070af49429f9240d7c0bab9b2f01c5ee145683df47cbe852ff6f99198f6fdfaef1925eb96bd25e03d6d70f709eb1922308acc99a3fbc1e982db7a7b3bbf7827ea70912ee677bb0ba70bfabec38d4b993af165c40727680fe79ad0fbb55d1e9568d978b11f77cc4e72aa7ca5c391034078b8bd -->
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>tcId = 775</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP512r1/3s</id>
+ <inline>0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90063</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>tcId = 776</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP512r1/3w</id>
+ <inline>0x2ee402777200a1c9e7eceb61feb070af49429f9240d7c0bab9b2f01c5ee145683df47cbe852ff6f99198f6fdfaef1925eb96bd25e03d6d70f709eb1922308acc,0x99a3fbc1e982db7a7b3bbf7827ea70912ee677bb0ba70bfabec38d4b993af165c40727680fe79ad0fbb55d1e9568d978b11f77cc4e72aa7ca5c391034078b8bd</inline>
+ <!-- 30819b301406072a8648ce3d020106092b240303020801010d03818200042ee402777200a1c9e7eceb61feb070af49429f9240d7c0bab9b2f01c5ee145683df47cbe852ff6f99198f6fdfaef1925eb96bd25e03d6d70f709eb1922308acc99a3fbc1e982db7a7b3bbf7827ea70912ee677bb0ba70bfabec38d4b993af165c40727680fe79ad0fbb55d1e9568d978b11f77cc4e72aa7ca5c391034078b8bd -->
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>tcId = 776</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP512r1/4s</id>
+ <inline>0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90067</inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>tcId = 778</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP512r1/4w</id>
+ <inline>0x2ee402777200a1c9e7eceb61feb070af49429f9240d7c0bab9b2f01c5ee145683df47cbe852ff6f99198f6fdfaef1925eb96bd25e03d6d70f709eb1922308acc,0x99a3fbc1e982db7a7b3bbf7827ea70912ee677bb0ba70bfabec38d4b993af165c40727680fe79ad0fbb55d1e9568d978b11f77cc4e72aa7ca5c391034078b8bd</inline>
+ <!-- 30819b301406072a8648ce3d020106092b240303020801010d03818200042ee402777200a1c9e7eceb61feb070af49429f9240d7c0bab9b2f01c5ee145683df47cbe852ff6f99198f6fdfaef1925eb96bd25e03d6d70f709eb1922308acc99a3fbc1e982db7a7b3bbf7827ea70912ee677bb0ba70bfabec38d4b993af165c40727680fe79ad0fbb55d1e9568d978b11f77cc4e72aa7ca5c391034078b8bd -->
+ <curve>brainpool/brainpoolP512r1</curve>
+ <desc>tcId = 778</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP224t1/1s</id>
+ <inline>0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a792dd</inline>
+ <curve>brainpool/brainpoolP224t1</curve>
+ <desc>tcId = 854</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP224t1/1w</id>
+ <inline>0x1b801b9b969daaddbc40876ef79201c5dd8e480f003a043e818862c2,0x6709e1b2f6d8826ae4257a5db46b78848091c56a54577248185936b1</inline>
+ <!-- 3052301406072a8648ce3d020106092b2403030208010106033a00041b801b9b969daaddbc40876ef79201c5dd8e480f003a043e818862c26709e1b2f6d8826ae4257a5db46b78848091c56a54577248185936b1 -->
+ <curve>brainpool/brainpoolP224t1</curve>
+ <desc>tcId = 854</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP224t1/2s</id>
+ <inline>0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7935d</inline>
+ <curve>brainpool/brainpoolP224t1</curve>
+ <desc>tcId = 855</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP224t1/2w</id>
+ <inline>0x1b801b9b969daaddbc40876ef79201c5dd8e480f003a043e818862c2,0x6709e1b2f6d8826ae4257a5db46b78848091c56a54577248185936b1</inline>
+ <!-- 3052301406072a8648ce3d020106092b2403030208010106033a00041b801b9b969daaddbc40876ef79201c5dd8e480f003a043e818862c26709e1b2f6d8826ae4257a5db46b78848091c56a54577248185936b1 -->
+ <curve>brainpool/brainpoolP224t1</curve>
+ <desc>tcId = 855</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP224t1/3s</id>
+ <inline>0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939d</inline>
+ <curve>brainpool/brainpoolP224t1</curve>
+ <desc>tcId = 857</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP224t1/3w</id>
+ <inline>0x1b801b9b969daaddbc40876ef79201c5dd8e480f003a043e818862c2,0x6709e1b2f6d8826ae4257a5db46b78848091c56a54577248185936b1</inline>
+ <!-- 3052301406072a8648ce3d020106092b2403030208010106033a00041b801b9b969daaddbc40876ef79201c5dd8e480f003a043e818862c26709e1b2f6d8826ae4257a5db46b78848091c56a54577248185936b1 -->
+ <curve>brainpool/brainpoolP224t1</curve>
+ <desc>tcId = 857</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP256t1/1s</id>
+ <inline>0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974855f5</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>tcId = 935</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP256t1/1w</id>
+ <inline>0x2053bf936c82599d38aef8ec650f502ad9dce3be818d32de66009a3137604f5b,0x02317c894b1138b873b612714c95527021b4240edd45ad26ee96d507954c3245</inline>
+ <!-- 305a301406072a8648ce3d020106092b2403030208010108034200042053bf936c82599d38aef8ec650f502ad9dce3be818d32de66009a3137604f5b02317c894b1138b873b612714c95527021b4240edd45ad26ee96d507954c3245 -->
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>tcId = 935</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP256t1/2s</id>
+ <inline>0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485675</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>tcId = 936</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP256t1/2w</id>
+ <inline>0x2053bf936c82599d38aef8ec650f502ad9dce3be818d32de66009a3137604f5b,0x02317c894b1138b873b612714c95527021b4240edd45ad26ee96d507954c3245</inline>
+ <!-- 305a301406072a8648ce3d020106092b2403030208010108034200042053bf936c82599d38aef8ec650f502ad9dce3be818d32de66009a3137604f5b02317c894b1138b873b612714c95527021b4240edd45ad26ee96d507954c3245 -->
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>tcId = 936</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP256t1/3s</id>
+ <inline>0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485695</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>tcId = 937</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP256t1/3w</id>
+ <inline>0x2053bf936c82599d38aef8ec650f502ad9dce3be818d32de66009a3137604f5b,0x02317c894b1138b873b612714c95527021b4240edd45ad26ee96d507954c3245</inline>
+ <!-- 305a301406072a8648ce3d020106092b2403030208010108034200042053bf936c82599d38aef8ec650f502ad9dce3be818d32de66009a3137604f5b02317c894b1138b873b612714c95527021b4240edd45ad26ee96d507954c3245 -->
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>tcId = 937</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP256t1/4s</id>
+ <inline>0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a5</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>tcId = 939</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP256t1/4w</id>
+ <inline>0x2053bf936c82599d38aef8ec650f502ad9dce3be818d32de66009a3137604f5b,0x02317c894b1138b873b612714c95527021b4240edd45ad26ee96d507954c3245</inline>
+ <!-- 305a301406072a8648ce3d020106092b2403030208010108034200042053bf936c82599d38aef8ec650f502ad9dce3be818d32de66009a3137604f5b02317c894b1138b873b612714c95527021b4240edd45ad26ee96d507954c3245 -->
+ <curve>brainpool/brainpoolP256t1</curve>
+ <desc>tcId = 939</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320t1/1s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59233</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1015</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320t1/1w</id>
+ <inline>0xaac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b97225,0x3955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd</inline>
+ <!-- 306a301406072a8648ce3d020106092b240303020801010a03520004aac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b972253955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd -->
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1015</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320t1/2s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592b3</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1016</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320t1/2w</id>
+ <inline>0xaac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b97225,0x3955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd</inline>
+ <!-- 306a301406072a8648ce3d020106092b240303020801010a03520004aac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b972253955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd -->
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1016</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320t1/3s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592f3</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1017</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320t1/3w</id>
+ <inline>0xaac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b97225,0x3955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd</inline>
+ <!-- 306a301406072a8648ce3d020106092b240303020801010a03520004aac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b972253955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd -->
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1017</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320t1/4s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59303</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1018</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320t1/4w</id>
+ <inline>0xaac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b97225,0x3955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd</inline>
+ <!-- 306a301406072a8648ce3d020106092b240303020801010a03520004aac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b972253955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd -->
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1018</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320t1/5s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930b</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1019</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320t1/5w</id>
+ <inline>0xaac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b97225,0x3955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd</inline>
+ <!-- 306a301406072a8648ce3d020106092b240303020801010a03520004aac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b972253955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd -->
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1019</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP320t1/6s</id>
+ <inline>0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930f</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1021</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP320t1/6w</id>
+ <inline>0xaac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b97225,0x3955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd</inline>
+ <!-- 306a301406072a8648ce3d020106092b240303020801010a03520004aac3566c8e494d7d52976b107a9b9058e65e541c01dab5d4bba90658a655890fd2c48d29f0b972253955fdbd31c6328df2e893fe5b401ddc529c4ed70a9c46badb80843277b8f9874538312460d54dfd -->
+ <curve>brainpool/brainpoolP320t1</curve>
+ <desc>tcId = 1021</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP384t1/1s</id>
+ <inline>0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904652f</inline>
+ <curve>brainpool/brainpoolP384t1</curve>
+ <desc>tcId = 1093</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP384t1/1w</id>
+ <inline>0x1e6c405358fab0f63c09eddacc372dd29c17d0eebcffe37975ee3c6bf05c7b8db09f104fcf6cc1a0576c44c12637b4bf,0x88938d33d2d9390c1075f3af467937074db4022a44e2ea2e9cbff6bfcb4af4909fbb8bd3ab627e1dd1649d5faec28a71</inline>
+ <!-- 307a301406072a8648ce3d020106092b240303020801010c036200041e6c405358fab0f63c09eddacc372dd29c17d0eebcffe37975ee3c6bf05c7b8db09f104fcf6cc1a0576c44c12637b4bf88938d33d2d9390c1075f3af467937074db4022a44e2ea2e9cbff6bfcb4af4909fbb8bd3ab627e1dd1649d5faec28a71 -->
+ <curve>brainpool/brainpoolP384t1</curve>
+ <desc>tcId = 1093</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP384t1/2s</id>
+ <inline>0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904654f</inline>
+ <curve>brainpool/brainpoolP384t1</curve>
+ <desc>tcId = 1094</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP384t1/2w</id>
+ <inline>0x1e6c405358fab0f63c09eddacc372dd29c17d0eebcffe37975ee3c6bf05c7b8db09f104fcf6cc1a0576c44c12637b4bf,0x88938d33d2d9390c1075f3af467937074db4022a44e2ea2e9cbff6bfcb4af4909fbb8bd3ab627e1dd1649d5faec28a71</inline>
+ <!-- 307a301406072a8648ce3d020106092b240303020801010c036200041e6c405358fab0f63c09eddacc372dd29c17d0eebcffe37975ee3c6bf05c7b8db09f104fcf6cc1a0576c44c12637b4bf88938d33d2d9390c1075f3af467937074db4022a44e2ea2e9cbff6bfcb4af4909fbb8bd3ab627e1dd1649d5faec28a71 -->
+ <curve>brainpool/brainpoolP384t1</curve>
+ <desc>tcId = 1094</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP384t1/3s</id>
+ <inline>0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904655f</inline>
+ <curve>brainpool/brainpoolP384t1</curve>
+ <desc>tcId = 1095</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP384t1/3w</id>
+ <inline>0x1e6c405358fab0f63c09eddacc372dd29c17d0eebcffe37975ee3c6bf05c7b8db09f104fcf6cc1a0576c44c12637b4bf,0x88938d33d2d9390c1075f3af467937074db4022a44e2ea2e9cbff6bfcb4af4909fbb8bd3ab627e1dd1649d5faec28a71</inline>
+ <!-- 307a301406072a8648ce3d020106092b240303020801010c036200041e6c405358fab0f63c09eddacc372dd29c17d0eebcffe37975ee3c6bf05c7b8db09f104fcf6cc1a0576c44c12637b4bf88938d33d2d9390c1075f3af467937074db4022a44e2ea2e9cbff6bfcb4af4909fbb8bd3ab627e1dd1649d5faec28a71 -->
+ <curve>brainpool/brainpoolP384t1</curve>
+ <desc>tcId = 1095</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP384t1/4s</id>
+ <inline>0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046563</inline>
+ <curve>brainpool/brainpoolP384t1</curve>
+ <desc>tcId = 1097</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP384t1/4w</id>
+ <inline>0x1e6c405358fab0f63c09eddacc372dd29c17d0eebcffe37975ee3c6bf05c7b8db09f104fcf6cc1a0576c44c12637b4bf,0x88938d33d2d9390c1075f3af467937074db4022a44e2ea2e9cbff6bfcb4af4909fbb8bd3ab627e1dd1649d5faec28a71</inline>
+ <!-- 307a301406072a8648ce3d020106092b240303020801010c036200041e6c405358fab0f63c09eddacc372dd29c17d0eebcffe37975ee3c6bf05c7b8db09f104fcf6cc1a0576c44c12637b4bf88938d33d2d9390c1075f3af467937074db4022a44e2ea2e9cbff6bfcb4af4909fbb8bd3ab627e1dd1649d5faec28a71 -->
+ <curve>brainpool/brainpoolP384t1</curve>
+ <desc>tcId = 1097</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP512t1/1s</id>
+ <inline>0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9003b</inline>
+ <curve>brainpool/brainpoolP512t1</curve>
+ <desc>tcId = 1185</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP512t1/1w</id>
+ <inline>0x242748b1fa44edac413a79ee1cdcc3d4bab5fa125d4d692208ac52764377b84fe3472dbe8f292572f1f3dbf3e927624d983d5c0f4bfca5224dc0739889ddd079,0x3d1f2089639992a74a3c1783d2f1bd50f85ad77540adfa78b1a6581bcd74b3ef0dd996be2809ed16434c42b3a29cb81b1a39720cede1b640f018788afa61cbed</inline>
+ <!-- 30819b301406072a8648ce3d020106092b240303020801010e0381820004242748b1fa44edac413a79ee1cdcc3d4bab5fa125d4d692208ac52764377b84fe3472dbe8f292572f1f3dbf3e927624d983d5c0f4bfca5224dc0739889ddd0793d1f2089639992a74a3c1783d2f1bd50f85ad77540adfa78b1a6581bcd74b3ef0dd996be2809ed16434c42b3a29cb81b1a39720cede1b640f018788afa61cbed -->
+ <curve>brainpool/brainpoolP512t1</curve>
+ <desc>tcId = 1185</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP512t1/2s</id>
+ <inline>0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9005b</inline>
+ <curve>brainpool/brainpoolP512t1</curve>
+ <desc>tcId = 1186</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP512t1/2w</id>
+ <inline>0x242748b1fa44edac413a79ee1cdcc3d4bab5fa125d4d692208ac52764377b84fe3472dbe8f292572f1f3dbf3e927624d983d5c0f4bfca5224dc0739889ddd079,0x3d1f2089639992a74a3c1783d2f1bd50f85ad77540adfa78b1a6581bcd74b3ef0dd996be2809ed16434c42b3a29cb81b1a39720cede1b640f018788afa61cbed</inline>
+ <!-- 30819b301406072a8648ce3d020106092b240303020801010e0381820004242748b1fa44edac413a79ee1cdcc3d4bab5fa125d4d692208ac52764377b84fe3472dbe8f292572f1f3dbf3e927624d983d5c0f4bfca5224dc0739889ddd0793d1f2089639992a74a3c1783d2f1bd50f85ad77540adfa78b1a6581bcd74b3ef0dd996be2809ed16434c42b3a29cb81b1a39720cede1b640f018788afa61cbed -->
+ <curve>brainpool/brainpoolP512t1</curve>
+ <desc>tcId = 1186</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP512t1/3s</id>
+ <inline>0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90063</inline>
+ <curve>brainpool/brainpoolP512t1</curve>
+ <desc>tcId = 1187</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP512t1/3w</id>
+ <inline>0x242748b1fa44edac413a79ee1cdcc3d4bab5fa125d4d692208ac52764377b84fe3472dbe8f292572f1f3dbf3e927624d983d5c0f4bfca5224dc0739889ddd079,0x3d1f2089639992a74a3c1783d2f1bd50f85ad77540adfa78b1a6581bcd74b3ef0dd996be2809ed16434c42b3a29cb81b1a39720cede1b640f018788afa61cbed</inline>
+ <!-- 30819b301406072a8648ce3d020106092b240303020801010e0381820004242748b1fa44edac413a79ee1cdcc3d4bab5fa125d4d692208ac52764377b84fe3472dbe8f292572f1f3dbf3e927624d983d5c0f4bfca5224dc0739889ddd0793d1f2089639992a74a3c1783d2f1bd50f85ad77540adfa78b1a6581bcd74b3ef0dd996be2809ed16434c42b3a29cb81b1a39720cede1b640f018788afa61cbed -->
+ <curve>brainpool/brainpoolP512t1</curve>
+ <desc>tcId = 1187</desc>
+ </pubkey>
+ <privkey>
+ <id>addsub/brainpoolP512t1/4s</id>
+ <inline>0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90067</inline>
+ <curve>brainpool/brainpoolP512t1</curve>
+ <desc>tcId = 1189</desc>
+ </privkey>
+ <pubkey>
+ <id>addsub/brainpoolP512t1/4w</id>
+ <inline>0x242748b1fa44edac413a79ee1cdcc3d4bab5fa125d4d692208ac52764377b84fe3472dbe8f292572f1f3dbf3e927624d983d5c0f4bfca5224dc0739889ddd079,0x3d1f2089639992a74a3c1783d2f1bd50f85ad77540adfa78b1a6581bcd74b3ef0dd996be2809ed16434c42b3a29cb81b1a39720cede1b640f018788afa61cbed</inline>
+ <!-- 30819b301406072a8648ce3d020106092b240303020801010e0381820004242748b1fa44edac413a79ee1cdcc3d4bab5fa125d4d692208ac52764377b84fe3472dbe8f292572f1f3dbf3e927624d983d5c0f4bfca5224dc0739889ddd0793d1f2089639992a74a3c1783d2f1bd50f85ad77540adfa78b1a6581bcd74b3ef0dd996be2809ed16434c42b3a29cb81b1a39720cede1b640f018788afa61cbed -->
+ <curve>brainpool/brainpoolP512t1</curve>
+ <desc>tcId = 1189</desc>
+ </pubkey>
+
+ <!-- CVE-2017-8932 tests -->
+ <privkey>
+ <id>cve_2017_8932/secp256r1/1s</id>
+ <inline>0x2a265f8bcbdcaf94d58519141e578124cb40d64a501fba9c11847b28965bc737</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 112</desc>
+ </privkey>
+ <pubkey>
+ <id>cve_2017_8932/secp256r1/1w</id>
+ <inline>0x023819813ac969847059028ea88a1f30dfbcde03fc791d3a252c6b41211882ea,0xf93e4ae433cc12cf2a43fc0ef26400c0e125508224cdb649380f25479148a4ad</inline>
+ <!-- 3059301306072a8648ce3d020106082a8648ce3d03010703420004023819813ac969847059028ea88a1f30dfbcde03fc791d3a252c6b41211882eaf93e4ae433cc12cf2a43fc0ef26400c0e125508224cdb649380f25479148a4ad -->
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 112</desc>
+ </pubkey>
+ <privkey>
+ <id>cve_2017_8932/secp256r1/2s</id>
+ <inline>0x313f72ff9fe811bf573176231b286a3bdb6f1b14e05c40146590727a71c3bccd</inline>
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 113</desc>
+ </privkey>
+ <pubkey>
+ <id>cve_2017_8932/secp256r1/2w</id>
+ <inline>0xcc11887b2d66cbae8f4d306627192522932146b42f01d3c6f92bd5c8ba739b06,0xa2f08a029cd06b46183085bae9248b0ed15b70280c7ef13a457f5af382426031</inline>
+ <!-- 3059301306072a8648ce3d020106082a8648ce3d03010703420004cc11887b2d66cbae8f4d306627192522932146b42f01d3c6f92bd5c8ba739b06a2f08a029cd06b46183085bae9248b0ed15b70280c7ef13a457f5af382426031 -->
+ <curve>secg/secp256r1</curve>
+ <desc>tcId = 113</desc>
+ </pubkey>
+
+ <!-- CVE-2017-10176 tests -->
+ <privkey>
+ <id>cve_2017_10176/secp521r1/1s</id>
+ <inline>0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913863f7</inline>
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 280</desc>
+ </privkey>
+ <pubkey>
+ <id>cve_2017_10176/secp521r1/1w</id>
+ <inline>0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66,0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650</inline>
+ <!-- 30819b301006072a8648ce3d020106052b81040023038186000400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650 -->
+ <curve>secg/secp521r1</curve>
+ <desc>tcId = 280</desc>
+ </pubkey>
+</keys> \ No newline at end of file
diff --git a/src/cz/crcs/ectester/data/wycheproof/results.xml b/src/cz/crcs/ectester/data/wycheproof/results.xml
new file mode 100644
index 0000000..5508f4c
--- /dev/null
+++ b/src/cz/crcs/ectester/data/wycheproof/results.xml
@@ -0,0 +1,589 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<results xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../schema.xsd">
+ <result>
+ <id>addsub/secp224r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x475fd96e0eb8cb8f100a5d7fe043a7a6851d1d611da2643a3c6ae708</inline>
+ <curve>secg/secp224r1</curve>
+ <onekey>wycheproof/addsub/secp224r1/1s</onekey>
+ <otherkey>wycheproof/addsub/secp224r1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp224r1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x41ef931d669d1f57d8bb95a01a92321da74be8c6cbc3bbe0b2e73ebd</inline>
+ <curve>secg/secp224r1</curve>
+ <onekey>wycheproof/addsub/secp224r1/2s</onekey>
+ <otherkey>wycheproof/addsub/secp224r1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp224r1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x11ff15126411299cbd49e2b7542e69e91ef132e2551a16ecfebb23a3</inline>
+ <curve>secg/secp224r1</curve>
+ <onekey>wycheproof/addsub/secp224r1/3s</onekey>
+ <otherkey>wycheproof/addsub/secp224r1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xf7407d61fdf581be4f564621d590ca9b7ba37f31396150f9922f1501da8c83ef</inline>
+ <curve>secg/secp256r1</curve>
+ <onekey>wycheproof/addsub/secp256r1/1s</onekey>
+ <otherkey>wycheproof/addsub/secp256r1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256r1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x82236fd272208693e0574555ca465c6cc512163486084fa57f5e1bd2e2ccc0b3</inline>
+ <curve>secg/secp256r1</curve>
+ <onekey>wycheproof/addsub/secp256r1/2s</onekey>
+ <otherkey>wycheproof/addsub/secp256r1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256r1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x06537149664dba1a9924654cb7f787ed224851b0df25ef53fcf54f8f26cd5f3f</inline>
+ <curve>secg/secp256r1</curve>
+ <onekey>wycheproof/addsub/secp256r1/3s</onekey>
+ <otherkey>wycheproof/addsub/secp256r1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256r1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xf2b38539bce995d443c7bfeeefadc9e42cc2c89c60bf4e86eac95d51987bd112</inline>
+ <curve>secg/secp256r1</curve>
+ <onekey>wycheproof/addsub/secp256r1/4s</onekey>
+ <otherkey>wycheproof/addsub/secp256r1/4w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256r1/5test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x027b013a6f166db655d69d643c127ef8ace175311e667dff2520f5b5c75b7659</inline>
+ <curve>secg/secp256r1</curve>
+ <onekey>wycheproof/addsub/secp256r1/5s</onekey>
+ <otherkey>wycheproof/addsub/secp256r1/5w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp384r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x2ecf9dc47e8b07ae61ddbd1680ead02698e9e8469f78d5a28328e48d0c9d7a2ac787e50cba58cc44a32fb1235d2d7027
+ </inline>
+ <curve>secg/secp384r1</curve>
+ <onekey>wycheproof/addsub/secp384r1/1s</onekey>
+ <otherkey>wycheproof/addsub/secp384r1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp384r1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x06ee9f55079d3d3c18c683ba33e0d2521be97c4fbf7917bf3b6287d58ffcde2df88842e3f5530b39549ac20974b1b60e
+ </inline>
+ <curve>secg/secp384r1</curve>
+ <onekey>wycheproof/addsub/secp384r1/2s</onekey>
+ <otherkey>wycheproof/addsub/secp384r1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp384r1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x024c5281487216058270cd1cfe259e948310e4adc263a9edaa4da0bc3f5f8ce8ffc88ae41b2c050bf6dd9c8c66857237
+ </inline>
+ <curve>secg/secp384r1</curve>
+ <onekey>wycheproof/addsub/secp384r1/3s</onekey>
+ <otherkey>wycheproof/addsub/secp384r1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp521r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x00286cefaaf38ca4c6657eb9b187d8614d51775fd71c1a79b4c0ef1a0d4ce72b6f5b2bc854a4e78283530942a3f4fd2a8586d5ea51513c89d3d29de5de06321e118e
+ </inline>
+ <curve>secg/secp521r1</curve>
+ <onekey>wycheproof/addsub/secp521r1/1s</onekey>
+ <otherkey>wycheproof/addsub/secp521r1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp521r1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x014790de14c481f1336fcb7d33a8bf8e23eb594cc48608e9edfe0e326e106b67e7eaa3f04ec9985599178f632a5ee6419e11217060e9fcd5958a43882bf8cd3be6ba
+ </inline>
+ <curve>secg/secp521r1</curve>
+ <onekey>wycheproof/addsub/secp521r1/2s</onekey>
+ <otherkey>wycheproof/addsub/secp521r1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp521r1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x01ae775dbc4096a3aea7977b1a0af4b2830ecf9ca927a6247fba4cccb46b3f71d0e7abb8dda72d1c1ee7bb5b875b4773cc8df40f732819c4147da330775d1742ea35
+ </inline>
+ <curve>secg/secp521r1</curve>
+ <onekey>wycheproof/addsub/secp521r1/3s</onekey>
+ <otherkey>wycheproof/addsub/secp521r1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp521r1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x01979fb05e068a12a3f20cfdfb9eaee9f22b356edcc7655383ed38124b86814f86a6f2216a34f3fc2299d403ee42408f95d08c5c6cd11db72cbf299a4a3c2545be25
+ </inline>
+ <curve>secg/secp521r1</curve>
+ <onekey>wycheproof/addsub/secp521r1/4s</onekey>
+ <otherkey>wycheproof/addsub/secp521r1/4w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp521r1/5test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x0197ebe26798bf67f06ff0282773af75115531f41d94c093d87481b76bef707bc222f2d6672f84a00fa20c5ed27027ab4006b68d93ee2151016c9ddbe014346272e2
+ </inline>
+ <curve>secg/secp521r1</curve>
+ <onekey>wycheproof/addsub/secp521r1/5s</onekey>
+ <otherkey>wycheproof/addsub/secp521r1/5w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp521r1/6test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x01c168314cdc85757ade34a52a9e5379ffa5968f084b7e404939a8033a0fc698e26211754b9b2c04cf8a1420abe6e986ef1a238bbb91dd402b72e0ed50a876f1a83e
+ </inline>
+ <curve>secg/secp521r1</curve>
+ <onekey>wycheproof/addsub/secp521r1/6s</onekey>
+ <otherkey>wycheproof/addsub/secp521r1/6w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256k1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x09c7337df6c2b35edf3a21382511cc5add1a71a84cbf8d3396a5be548d92fa67</inline>
+ <curve>secg/secp256k1</curve>
+ <onekey>wycheproof/addsub/secp256k1/1s</onekey>
+ <otherkey>wycheproof/addsub/secp256k1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256k1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xd16caedd25793666f9e26f5331382106f54095b3d20d40c745b68ca76c0e6983</inline>
+ <curve>secg/secp256k1</curve>
+ <onekey>wycheproof/addsub/secp256k1/2s</onekey>
+ <otherkey>wycheproof/addsub/secp256k1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256k1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xb8ae1e21d8b34ce4caffed7167a26868ec80a7d4a6a98b639d4d05cd226504de</inline>
+ <curve>secg/secp256k1</curve>
+ <onekey>wycheproof/addsub/secp256k1/3s</onekey>
+ <otherkey>wycheproof/addsub/secp256k1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256k1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x02776315fe147a36a4b0987492b6503acdea60f926450e5eddb9f88fc82178d3</inline>
+ <curve>secg/secp256k1</curve>
+ <onekey>wycheproof/addsub/secp256k1/4s</onekey>
+ <otherkey>wycheproof/addsub/secp256k1/4w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256k1/5test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x3988c9c7050a28794934e5bd67629b556d97a4858d22812835f4a37dca351943</inline>
+ <curve>secg/secp256k1</curve>
+ <onekey>wycheproof/addsub/secp256k1/5s</onekey>
+ <otherkey>wycheproof/addsub/secp256k1/5w</otherkey>
+ </result>
+ <result>
+ <id>addsub/secp256k1/6test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x4b52257d8b3ba387797fdf7a752f195ddc4f7d76263de61d0d52a5ec14a36cbf</inline>
+ <curve>secg/secp256k1</curve>
+ <onekey>wycheproof/addsub/secp256k1/6s</onekey>
+ <otherkey>wycheproof/addsub/secp256k1/6w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP224r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x1be0d59d1f0f3a743ae19c5246099391098f71444223831e16cfa0c5</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP224r1/1s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP224r1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP224r1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x7e00a9267243cea4ba7617860b6fcf404e0357d1202d8c85dc5e07d3</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP224r1/2s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP224r1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP224r1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xaac6a805f4ce1b6dcc13ec4ed16a889dc4d708f7f6f1e23471338324</inline>
+ <curve>brainpool/brainpoolP224r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP224r1/3s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP224r1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP256r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x1950b7ce510d4d8648e80c6385a42d005433fc5ca61e2022a1405fe18142c246</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP256r1/1s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP256r1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP256r1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x5c05c4d877a0e2af5ffa004c122630bb87157cf346dbeb8ae13017162da208f4</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP256r1/2s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP256r1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP256r1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x9639bbd4e22194ce3892a814c82eddbd21dde05cfac20e99396e3d6ef0841f7c</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP256r1/3s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP256r1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP256r1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x341cbdf61f9dd620ba6873a74804afe30a06b0a113a6916a4104d2d4cc196aec</inline>
+ <curve>brainpool/brainpoolP256r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP256r1/4s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP256r1/4w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xc0038da858441f559a864dcd6c4558437f9ad091a67c3fda69a9e0cb6f446a8b47ae95edc2f4eade</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320r1/1s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320r1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320r1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x8258131a80bc9f2b8ba532ef1253ef39dce25e6deb85227c670273521c311dbb9bf1a56dd29107b3</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320r1/2s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320r1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320r1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xae752e75684a9adfc6198e6c1ce9249d26743104e8b0bd0417998c62982622ea2fdf6917413d547c</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320r1/3s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320r1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320r1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x37bfbb637fce27ee80b3af326546303e0bd8af01b72f591830a548609055bda489d9a4e6b5e3f43e</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320r1/4s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320r1/4w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320r1/5test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x854ce9516e73c6cc8d0d6ce3cdf933541a719578712440f02a86829af1398fcab2bb0949c1d63106</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320r1/5s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320r1/5w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320r1/6test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x7dfd07c1cfe70db4772cf9f6bb6b58a10bbc9509e5ce86651d5c395f3544f62d6d8f8109edba441a</inline>
+ <curve>brainpool/brainpoolP320r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320r1/6s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320r1/6w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP384r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x3729bcd215b41c658b832686c81362b3485d75b09478c6dde3b5e278564ef4162bdd6ff65afc6e8213bba9b6c54ba1eb
+ </inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP384r1/1s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP384r1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP384r1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x12ba4622daf1f2f950aad6d54aaab821885a47a98573afea49bc1896041ee9501acef82810f3755ff284e16665bd0f62
+ </inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP384r1/2s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP384r1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP384r1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x7fb5398519857f2c17cddd0a9d2c1660ac35b4723e4a049ba5c58c458b742dfa813a5c7175e1c0974b514bfaeb0039f8
+ </inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP384r1/3s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP384r1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP384r1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x0f0a1d20ba6a7b2c48154b43870be4890979d9261950736de96c29f371233b1ef94a79c2ab698868f00cea7e912deb94
+ </inline>
+ <curve>brainpool/brainpoolP384r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP384r1/4s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP384r1/4w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP512r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x194871645bbfc309eba92c5613ca7c6aa566fdab45635f656148ec7122d71c825f36852f52722ea949c2572dbb6b894a21f96a05c9bee0df6c6b4faa3197079a
+ </inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP512r1/1s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP512r1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP512r1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x3a6e57858d4e61c7ed2cb93c124221210293a345b47f7644910543ac03117f48b0343ddebd2cf9925e3dc5e1ea590739ed2c2372e1146f84fd262ac7d8eebacd
+ </inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP512r1/2s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP512r1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP512r1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x8e0a186a51eae08a86fdd476bcfd961d02be74966ce3c2d937c808db518f2ddc4760bfc924af72f85eb188ebc70edde6d12f402735f58b9006f8b8e283ef9fbe
+ </inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP512r1/3s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP512r1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP512r1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x300b1d80d9dc5587076b7d850ccd00cf8961f389c4ded60bf910d98f196f67c3839d2197101607612b335871a818d50d8f4bb6163cc839cf41af0b742c7254f4
+ </inline>
+ <curve>brainpool/brainpoolP512r1</curve>
+ <onekey>wycheproof/addsub/brainpoolP512r1/4s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP512r1/4w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP224t1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x97ded4c2e06b5a13c9109be3fa42dc2ca93a306fdf9e85ac4bb02e22</inline>
+ <curve>brainpool/brainpoolP224t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP224t1/1s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP224t1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP224t1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x686798270c7e188e6ab3e28a10754f965d5d02f33d30d8faf38155f4</inline>
+ <curve>brainpool/brainpoolP224t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP224t1/2s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP224t1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP224t1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xd64f68debaf751d63da1883668822031c69e913cc53b969e5fbae845</inline>
+ <curve>brainpool/brainpoolP224t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP224t1/3s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP224t1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP256t1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x4875ed4b2bc7e7a0cb89d93b359fa72ddaf0377ddeddd33f62ec2450cd80e7cd</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP256t1/1s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP256t1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP256t1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x315637f94d6776cc3928c1ffbe3c7004aa70b787cc0687faee1da5f9324a36c4</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP256t1/2s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP256t1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP256t1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x54d1009ab7d3cb9d4314ea7512f7bc4d916ecd47bc9e491ad4a6d65a40672554</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP256t1/3s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP256t1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP256t1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x892923527eb529de963e902641c01701a66cd999d1b665717d7b11cbb5a96f7c</inline>
+ <curve>brainpool/brainpoolP256t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP256t1/4s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP256t1/4w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320t1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x147c9b3b4880f7f6d4eb96f891672cb0d09a6bef15574ab2a43f09ae7f8090cdfa81517e098dac1e</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320t1/1s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320t1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320t1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x47f4412278edc51ba0635853a82e033b164a68194d4c3e2492017432daaa8c35684c343f701f6b02</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320t1/2s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320t1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320t1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xa64c2b075abf446a9ba43f6ffcefda795835ab2e1c4d19bd9c9ede59cd9eaf9c831a520b1e0ce269</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320t1/3s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320t1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320t1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xb3b25821ac9b07c614f6fce7f9a1c2325d3cbd51cac82dadeb79037a23bce03b0352407ccd447af8</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320t1/4s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320t1/4w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320t1/5test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x594aebd8010757d15f79631af0e481310359e0086e4e988ab5525a9303aaf800cd4ef123ceb68875</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320t1/5s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320t1/5w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP320t1/6test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0xc7e67dc2f64d0e66841777a6f014340b8a63f42024c6cd5ac5e10cec3b02a2d050c2fd8f078a754f</inline>
+ <curve>brainpool/brainpoolP320t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP320t1/6s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP320t1/6w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP384t1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x22d772bd2104c3d24b8505b3e7d1f3f00ca2dacb493ca729170854ef2158407a0ffab006153d5cb7781e9cb57cda505f
+ </inline>
+ <curve>brainpool/brainpoolP384t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP384t1/1s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP384t1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP384t1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x2b2c617f8c84713f8440e5e273341d69edf9e6ea2056af38ccfc6ee733a9c11e1f9aa63cb3615d2b3cebe69d8360a2bd
+ </inline>
+ <curve>brainpool/brainpoolP384t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP384t1/2s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP384t1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP384t1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x28518f75e020e00095d47166f7825f1767b6425172decde390c9266764c8b631608dc323b8415c39c9d0b8a24cd337ac
+ </inline>
+ <curve>brainpool/brainpoolP384t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP384t1/3s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP384t1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP384t1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x4424a1b48eba0524e4aa82455e282b35cf0d13d8536fe6c410cd5050f3d4d1739254945a8f580d43ee0245b1df67de56
+ </inline>
+ <curve>brainpool/brainpoolP384t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP384t1/4s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP384t1/4w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP512t1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x71f9265fcb0a1a899c5a3c8dc31d2fc3c87955285687e73928aab9c5cc750a83760292d514d4cde457fc8e05bb49eac1fb677ffa5f9dc9fa62e1126a9eded5a4
+ </inline>
+ <curve>brainpool/brainpoolP512t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP512t1/1s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP512t1/1w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP512t1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x79cc52b05b942dec984ea1d88675fcff93f87103b58bd0f7153c7b36b205ea39f99e85017e97ba89726d15e7d7fe5eb1525827011b3852e1121753dea15cfbb9
+ </inline>
+ <curve>brainpool/brainpoolP512t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP512t1/2s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP512t1/2w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP512t1/3test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x618f57d971efa605cb141993a1149dff87d01c773fb8f2a8db5726eb1703522568cc55abca616dae5727f390c90cfa792d4349856820f2d0b5df7da418328e7f
+ </inline>
+ <curve>brainpool/brainpoolP512t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP512t1/3s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP512t1/3w</otherkey>
+ </result>
+ <result>
+ <id>addsub/brainpoolP512t1/4test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x34998a162b0463d81a96dda6c4e256b94ed35f89cb0b69a9af70123bec61b387bb358451e1994d6c29acbec66c50c61f36b66da33782db21521415952b55fa48
+ </inline>
+ <curve>brainpool/brainpoolP512t1</curve>
+ <onekey>wycheproof/addsub/brainpoolP512t1/4s</onekey>
+ <otherkey>wycheproof/addsub/brainpoolP512t1/4w</otherkey>
+ </result>
+ <result>
+ <id>cve_2017_10176/secp521r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>
+ 0x01bc33425e72a12779eacb2edcc5b63d1281f7e86dbc7bf99a7abd0cfe367de4666d6edbb8525bffe5222f0702c3096dec0884ce572f5a15c423fdf44d01dd99c61d
+ </inline>
+ <curve>secg/secp521r1</curve>
+ <onekey>wycheproof/cve_2017_10176/secp521r1/1s</onekey>
+ <otherkey>wycheproof/cve_2017_10176/secp521r1/1w</otherkey>
+ </result>
+ <result>
+ <id>cve_2017_8932/secp256r1/1test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x4d4de80f1534850d261075997e3049321a0864082d24a917863366c0724f5ae3</inline>
+ <curve>secg/secp256r1</curve>
+ <onekey>wycheproof/cve_2017_8932/secp256r1/1s</onekey>
+ <otherkey>wycheproof/cve_2017_8932/secp256r1/1w</otherkey>
+ </result>
+ <result>
+ <id>cve_2017_8932/secp256r1/2test</id>
+ <ka>DH_PLAIN</ka>
+ <inline>0x831c3f6b5f762d2f461901577af41354ac5f228c2591f84f8a6e51e2e3f17991</inline>
+ <curve>secg/secp256r1</curve>
+ <onekey>wycheproof/cve_2017_8932/secp256r1/2s</onekey>
+ <otherkey>wycheproof/cve_2017_8932/secp256r1/2w</otherkey>
+ </result>
+</results> \ No newline at end of file