diff options
| author | J08nY | 2018-08-11 21:52:48 +0200 |
|---|---|---|
| committer | J08nY | 2018-08-11 22:03:39 +0200 |
| commit | b6d6766fef9b73db70bda8b6b398128ba5a41ab2 (patch) | |
| tree | a470e36aa69cb9e778070b175e9223432244f210 /src/cz/crcs/ectester/reader/test/CardSignatureSuite.java | |
| parent | 1284516b6630250a3fc4a2bf8d23e15fede5a77b (diff) | |
| download | ECTester-b6d6766fef9b73db70bda8b6b398128ba5a41ab2.tar.gz ECTester-b6d6766fef9b73db70bda8b6b398128ba5a41ab2.tar.zst ECTester-b6d6766fef9b73db70bda8b6b398128ba5a41ab2.zip | |
Add various ECDSA tests.
Diffstat (limited to 'src/cz/crcs/ectester/reader/test/CardSignatureSuite.java')
| -rw-r--r-- | src/cz/crcs/ectester/reader/test/CardSignatureSuite.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/cz/crcs/ectester/reader/test/CardSignatureSuite.java b/src/cz/crcs/ectester/reader/test/CardSignatureSuite.java new file mode 100644 index 0000000..23b6bce --- /dev/null +++ b/src/cz/crcs/ectester/reader/test/CardSignatureSuite.java @@ -0,0 +1,45 @@ +package cz.crcs.ectester.reader.test; + +import cz.crcs.ectester.applet.ECTesterApplet; +import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Curve; +import cz.crcs.ectester.common.ec.EC_Key; +import cz.crcs.ectester.common.ec.EC_SigResult; +import cz.crcs.ectester.common.output.TestWriter; +import cz.crcs.ectester.common.test.CompoundTest; +import cz.crcs.ectester.common.test.Result; +import cz.crcs.ectester.common.test.Test; +import cz.crcs.ectester.data.EC_Store; +import cz.crcs.ectester.reader.CardMngr; +import cz.crcs.ectester.reader.ECTesterReader; +import cz.crcs.ectester.reader.command.Command; + +import java.util.Map; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class CardSignatureSuite extends CardTestSuite { + public CardSignatureSuite(TestWriter writer, ECTesterReader.Config cfg, CardMngr cardManager) { + super(writer, cfg, cardManager, "signature", "Test verifying various wrong ECDSA values."); + } + + @Override + protected void runTests() throws Exception { + Map<String, EC_SigResult> results = EC_Store.getInstance().getObjects(EC_SigResult.class, "wrong"); + for (Map.Entry<String, EC_SigResult> result : results.entrySet()) { + EC_SigResult sig = result.getValue(); + + EC_Key.Public pubkey = EC_Store.getInstance().getObject(EC_Key.Public.class, sig.getVerifyKey()); + byte[] data = new byte[128]; + + EC_Curve curve = EC_Store.getInstance().getObject(EC_Curve.class, sig.getCurve()); + Test allocate = CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_LOCAL, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); + Test setVerifyKey = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, pubkey.getParams(), pubkey.flatten()), Result.ExpectedValue.SUCCESS); + Test ecdsaVerify = CommandTest.expect(new Command.ECDSA_verify(this.card, ECTesterApplet.KEYPAIR_LOCAL, sig.getJavaCardSig(), data, sig.getData(0)), Result.ExpectedValue.FAILURE); + + doTest(CompoundTest.all(Result.ExpectedValue.SUCCESS, "ECDSA test of " + result.getKey() + ".", allocate, set, setVerifyKey, ecdsaVerify)); + } + } +} |
