Most of my projects relate to either smart cards (preferably JavaCard-s) or web and are written in Java, JavaScript or C++.
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.
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
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 |
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 |