Please note that we moved our code repository from Google Code to GitHub.
jCardSim is an open source simulator for Java Card, v3.0.5:
javacard.framework.*
javacard.framework.security.*
javacardx.crypto.*
Key Features:
// 1. create simulator
CardSimulator simulator = new CardSimulator();
// 2. install applet
AID appletAID = AIDUtil.create("F000000001");
simulator.installApplet(appletAID, HelloWorldApplet.class);
// 3. select applet
simulator.selectApplet(appletAID);
// 4. send APDU
CommandAPDU commandAPDU = new CommandAPDU(0x00, 0x01, 0x00, 0x00);
ResponseAPDU response = simulator.transmitCommand(commandAPDU);
// 5. check response
assertEquals(0x9000, response.getSW());
javax.smartcardio
apdutool
from Java Card Development Kit)JavaDoc: https://github.com/licel/jcardsim/tree/master/javadoc
(Javadoc rendered: https://jcardsim.org/jcardsim/)
Latest release 3.0.5: https://github.com/licel/jcardsim/packages/1650016
**Implementation of javacard.security.***
One of the main differences is the implementation of javacard.security.*
: the current version is analogous to an NXP JCOP 31/36k card. For example, in jCardSim we have support for on-card KeyPair.ALG_EC_F2M/ALG_RSA_CRT
key generation. Oracle's simulator only supports KeyPair.ALG_RSA
and KeyPair.ALG_EC_FP
, which are not supported by real cards.
Execution of Java Card applications without converting into CAP
jCardSim can work with class files without any conversions. This allows us to simplify and accelerate the development and writing of unit tests.
Simulator API
jCardSim has a simple and usable API, which also allows you to work with the simulator using javax.smartcardio.*
.
Cross-platform
jCardSim is completely written in Java and can therefore be used on all platforms which support Java (Windows, Linux, MacOS, etc).
License: Apache License 2.0
Third-party libraries: Legion of the Bouncy Castle Java
Trademarks: Oracle, Java and Java Card are trademarks of Oracle Corporation.