Skip to content

Instantly share code, notes, and snippets.

@martinpaljak
Last active September 24, 2018 07:54
Show Gist options
  • Save martinpaljak/a10796355fd5ab32e838a38d33d8762e to your computer and use it in GitHub Desktop.
Save martinpaljak/a10796355fd5ab32e838a38d33d8762e to your computer and use it in GitHub Desktop.
My Projects on Github

Overview of martinpaljak's projects on Github

Most of my projects relate to either smart cards (preferably JavaCard-s) or web and are written in Java, JavaScript or C++.

Versioning

Versioning is arbitrary, "X > Y". If I could, I would use content based versioning for integrity and simplicity. But I can't, thus simple date based versions YY.MM.DD.

Java

Fall 2017 is when I finally accepted Maven as a build and dependency tool and Maven Central as the "App Store" for Java code. Most of my time is spent in the terminal, so I tend to create standalone CLI tools as well, trimmed for distribution with ProGuard.

Availability of Library means that there is an artefact available from Maven Central. Availability of Tool means that a trimmed down, UNIX DWIM tool is downloadable from Github.

General rules:

  • IntelliJ CE as the IDE (and default formatting for code)
  • Maven for dependencies, compilation and Maven Central publishing
  • Ant for post-processing with ProGuard+Capsule for command-line distribution

General

Name Library Tool What it does
apdu4j Yes Yes Basic APDU handling, javax.smartcardio, local PC/SC and remote terminals
capfile Yes Yes CAP file parsing and interacting with JavaCard SDK

| GlobalPlatformPro | Yes | Yes | GlobalPlatform card management, focus on CLI tool | | ant-javacard | N/A | N/A | Small ANT task for building applet-only projects |

Estonia related

Name Library Tool What it does
esteidhacker Yes Yes EstEID related bits and pieces
cdoc4j Yes No CDOC library
cdoc No Yes Command line tool for CDOC encryption/decryption
esteid-applets N/A N/A JavaCard applets with EstEID interface emulation

Visual explanation

Image

Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="29 45 566 368" width="566pt" height="368pt" xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata> Produced by OmniGraffle 6.6.2 <dc:date>2017-11-25 09:32:09 +0000</dc:date></metadata><defs><font-face font-family="Helvetica Neue" font-size="10" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.99585" descent="-212.99744" font-weight="500"><font-face-src><font-face-name name="HelveticaNeue"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Helvetica Neue" font-size="14" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.99585" descent="-212.99744" font-weight="500"><font-face-src><font-face-name name="HelveticaNeue"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 1</title><g><title>Layer 1</title><rect x="167.24409" y="70.86614" width="425.19685" height="90.70866" fill="white" fill-opacity="0"/><rect x="167.24409" y="70.86614" width="425.19685" height="90.70866" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(172.24409 75.86614)" fill="black"><tspan font-family="Helvetica Neue" font-size="10" font-weight="500" x="315.16685" y="10" textLength="100.03">Command-line utilities</tspan></text><rect x="167.24409" y="277.79527" width="425.19685" height="48.188976" fill="white" fill-opacity="0"/><rect x="167.24409" y="277.79527" width="425.19685" height="48.188976" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(172.24409 309.20425)" fill="black"><tspan font-family="Helvetica Neue" font-size="10" font-weight="500" x="231.30685" y="10" textLength="183.89">Libraries - APDU &amp; PC/SC level transport</tspan><tspan font-family="Helvetica Neue" font-size="10" font-weight="500" x="415.19685" y="10" textLength="2.78"> </tspan></text><rect x="167.24409" y="166.29921" width="425.19685" height="105.82677" fill="white" fill-opacity="0"/><rect x="167.24409" y="166.29921" width="425.19685" height="105.82677" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(172.24409 255.34598)" fill="black"><tspan font-family="Helvetica Neue" font-size="10" font-weight="500" x="306.75685" y="10" textLength="59.63">Libraries - tar</tspan><tspan font-family="Helvetica Neue" font-size="10" font-weight="500" x="366.10685" y="10" textLength="49.09">get system</tspan></text><path d="M 428.0315 130.3937 C 428.0315 130.3937 392.21838 144.54784 371.33858 189.92126 C 355.83981 223.60127 353.97893 262.72674 354.04916 280.65625" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="283.46457" y="290.55118" width="70.86614" height="22.677165" fill="white"/><rect x="283.46457" y="290.55118" width="70.86614" height="22.677165" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(288.46457 294.88976)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="7.4262347" y="11" textLength="46.013672">APDU4J</tspan></text><rect x="277.79527" y="354.3307" width="85.03937" height="19.84252" fill="white"/><rect x="277.79527" y="354.3307" width="85.03937" height="19.84252" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(282.79527 357.25197)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".16323948" y="11" textLength="74.71289">esteid-applets</tspan></text><rect x="198.4252" y="223.937" width="119.05512" height="28.346457" fill="white"/><rect x="198.4252" y="223.937" width="119.05512" height="28.346457" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(203.4252 231.11023)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="5.5080275" y="11" textLength="98.03906">GlobalPlatformPro</tspan></text><rect x="331.65354" y="195.59055" width="116.22047" height="28.346457" fill="white"/><rect x="331.65354" y="195.59055" width="116.22047" height="28.346457" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(336.65354 202.76378)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="19.090705" y="11" textLength="68.039062">esteidhacker</tspan></text><rect x="31.181102" y="223.937" width="93.543307" height="28.346457" fill="white"/><rect x="31.181102" y="223.937" width="93.543307" height="28.346457" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(36.181102 231.11023)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="8.754075" y="11" textLength="66.035156">ant-javacard</tspan></text><rect x="462.04724" y="223.937" width="68.031496" height="28.346457" fill="white"/><rect x="462.04724" y="223.937" width="68.031496" height="28.346457" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(467.04724 231.11023)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="11.671998" y="11" textLength="34.6875">cdoc4j</tspan></text><rect x="286.29921" y="102.047243" width="85.03937" height="28.346457" fill="white"/><rect x="286.29921" y="102.047243" width="85.03937" height="28.346457" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(291.29921 109.22047)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="30.845857" y="11" textLength="13.347656">gp</tspan></text><rect x="184.25197" y="102.047243" width="85.03937" height="28.346457" fill="white"/><rect x="184.25197" y="102.047243" width="85.03937" height="28.346457" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(189.25197 109.22047)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="31.519685" y="11" textLength="12">sc</tspan></text><rect x="385.5118" y="102.047243" width="85.03937" height="28.346457" fill="white"/><rect x="385.5118" y="102.047243" width="85.03937" height="28.346457" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(390.5118 109.22047)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="21.508943" y="11" textLength="32.021484">esteid</tspan></text><rect x="484.7244" y="102.047243" width="85.03937" height="28.346457" fill="white"/><rect x="484.7244" y="102.047243" width="85.03937" height="28.346457" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(489.7244 109.22047)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="24.845857" y="11" textLength="25.347656">cdoc</tspan></text><line x1="148.29134" y1="48.165354" x2="148.29134" y2="411" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 226.77165 130.3937 C 226.77165 130.3937 173.85987 203.69777 189.92126 252.28346 C 202.42844 290.11767 252.18045 299.10886 273.58715 301.23546" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 328.8189 130.3937 C 328.8189 130.3937 325.96035 164.39037 323.1496 209.76378 C 321.23094 240.73645 319.95043 267.06837 319.33088 280.66303" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 331.65354 209.76378 C 331.65354 209.76378 304.34437 200.07914 283.46457 204.09449 C 273.11438 206.08491 266.75663 210.97775 262.97646 215.40644" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 391.1811 223.937 C 391.1811 223.937 382.91138 277.70448 362.83464 314.64567 C 350.8435 336.70937 338.00827 346.57398 329.61479 350.941" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 527.2441 130.3937 C 527.2441 130.3937 516.23533 149.24674 507.40157 175.74803 C 502.19103 191.37965 499.18243 205.33654 497.591 214.15588" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 527.2441 130.3937 C 527.2441 130.3937 498.7064 145.93885 476.22047 164.40945 C 464.7052 173.86841 457.55007 181.81676 453.30927 187.32102" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(53.519685 50.65833)" fill="black"><tspan font-family="Helvetica Neue" font-size="14" font-weight="500" x=".227" y="13" textLength="84.546">Compile-time</tspan></text><text transform="translate(154.8937 50.65833)" fill="black"><tspan font-family="Helvetica Neue" font-size="14" font-weight="500" x=".209" y="13" textLength="57.582">Run-time</tspan></text><path d="M 124.72441 238.11023 C 124.72441 238.11023 143.72087 250.53872 187.08661 283.46457 C 219.85231 308.34222 254.8885 336.08254 270.05887 348.15749" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><rect x="167.24409" y="331.65354" width="425.19685" height="62.362204" fill="white" fill-opacity="0"/><rect x="167.24409" y="331.65354" width="425.19685" height="62.362204" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(172.24409 377.23575)" fill="black"><tspan font-family="Helvetica Neue" font-size="10" font-weight="500" x="330.16685" y="10" textLength="31.12">On-car</tspan><tspan font-family="Helvetica Neue" font-size="10" font-weight="500" x="361.10685" y="10" textLength="48.34">d, JavaCar</tspan><tspan font-family="Helvetica Neue" font-size="10" font-weight="500" x="409.26685" y="10" textLength="5.93">d</tspan></text><path d="M 428.0315 130.3937 C 428.0315 130.3937 416.19576 140.26956 405.35433 158.74016 C 399.3746 168.92784 395.24828 179.08791 392.75 186.15151" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 328.8189 130.3937 C 328.8189 130.3937 292.20272 146.4121 272.12598 172.91338 C 259.88388 189.07296 257.3016 204.49673 257.15047 214.07368" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 527.2441 130.3937 C 527.2441 130.3937 505.36518 172.51667 456.37795 221.10236 C 419.12087 258.05406 379.50796 285.52874 362.67332 296.56781" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/></g></g></svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment