From 41eeba484976c096422966ef143e8888dd6ddbb8 Mon Sep 17 00:00:00 2001
From: J08nY
Date: Thu, 28 Feb 2019 16:59:07 +0100
Subject: Fix some wycheproof vectors, fix edge-case test.
---
src/cz/crcs/ectester/data/wycheproof/keys.xml | 34 +++++++++++-----------
.../ectester/reader/test/CardEdgeCasesSuite.java | 5 ++--
2 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/src/cz/crcs/ectester/data/wycheproof/keys.xml b/src/cz/crcs/ectester/data/wycheproof/keys.xml
index 7ca174d..ee7280c 100644
--- a/src/cz/crcs/ectester/data/wycheproof/keys.xml
+++ b/src/cz/crcs/ectester/data/wycheproof/keys.xml
@@ -3,7 +3,7 @@
xsi:noNamespaceSchemaLocation="../schema.xsd">
addsub/secp224r1/1s
- 0x0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29b7
+ 0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29b7
secg/secp224r1
tcId = 34
@@ -16,7 +16,7 @@
addsub/secp224r1/2s
- 0x0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a37
+ 0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a37
secg/secp224r1
tcId = 35
@@ -29,7 +29,7 @@
addsub/secp224r1/3s
- 0x0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b
+ 0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b
secg/secp224r1
tcId = 37
@@ -42,7 +42,7 @@
addsub/secp256r1/1s
- 0x0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f3
+ 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f3
secg/secp256r1
tcId = 106
@@ -55,7 +55,7 @@
addsub/secp256r1/2s
- 0x0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632533
+ 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632533
secg/secp256r1
tcId = 107
@@ -68,7 +68,7 @@
addsub/secp256r1/3s
- 0x0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632543
+ 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632543
secg/secp256r1
tcId = 108
@@ -81,7 +81,7 @@
addsub/secp256r1/4s
- 0x0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254b
+ 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254b
secg/secp256r1
tcId = 109
@@ -94,7 +94,7 @@
addsub/secp256r1/5s
- 0x0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f
+ 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f
secg/secp256r1
tcId = 111
@@ -107,7 +107,7 @@
addsub/secp384r1/1s
- 0x0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52959
+ 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52959
secg/secp384r1
tcId = 192
@@ -120,7 +120,7 @@
addsub/secp384r1/2s
- 0x0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52969
+ 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52969
secg/secp384r1
tcId = 193
@@ -133,7 +133,7 @@
addsub/secp384r1/3s
- 0x0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971
+ 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971
secg/secp384r1
tcId = 195
@@ -224,7 +224,7 @@
addsub/secp256k1/1s
- 0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03640c3
+ 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03640c3
secg/secp256k1
tcId = 362
@@ -237,7 +237,7 @@
addsub/secp256k1/2s
- 0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364103
+ 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364103
secg/secp256k1
tcId = 363
@@ -250,7 +250,7 @@
addsub/secp256k1/3s
- 0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364123
+ 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364123
secg/secp256k1
tcId = 364
@@ -263,7 +263,7 @@
addsub/secp256k1/4s
- 0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364133
+ 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364133
secg/secp256k1
tcId = 365
@@ -276,7 +276,7 @@
addsub/secp256k1/5s
- 0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413b
+ 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413b
secg/secp256k1
tcId = 366
@@ -289,7 +289,7 @@
addsub/secp256k1/6s
- 0x0fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413f
+ 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413f
secg/secp256k1
tcId = 368
diff --git a/src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java b/src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java
index cc0f8d3..cebbc36 100644
--- a/src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java
+++ b/src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java
@@ -161,14 +161,15 @@ public class CardEdgeCasesSuite extends CardTestSuite {
byte[] pParam = curve.getParam(EC_Consts.PARAMETER_FP)[0];
BigInteger p = new BigInteger(1, pParam);
byte[] wParam = ((Response.Export) export.getResponse()).getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_W);
+ byte[] xValue = new byte[(wParam.length - 1) / 2];
byte[] yValue = new byte[(wParam.length - 1) / 2];
+ System.arraycopy(wParam, 1, xValue, 0, xValue.length);
System.arraycopy(wParam, (wParam.length / 2) + 1, yValue, 0, yValue.length);
BigInteger y = new BigInteger(1, yValue);
BigInteger negY = p.subtract(y);
byte[] newY = ECUtil.toByteArray(negY, curve.getBits());
- System.arraycopy(newY, 0, wParam, (wParam.length / 2) + 1, newY.length);
- EC_Params negYParams = makeParams(newY);
+ EC_Params negYParams = new EC_Params(EC_Consts.PARAMETER_W, new byte[][]{xValue, newY});
Test negYTest = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, negYParams.getParams(), negYParams.flatten()), "ECDH with pubkey negated.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE);
Test zeroS = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, EC_Consts.PARAMETER_S, EC_Consts.TRANSFORMATION_ZERO), "ECDH with S = 0.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE);
--
cgit v1.2.3-70-g09d2