AppletPlayground is an easy method for getting to know JavaCard development by learning from 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.
Mad Genius Vector by Vectorya.com (CC 3.0 Attribution Non-Commercial)
- MuscleApplet - as was found in martinpaljak/MuscleApplet@d005f36209bdd7020bac0d783b228243126fd2f8 (BSD)
- CoolKeyApplet - r105 from http:https://svn.fedorahosted.org/svn/coolkey/trunk/applet (BSD/LGPL2.1)
- PKIApplet - r65 from http:https://svn.code.sf.net/p/javacardsign/code/pkiapplet/src (LGPL2.1)
- OpenPGPApplet - Yubico/ykneo-openpgp@ed928351994b053f3d87ec00ec4a9696d4ff20fe (GPL2)
- FluffyPGPApplet* - FluffyKaon/OpenPGP-Card@545da17f82ff4627758674bbcbb0e602e959d9dd (GPL3)
- YkneoOath - Yubico/ykneo-oath (GPL3)
- PassportApplet - http:https://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:https://svn.code.sf.net/p/openemv/code/trunk (LGPL2)
- ISOApplet - philipWendland/IsoApplet (GPL3)
- DriversLicense* r175 from svn:https://svn.code.sf.net/p/isodl/code/ (LGPL2)
- PLAID - DHS Reference Implementation (License)
Note: applets marked with * have obvious blocking errors (missing casts from int to short for 2.2.X target) removed from source.
The above applets and the overall package come "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.
- 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.
- 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)
- Import this project from Git (or directly into Eclipse) and execute the "toys" ANT target.
- Or use command line and issue
ant toys
- Use the included GlobalPlatform utility to load any of the generated applets (
.cap
files) to a card
- Automatic code hardening with http:https://sourceforge.net/projects/cesta/ (BSD)
- Automatic card simulation with vJCRE (MIT/GPL)
- [email protected]
- For improvements file an issue. Better yet - a pull request!