Posted by igormedeiros
on May 15, 2007 at 8:06 AM PDT
I frequently receive emails regarding proprietary Java Card development kits, many developers look for a solution to upload applets easily to smart cards or simulate them, on a environment with no functionality limitations when compared to a smart card.
Everyone can mount their own development kit, buying each element (smart card reader, smart cards, SDK and Java Card applet uploader) from different vendors or in some cases getting some of these elements for free.
The market of smart cards is still very small and closed, this makes it hard to find information about free alternatives for Java Card development tools. I will show the elements of a Java Card Development Kit and then, you can decide whether to buy a closed kit from the main vendors or mount your own combining (or not) some free alternatives:
Usually, a Java Card Development Kit is composed by:
Two or more smart cards - each one with the Sun Java Card specification implemented (e.g. virtual machine, API, applet isolation firewall, etc), sometimes, these also comes with specific APIs, for example, EMV (financial), GSM in SIM Cards (telecommunications), Biometric, or all of them together.
- One Smart Card Reader - Even though this device is called "reader", it reads and writes in smart cards. The reader must be PC/SC and ISO 7816 compliant, I suggest you get a USB CCID compliance reader this will help you if working in different platform such as Win32, Linux, etc. Take a look at the list of CCID supported readers at: http://pcsclite.alioth.debian.org/ccid.html
- SDK (Software Development Kit) â€“ Frequently based on Sun's JCDK (Java Card Development Kit), can consists of a RAD (Rapid Application Development) with some tools to manage the development. You can find a simulator, and in some cases, a plug-in for a popular Java IDE like Eclipse or NetBeans. The SDK license cost is a considerable part in total cost of the development kit. Sun's JCDK is free and has command line tools that helps you in compile, convert and simulate, although limited when comparing to executing on a real smart card.
Off-card Applet Uploader â€“ This is a headache to many developers who are starting with Java card with a smart card without an applet uploader. Usually this software is proprietary (based on specific APDUs) and can be the key-element to make you decide to buy a proprietary or mounted kit. If you have a Global Platform compliant smart card, you can use an opensource uploader like GPShell from the M.U.S.C.L.E. Project. Using GP commands, once knowing the correct key to authenticate, you can upload upload your applet.
Now you know the elements of Java Card Development Kit and you can make your choice looking at the main vendor's products to compare the prices, some of them are: Aspects, Gemalto, G&D, NXP (Philips semiconductor), Oberthur, Towitoko (reader) and SCM Microsystems (reader).
- Sun's Java Card Development Kit
- Global Platform
- PC/SC Workgroup
- M.U.S.C.L.E. Project