-
-
Notifications
You must be signed in to change notification settings - Fork 5
Home
JCardEngine is designed as a rapid development and testing aid for JavaCard applets, providing lightweight ephemeral JavaCard environments to run applet code on a traditional JVM and exchange APDU-s with it. It does this by simulating (mocking) the JavaCard framework packages (javacard*.framework.*) and system classes (JCSystem, GPSystem etc) and taking care of applet initialization and registration via your Applet.install() method. Cryptography is provided via Bouncy Castle. See Java Code Tutorial, Beginner.
It also comes as a command line utility jcard.jar to quickly fire up existing applet .cap files (that include Java .class files, do not use strip="true" with ant-javacard) and expose them via PC/SC adapter(s) to existing applications. See Command Line Tutorial, Beginner.
- seamless use from command line wiht
jcard - supports Global Platform with SCP03 secure channel
- programmatic components for PC/SC adapters
- simulator state introspection (JavaCard, GlobalPlatform)
| JCardEngine | Oracle | Notes for JCardEngine | |
|---|---|---|---|
| JavaCard API | 3.0.5 (WIP) | 3.2 | |
| Works from classpath | yes | no | |
| Support for CAP files | no | yes | |
| GlobalPlatform support | yes* (WIP) | yes (2.3) | will embed GlobalPlatformPro |
| code coverage for applets | yes, jacoco | no | |
| PC/SC interface | yes* | yes, on Linux | via vsmartcard |
javax.smartcardio |
yes | yes | |
| architecture | any* | x86 | pure Java |
| open source | yes | no | Apache 2.0 license |
Notes:
- WIP stands for Work In Progress
- https://forums.oracle.com/ords/apexds/post/jcdk24-1-amservice-generating-applet-code-coverage-using-c-9778
Issues with jcardsim and focus of the fork is split as follows:
- "core" and platform correctness
- JC API revision conformance (transient keys,
OneShotetc) internal structures and interfaces (not visible to users)build scaffolding (Maven, ASM, GHA, repo etc)threading assumptions
- JC API revision conformance (transient keys,
- algorithm completeness and correction
- PACE_GM, bugs etc
- interfacing and DX
virtual readers (javax.smartcardio, VSmartCard/BixVReader, Oracle PC/SC)explicit composition of card (applets) vs indirect properties + instantiationcommand line tool (not unlike GlobalPlatformPro)- interfacing to Oracle Simulator from same framework
- new features
-
GPSystemsupport via GlobalPlatformPro
-
Note
JCardEngine is a fork/rewrite of @licel/jcardsim from April 3, 2024 revision aa60a02f042c18211e4d0f0aef75f27b0e5cf873.
javacard.pro - custom JavaCard applet development services · Editing locked due to malicious SPAM, sorry :(