aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nbproject/dist-build.xml5
-rw-r--r--src/cz/crcs/ectester/reader/ECTesterReader.java26
-rw-r--r--src/cz/crcs/ectester/reader/output/TextTestWriter.java2
-rw-r--r--src/cz/crcs/ectester/reader/output/XMLTestWriter.java2
-rw-r--r--src/cz/crcs/ectester/reader/output/YAMLTestWriter.java2
5 files changed, 29 insertions, 8 deletions
diff --git a/nbproject/dist-build.xml b/nbproject/dist-build.xml
index c317d95..b1bfadf 100644
--- a/nbproject/dist-build.xml
+++ b/nbproject/dist-build.xml
@@ -10,6 +10,10 @@
<tempfile property="temp.file" destDir="${java.io.tmpdir}" suffix=".jar"/>
<tempfile property="temp.previous_jar" destdir="${java.io.tmpdir}" suffix=".jar"/>
+ <exec executable="git" outputproperty="git.commit" failifexecutionfails="false">
+ <arg line="rev-parse --short HEAD"/>
+ </exec>
+
<copy file="${store.jar}" tofile="${temp.previous_jar}" failonerror="false"/>
<echo message="Backed up ${store.jar} into ${temp.previous_jar}"/>
@@ -20,6 +24,7 @@
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
+ <attribute name="Git-Commit" value="${git.commit}"/>
</manifest>
</jar>
diff --git a/src/cz/crcs/ectester/reader/ECTesterReader.java b/src/cz/crcs/ectester/reader/ECTesterReader.java
index 7dc11fa..ab022dd 100644
--- a/src/cz/crcs/ectester/reader/ECTesterReader.java
+++ b/src/cz/crcs/ectester/reader/ECTesterReader.java
@@ -26,7 +26,6 @@ import cz.crcs.ectester.applet.ECTesterApplet;
import cz.crcs.ectester.applet.EC_Consts;
import cz.crcs.ectester.common.cli.CLITools;
import cz.crcs.ectester.common.cli.Colors;
-import cz.crcs.ectester.common.ec.EC_Curve;
import cz.crcs.ectester.common.ec.EC_Params;
import cz.crcs.ectester.common.output.OutputLogger;
import cz.crcs.ectester.common.output.TestWriter;
@@ -45,11 +44,14 @@ import org.apache.commons.cli.*;
import javax.smartcardio.CardException;
import javax.xml.parsers.ParserConfigurationException;
import java.io.*;
+import java.net.URL;
+import java.net.URLClassLoader;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
+import java.util.jar.Manifest;
import static cz.crcs.ectester.applet.EC_Consts.KeyAgreement_ALG_EC_SVDP_DH;
import static cz.crcs.ectester.applet.EC_Consts.Signature_ALG_ECDSA_SHA;
@@ -69,16 +71,30 @@ public class ECTesterReader {
private Options opts = new Options();
public static final String VERSION = "v0.2.0";
- private static final String DESCRIPTION = "ECTesterReader " + VERSION + ", a javacard Elliptic Curve Cryptography support tester/utility.";
- private static final String LICENSE = "MIT Licensed\nCopyright (c) 2016-2018 Petr Svenda <petr@svenda.com>";
- private static final String CLI_HEADER = "\n" + DESCRIPTION + "\n\n";
- private static final String CLI_FOOTER = "\n" + LICENSE;
+ public static String GIT_COMMIT = "";
+ private static String DESCRIPTION;
+ private static String LICENSE = "MIT Licensed\nCopyright (c) 2016-2018 Petr Svenda <petr@svenda.com>";
+ private static String CLI_HEADER;
+ private static String CLI_FOOTER = "\n" + LICENSE;
private static final byte[] SELECT_ECTESTERAPPLET = {(byte) 0x00, (byte) 0xa4, (byte) 0x04, (byte) 0x00, (byte) 0x0a,
(byte) 0x45, (byte) 0x43, (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x65, (byte) 0x72, (byte) 0x30, (byte) 0x31};
private static final byte[] AID = {(byte) 0x45, (byte) 0x43, (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x65, (byte) 0x72, (byte) 0x30, (byte) 0x31};
private static final byte[] INSTALL_DATA = new byte[10];
+ static {
+ URLClassLoader cl = (URLClassLoader) ECTesterReader.class.getClassLoader();
+ try {
+ URL url = cl.findResource("META-INF/MANIFEST.MF");
+ Manifest manifest = new Manifest(url.openStream());
+ String commit = manifest.getMainAttributes().getValue("Git-Commit");
+ GIT_COMMIT = (commit == null) ? "" : "(git " + commit + ")";
+ } catch (Exception ignored) { }
+
+ DESCRIPTION = "ECTesterReader " + VERSION + GIT_COMMIT + ", a javacard Elliptic Curve Cryptography support tester/utility.";
+ CLI_HEADER = "\n" + DESCRIPTION + "\n\n";;
+ }
+
private void run(String[] args) {
try {
CommandLine cli = parseArgs(args);
diff --git a/src/cz/crcs/ectester/reader/output/TextTestWriter.java b/src/cz/crcs/ectester/reader/output/TextTestWriter.java
index 1dd21ae..35d0900 100644
--- a/src/cz/crcs/ectester/reader/output/TextTestWriter.java
+++ b/src/cz/crcs/ectester/reader/output/TextTestWriter.java
@@ -42,7 +42,7 @@ public class TextTestWriter extends BaseTextTestWriter {
if (suite instanceof CardTestSuite) {
CardTestSuite cardSuite = (CardTestSuite) suite;
StringBuilder sb = new StringBuilder();
- sb.append("═══ ECTester version: " + ECTesterReader.VERSION).append(System.lineSeparator());
+ sb.append("═══ ECTester version: " + ECTesterReader.VERSION + ECTesterReader.GIT_COMMIT).append(System.lineSeparator());
sb.append("═══ Card ATR: ").append(ByteUtil.bytesToHex(cardSuite.getCard().getATR().getBytes(), false)).append(System.lineSeparator());
try {
CardMngr.CPLC cplc = cardSuite.getCard().getCPLC();
diff --git a/src/cz/crcs/ectester/reader/output/XMLTestWriter.java b/src/cz/crcs/ectester/reader/output/XMLTestWriter.java
index 14b7763..00cc6c6 100644
--- a/src/cz/crcs/ectester/reader/output/XMLTestWriter.java
+++ b/src/cz/crcs/ectester/reader/output/XMLTestWriter.java
@@ -114,7 +114,7 @@ public class XMLTestWriter extends BaseXMLTestWriter {
CardTestSuite cardSuite = (CardTestSuite) suite;
Element result = doc.createElement("device");
result.setAttribute("type", "card");
- result.setAttribute("ectester", ECTesterReader.VERSION);
+ result.setAttribute("ectester", ECTesterReader.VERSION + ECTesterReader.GIT_COMMIT);
result.appendChild(cplcElement(cardSuite.getCard()));
Element atr = doc.createElement("ATR");
diff --git a/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java b/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java
index 820521d..080fa8b 100644
--- a/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java
+++ b/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java
@@ -86,7 +86,7 @@ public class YAMLTestWriter extends BaseYAMLTestWriter {
CardTestSuite cardSuite = (CardTestSuite) suite;
Map<String, Object> result = new LinkedHashMap<>();
result.put("type", "card");
- result.put("ectester", ECTesterReader.VERSION);
+ result.put("ectester", ECTesterReader.VERSION + ECTesterReader.GIT_COMMIT);
result.put("cplc", cplcObject(cardSuite.getCard()));
result.put("ATR", ByteUtil.bytesToHex(cardSuite.getCard().getATR().getBytes(), false));
return result;