diff options
| author | J08nY | 2017-12-12 12:32:25 +0100 |
|---|---|---|
| committer | J08nY | 2017-12-12 12:32:25 +0100 |
| commit | 4dbc748a207bcee2c8fbe22566646b27a9f61dc0 (patch) | |
| tree | fdf069ac9a25ff82f9509826425bd4796c514da0 /src/cz/crcs/ectester/reader/output/YAMLTestWriter.java | |
| parent | e329190e496ecf847cfd7afa886ac08cacb2fc92 (diff) | |
| parent | 9e8fbbc907f4157988ac425af4dce541f7e42328 (diff) | |
| download | ECTester-4dbc748a207bcee2c8fbe22566646b27a9f61dc0.tar.gz ECTester-4dbc748a207bcee2c8fbe22566646b27a9f61dc0.tar.zst ECTester-4dbc748a207bcee2c8fbe22566646b27a9f61dc0.zip | |
Merge branch 'feature/standalone-lib-testing' into devel
Diffstat (limited to '')
| -rw-r--r-- | src/cz/crcs/ectester/common/output/YAMLTestWriter.java (renamed from src/cz/crcs/ectester/reader/output/YAMLTestWriter.java) | 66 |
1 files changed, 56 insertions, 10 deletions
diff --git a/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java b/src/cz/crcs/ectester/common/output/YAMLTestWriter.java index c637a13..ba9fa43 100644 --- a/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java +++ b/src/cz/crcs/ectester/common/output/YAMLTestWriter.java @@ -1,16 +1,19 @@ -package cz.crcs.ectester.reader.output; +package cz.crcs.ectester.common.output; import cz.crcs.ectester.common.test.CompoundTest; -import cz.crcs.ectester.common.Util; +import cz.crcs.ectester.common.test.Test; +import cz.crcs.ectester.common.test.TestSuite; +import cz.crcs.ectester.common.util.ByteUtil; import cz.crcs.ectester.reader.command.Command; import cz.crcs.ectester.reader.response.Response; -import cz.crcs.ectester.common.test.Test; -import cz.crcs.ectester.reader.test.SimpleTest; -import cz.crcs.ectester.reader.test.TestSuite; +import cz.crcs.ectester.reader.test.CommandTest; +import cz.crcs.ectester.standalone.test.*; import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; import java.io.PrintStream; +import java.security.PrivateKey; +import java.security.PublicKey; import java.util.HashMap; import java.util.LinkedList; import java.util.List; @@ -44,14 +47,14 @@ public class YAMLTestWriter implements TestWriter { private Map<String, Object> commandObject(Command c) { Map<String, Object> commandObj = new HashMap<>(); - commandObj.put("apdu", Util.bytesToHex(c.getAPDU().getBytes())); + commandObj.put("apdu", ByteUtil.bytesToHex(c.getAPDU().getBytes())); return commandObj; } private Map<String, Object> responseObject(Response r) { Map<String, Object> responseObj = new HashMap<>(); responseObj.put("successful", r.successful()); - responseObj.put("apdu", Util.bytesToHex(r.getAPDU().getBytes())); + responseObj.put("apdu", ByteUtil.bytesToHex(r.getAPDU().getBytes())); responseObj.put("natural_sw", Short.toUnsignedInt(r.getNaturalSW())); List<Integer> sws = new LinkedList<>(); for (int i = 0; i < r.getNumSW(); ++i) { @@ -63,14 +66,57 @@ public class YAMLTestWriter implements TestWriter { return responseObj; } + private Map<String, Object> kaObject(KeyAgreementTestable kat) { + Map<String, Object> katObject = new HashMap<>(); + katObject.put("secret", ByteUtil.bytesToHex(kat.getSecret())); + return katObject; + } + + private Map<String, Object> kgtObject(KeyGeneratorTestable kgt) { + Map<String, Object> kgtObject = new HashMap<>(); + Map<String, Object> pubObject = new HashMap<>(); + PublicKey pkey = kgt.getKeyPair().getPublic(); + pubObject.put("algorithm", pkey.getAlgorithm()); + pubObject.put("format", pkey.getFormat()); + pubObject.put("raw", ByteUtil.bytesToHex(pkey.getEncoded())); + kgtObject.put("pubkey", pubObject); + + Map<String, Object> privObject = new HashMap<>(); + PrivateKey skey = kgt.getKeyPair().getPrivate(); + privObject.put("algorithm", skey.getAlgorithm()); + privObject.put("format", skey.getFormat()); + privObject.put("raw", ByteUtil.bytesToHex(skey.getEncoded())); + kgtObject.put("privkey", privObject); + return kgtObject; + } + + private Map<String, Object> sigObject(SignatureTestable sig) { + Map<String, Object> sigObject = new HashMap<>(); + sigObject.put("verified", sig.getVerified()); + sigObject.put("raw", ByteUtil.bytesToHex(sig.getSignature())); + return sigObject; + } + private Map<String, Object> testObject(Test t) { Map<String, Object> testObj = new HashMap<>(); - if (t instanceof SimpleTest) { - SimpleTest test = (SimpleTest) t; - testObj.put("type", "simple"); + if (t instanceof CommandTest) { + CommandTest test = (CommandTest) t; + testObj.put("type", "command"); testObj.put("command", commandObject(test.getCommand())); testObj.put("response", responseObject(test.getResponse())); + } else if (t instanceof KeyAgreementTest) { + KeyAgreementTest test = (KeyAgreementTest) t; + testObj.put("type", "key-agreement"); + testObj.put("key-agreement", kaObject(test.getTestable())); + } else if (t instanceof KeyGeneratorTest) { + KeyGeneratorTest test = (KeyGeneratorTest) t; + testObj.put("type", "key-pair-generator"); + testObj.put("key-pair-generator", kgtObject(test.getTestable())); + } else if (t instanceof SignatureTest) { + SignatureTest test = (SignatureTest) t; + testObj.put("type", "signature"); + testObj.put("signature", sigObject(test.getTestable())); } else if (t instanceof CompoundTest) { CompoundTest test = (CompoundTest) t; testObj.put("type", "compound"); |
