Awesome
Applet Playground
AppletPlayground is an educational repository for getting to know JavaCard development by learning from existing open source software.
It includes various open source applets from the internet, bundled into ready to use package. Everything you need to edit, compile and load the applets to real JavaCard-s or test with an emulator.
Time to experiment!
<sub>Mad Genius Vector by Vectorya.com (CC 3.0 Attribution Non-Commercial)</sub>
Included applets
- MuscleApplet - as was found in martinpaljak/MuscleApplet@d005f36209bdd7020bac0d783b228243126fd2f8 (BSD)
- CoolKeyApplet - r105 from http://svn.fedorahosted.org/svn/coolkey/trunk/applet (BSD/LGPL2.1)
- PKIApplet - r65 from http://svn.code.sf.net/p/javacardsign/code/pkiapplet/src (LGPL2.1)
- OpenPGPApplet - Yubico/ykneo-openpgp@25e3f74 (GPL2)
- FluffyPGPApplet* - FluffyKaon/OpenPGP-Card@545da17f82ff4627758674bbcbb0e602e959d9dd (GPL3)
- YkneoOath - Yubico/ykneo-oath (GPL3)
- PassportApplet - http://sourceforge.net/p/jmrtd/code/HEAD/tree/trunk/passportapplet/ (LGPL3)
- BTChip* - LedgerHQ/btchipJC (AGPL3)
- NDEF - slomo/ndef-javacard (DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE :))
- BeID* - r62 (LGPL)
- OpenEMV - r3 from svn://svn.code.sf.net/p/openemv/code/trunk (LGPL2)
- ISOApplet - philipWendland/IsoApplet (GPL3)
- DriversLicense* r175 from svn://svn.code.sf.net/p/isodl/code/ (LGPL2)
- PLAID - DHS Reference Implementation (License)
- AlgTest
- readertest - r3223
- javacard-ndef - promovicz/javacard-ndef@e3b271d (GPL)
- GidsApplet vletoux/GidsApplet@f467573 (GPL3)
- SatoChipApplet Toporin/SatoChipApplet@0f34d40 (AGPL3)
Note: applets marked with * have obvious blocking errors (missing casts from int to short for 2.2.X target) removed from source.
FEASIBILITY NOTICE
The above applets and the overall package comes "AS-IS". I make no claims about the feasibility, usability, security, correctness whatsoever of the whole package or any of the components. Use at your own risk. Everything here is only for educational purposes.
What you need ?
- Preferrably a Unix-like operating system like a recent Linux or OS X with installed JDK 1.7+ (but works also with Windows)
- A working smart card reader* with a driver - preferably a well-behaving CCID one
- A JavaCard card* (v2.2.2 or better)
- Eclipse - get from eclipse.org
* you can work with source code without a card and reader, but for actual testing having one is preferable.
Included extras:
- ant-javacard - for building CAP files (MIT)
- GlobalPlatformPro - for loading the applets to the card (LGPL3)
- JavaCard SDK 2.2.2 and 3.0.3 (Oracle-owns-you-and-your-grandma license)
How to use
- Import this project from Git (or directly into Eclipse) and execute the "toys" ANT target.
- Or use command line and issue
ant
- Use the included GlobalPlatform utility to load any of the generated applets (
.cap
files) to a card
In the pipeline:
- Automatic code hardening with http://sourceforge.net/projects/cesta/ (BSD)
- Automatic card simulation with vJCRE (MIT/GPL)
- Automatic card simulation with jcardsim
Contact
- martin@martinpaljak.net
- For improvements file an issue. Better yet - a pull request!