From 4e67d9eddb478aadc6fda39dcef43b2a25e28d4e Mon Sep 17 00:00:00 2001 From: J08nY Date: Mon, 17 Dec 2018 17:15:54 +0100 Subject: Fixup edgecases test suite. --- src/cz/crcs/ectester/data/wycheproof/keys.xml | 86 +++++++++++----------- .../ectester/reader/test/CardEdgeCasesSuite.java | 21 +++++- 2 files changed, 61 insertions(+), 46 deletions(-) (limited to 'src') diff --git a/src/cz/crcs/ectester/data/wycheproof/keys.xml b/src/cz/crcs/ectester/data/wycheproof/keys.xml index 46359df..7ca174d 100644 --- a/src/cz/crcs/ectester/data/wycheproof/keys.xml +++ b/src/cz/crcs/ectester/data/wycheproof/keys.xml @@ -302,7 +302,7 @@ addsub/brainpoolP224r1/1s - 0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a792dd + 0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a792dd brainpool/brainpoolP224r1 tcId = 441 @@ -315,7 +315,7 @@ addsub/brainpoolP224r1/2s - 0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7935d + 0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7935d brainpool/brainpoolP224r1 tcId = 442 @@ -328,7 +328,7 @@ addsub/brainpoolP224r1/3s - 0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939d + 0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939d brainpool/brainpoolP224r1 tcId = 444 @@ -341,7 +341,7 @@ addsub/brainpoolP256r1/1s - 0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974855f5 + 0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974855f5 brainpool/brainpoolP256r1 tcId = 524 @@ -354,7 +354,7 @@ addsub/brainpoolP256r1/2s - 0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485675 + 0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485675 brainpool/brainpoolP256r1 tcId = 525 @@ -367,7 +367,7 @@ addsub/brainpoolP256r1/3s - 0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485695 + 0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485695 brainpool/brainpoolP256r1 tcId = 526 @@ -380,7 +380,7 @@ addsub/brainpoolP256r1/4s - 0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a5 + 0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a5 brainpool/brainpoolP256r1 tcId = 528 @@ -393,7 +393,7 @@ addsub/brainpoolP320r1/1s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59233 + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59233 brainpool/brainpoolP320r1 tcId = 604 @@ -406,7 +406,7 @@ addsub/brainpoolP320r1/2s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592b3 + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592b3 brainpool/brainpoolP320r1 tcId = 605 @@ -419,7 +419,7 @@ addsub/brainpoolP320r1/3s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592f3 + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592f3 brainpool/brainpoolP320r1 tcId = 606 @@ -432,7 +432,7 @@ addsub/brainpoolP320r1/4s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59303 + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59303 brainpool/brainpoolP320r1 tcId = 607 @@ -445,7 +445,7 @@ addsub/brainpoolP320r1/5s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930b + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930b brainpool/brainpoolP320r1 tcId = 608 @@ -458,7 +458,7 @@ addsub/brainpoolP320r1/6s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930f + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930f brainpool/brainpoolP320r1 tcId = 610 @@ -471,7 +471,7 @@ addsub/brainpoolP384r1/1s - 0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904652f + 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904652f brainpool/brainpoolP384r1 tcId = 684 @@ -484,7 +484,7 @@ addsub/brainpoolP384r1/2s - 0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904654f + 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904654f brainpool/brainpoolP384r1 tcId = 685 @@ -497,7 +497,7 @@ addsub/brainpoolP384r1/3s - 0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904655f + 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904655f brainpool/brainpoolP384r1 tcId = 686 @@ -510,7 +510,7 @@ addsub/brainpoolP384r1/4s - 0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046563 + 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046563 brainpool/brainpoolP384r1 tcId = 688 @@ -523,7 +523,7 @@ addsub/brainpoolP512r1/1s - 0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9003b + 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9003b brainpool/brainpoolP512r1 tcId = 774 @@ -536,7 +536,7 @@ addsub/brainpoolP512r1/2s - 0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9005b + 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9005b brainpool/brainpoolP512r1 tcId = 775 @@ -549,7 +549,7 @@ addsub/brainpoolP512r1/3s - 0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90063 + 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90063 brainpool/brainpoolP512r1 tcId = 776 @@ -562,7 +562,7 @@ addsub/brainpoolP512r1/4s - 0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90067 + 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90067 brainpool/brainpoolP512r1 tcId = 778 @@ -575,7 +575,7 @@ addsub/brainpoolP224t1/1s - 0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a792dd + 0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a792dd brainpool/brainpoolP224t1 tcId = 854 @@ -588,7 +588,7 @@ addsub/brainpoolP224t1/2s - 0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7935d + 0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7935d brainpool/brainpoolP224t1 tcId = 855 @@ -601,7 +601,7 @@ addsub/brainpoolP224t1/3s - 0x0d7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939d + 0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939d brainpool/brainpoolP224t1 tcId = 857 @@ -614,7 +614,7 @@ addsub/brainpoolP256t1/1s - 0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974855f5 + 0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974855f5 brainpool/brainpoolP256t1 tcId = 935 @@ -627,7 +627,7 @@ addsub/brainpoolP256t1/2s - 0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485675 + 0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485675 brainpool/brainpoolP256t1 tcId = 936 @@ -640,7 +640,7 @@ addsub/brainpoolP256t1/3s - 0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485695 + 0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e8297485695 brainpool/brainpoolP256t1 tcId = 937 @@ -653,7 +653,7 @@ addsub/brainpoolP256t1/4s - 0x0a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a5 + 0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a5 brainpool/brainpoolP256t1 tcId = 939 @@ -666,7 +666,7 @@ addsub/brainpoolP320t1/1s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59233 + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59233 brainpool/brainpoolP320t1 tcId = 1015 @@ -679,7 +679,7 @@ addsub/brainpoolP320t1/2s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592b3 + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592b3 brainpool/brainpoolP320t1 tcId = 1016 @@ -692,7 +692,7 @@ addsub/brainpoolP320t1/3s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592f3 + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c592f3 brainpool/brainpoolP320t1 tcId = 1017 @@ -705,7 +705,7 @@ addsub/brainpoolP320t1/4s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59303 + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59303 brainpool/brainpoolP320t1 tcId = 1018 @@ -718,7 +718,7 @@ addsub/brainpoolP320t1/5s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930b + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930b brainpool/brainpoolP320t1 tcId = 1019 @@ -731,7 +731,7 @@ addsub/brainpoolP320t1/6s - 0x0d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930f + 0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c5930f brainpool/brainpoolP320t1 tcId = 1021 @@ -744,7 +744,7 @@ addsub/brainpoolP384t1/1s - 0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904652f + 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904652f brainpool/brainpoolP384t1 tcId = 1093 @@ -757,7 +757,7 @@ addsub/brainpoolP384t1/2s - 0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904654f + 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904654f brainpool/brainpoolP384t1 tcId = 1094 @@ -770,7 +770,7 @@ addsub/brainpoolP384t1/3s - 0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904655f + 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e904655f brainpool/brainpoolP384t1 tcId = 1095 @@ -783,7 +783,7 @@ addsub/brainpoolP384t1/4s - 0x08cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046563 + 0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046563 brainpool/brainpoolP384t1 tcId = 1097 @@ -796,7 +796,7 @@ addsub/brainpoolP512t1/1s - 0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9003b + 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9003b brainpool/brainpoolP512t1 tcId = 1185 @@ -809,7 +809,7 @@ addsub/brainpoolP512t1/2s - 0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9005b + 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca9005b brainpool/brainpoolP512t1 tcId = 1186 @@ -822,7 +822,7 @@ addsub/brainpoolP512t1/3s - 0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90063 + 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90063 brainpool/brainpoolP512t1 tcId = 1187 @@ -835,7 +835,7 @@ addsub/brainpoolP512t1/4s - 0x0aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90067 + 0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90067 brainpool/brainpoolP512t1 tcId = 1189 @@ -878,7 +878,7 @@ cve_2017_10176/secp521r1/1s - 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913863f7 + 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913863f7 secg/secp521r1 tcId = 280 diff --git a/src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java b/src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java index 221cbe1..39eaf07 100644 --- a/src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java +++ b/src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java @@ -104,6 +104,10 @@ public class CardEdgeCasesSuite extends CardTestSuite { curveTests.add(one); } + if (cfg.cleanup) { + curveTests.add(CommandTest.expect(new Command.Cleanup(this.card), Result.ExpectedValue.ANY)); + } + Test curveTest = CompoundTest.all(Result.ExpectedValue.SUCCESS, "Tests", curveTests.toArray(new Test[0])); groupTests.add(CompoundTest.greedyAllTry(Result.ExpectedValue.SUCCESS, "Tests on " + curve.getId() + ".", prepareCurve, curveTest)); } @@ -278,7 +282,7 @@ public class CardEdgeCasesSuite extends CardTestSuite { int i = 0; for (BigInteger nearZero : zeros) { EC_Params params = makeParams(nearZero); - zeroTests[i++] = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearZero.toString(16), Result.ExpectedValue.ANY, Result.ExpectedValue.ANY); + zeroTests[i++] = ecdhTestBoth(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearZero.toString(16), Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); } Test zeroTest = CompoundTest.all(Result.ExpectedValue.SUCCESS, "Near zero.", zeroTests); @@ -286,7 +290,7 @@ public class CardEdgeCasesSuite extends CardTestSuite { i = 0; for (BigInteger nearP : ps) { EC_Params params = makeParams(nearP); - pTests[i++] = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearP.toString(16) + (nearP.compareTo(p) > 0 ? " (>p)" : " (<=p)"), Result.ExpectedValue.ANY, Result.ExpectedValue.ANY); + pTests[i++] = ecdhTestBoth(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearP.toString(16) + (nearP.compareTo(p) > 0 ? " (>p)" : " (<=p)"), Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); } Test pTest = CompoundTest.all(Result.ExpectedValue.SUCCESS, "Near p.", pTests); @@ -294,12 +298,23 @@ public class CardEdgeCasesSuite extends CardTestSuite { i = 0; for (BigInteger nearR : rs) { EC_Params params = makeParams(nearR); - rTests[i++] = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearR.toString(16) + (nearR.compareTo(r) > 0 ? " (>r)" : " (<=r)"), Result.ExpectedValue.ANY, Result.ExpectedValue.ANY); + if (nearR.compareTo(r) >= 0) { + rTests[i++] = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearR.toString(16) + " (>=r)", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); + } else { + rTests[i++] = ecdhTestBoth(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearR.toString(16) +" (