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/data/EC_Store.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/data/EC_Store.java')
| -rw-r--r-- | src/cz/crcs/ectester/data/EC_Store.java | 62 |
1 files changed, 44 insertions, 18 deletions
diff --git a/src/cz/crcs/ectester/data/EC_Store.java b/src/cz/crcs/ectester/data/EC_Store.java index cb65402..3eaef27 100644 --- a/src/cz/crcs/ectester/data/EC_Store.java +++ b/src/cz/crcs/ectester/data/EC_Store.java @@ -203,27 +203,15 @@ public class EC_Store { if (direct instanceof Element) { Element elem = (Element) direct; - Node id = elem.getElementsByTagName("id").item(0); - Node ka = elem.getElementsByTagName("ka").item(0); - Node curve = elem.getElementsByTagName("curve").item(0); - Node onekey = elem.getElementsByTagName("onekey").item(0); - Node otherkey = elem.getElementsByTagName("otherkey").item(0); - - NodeList descc = elem.getElementsByTagName("desc"); - String descs = null; - if (descc.getLength() != 0) { - descs = descc.item(0).getTextContent(); + NodeList ids = elem.getElementsByTagName("id"); + if (ids.getLength() != 1) { + throw new SAXException("result no id?"); } + String id = ids.item(0).getTextContent(); - EC_KAResult kaResult = new EC_KAResult(id.getTextContent(), ka.getTextContent(), curve.getTextContent(), onekey.getTextContent(), otherkey.getTextContent(), descs); - - InputStream csv = parseDataElement(dir, elem); - if (!kaResult.readCSV(csv)) { - throw new IOException("Invalid csv data. " + id.getTextContent()); - } - csv.close(); + EC_Data result = parseResultlike(dir, elem); - objMap.put(id.getTextContent(), kaResult); + objMap.put(id, result); } else { throw new SAXException("?"); } @@ -234,6 +222,44 @@ public class EC_Store { return new EC_Category(name, dir, desc, objMap); } + private EC_Data parseResultlike(String dir, Element elem) throws SAXException, IOException { + String tag = elem.getTagName(); + Node id = elem.getElementsByTagName("id").item(0); + + NodeList descc = elem.getElementsByTagName("desc"); + String descs = null; + if (descc.getLength() != 0) { + descs = descc.item(0).getTextContent(); + } + + Node curve = elem.getElementsByTagName("curve").item(0); + + EC_Data result; + if (tag.equals("kaResult")) { + Node ka = elem.getElementsByTagName("ka").item(0); + Node onekey = elem.getElementsByTagName("onekey").item(0); + Node otherkey = elem.getElementsByTagName("otherkey").item(0); + + result = new EC_KAResult(id.getTextContent(), ka.getTextContent(), curve.getTextContent(), onekey.getTextContent(), otherkey.getTextContent(), descs); + } else if (tag.equals("sigResult")) { + Node sig = elem.getElementsByTagName("sig").item(0); + Node signkey = elem.getElementsByTagName("signkey").item(0); + Node verifykey = elem.getElementsByTagName("verifykey").item(0); + + result = new EC_SigResult(id.getTextContent(), sig.getTextContent(), curve.getTextContent(), signkey.getTextContent(), verifykey.getTextContent()); + } else { + throw new SAXException("?"); + } + + InputStream csv = parseDataElement(dir, elem); + if (!result.readCSV(csv)) { + throw new IOException("Invalid csv data. " + id.getTextContent()); + } + csv.close(); + + return result; + } + private EC_Params parseKeylike(String dir, Element elem) throws SAXException, IOException { Node id = elem.getElementsByTagName("id").item(0); Node curve = elem.getElementsByTagName("curve").item(0); |
