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