Git Product home page Git Product logo

jcardsim's Introduction

jCardSim (Official repo of the jCardSim project)

Congratulations! jCardSim has won Duke's Choice 2013 Award!

alt text

Please note that we moved our code repository here from Google Code.

jCardSim is an open source simulator implements Java Card, v.2.2.1/2:

  • javacard.framework.*
  • javacard.framework.security.*
  • javacardx.crypto.*

Key Features:

  • Rapid application prototyping
  • Ease of writing Unit-tests (5 lines of code)
//1. create simulator
JavaxSmartCardInterface simulator = new JavaxSmartCardInterface();
//2. install applet
simulator.installApplet(appletAID, HelloWorldApplet.class);
//3. select applet
simulator.selectApplet(appletAID);
//4. send apdu
ResponseAPDU response = simulator.transmitCommand(new CommandAPDU(0x01, 0x01, 0x00, 0x00));
//5. check response
assertEquals(0x9000, response.getSW());
  • Emulation of Java Card Terminal, ability to use javax.smartcardio
  • APDU scripting (scripts are compatible with apdutool from Java Card Development Kit)
  • Ease of verification tests creation (Common Criteria)

JavaDoc: https://jcardsim.googlecode.com/svn/trunk/javadoc/index.html

Latest stable release 2.2.1: https://github.com/licel/jcardsim/raw/master/jcardsim-2.2.1-all.jar

Latest stable release 2.2.2: https://github.com/licel/jcardsim/raw/master/jcardsim-2.2.2-all.jar

Maven Central Repository

<dependency>
  <groupId>com.licel</groupId>
  <artifactId>jcardsim</artifactId>
  <version>2.2.1</version>
</dependency>
<dependency>
  <groupId>com.licel</groupId>
  <artifactId>jcardsim</artifactId>
  <version>2.2.2</version>
</dependency>

What is the difference from Oracle Java Card Development Kit simulator?

  • Implementation of javacard.security.*

One of the main differences is the implementation of javacard.security.*: current version is analogous with NXP JCOP 31/36k card. For example, in jCardSim we have support an on-card KeyPair.ALG_EC_F2M/ALG_RSA_CRT key generation. Simulator from Oracle has only KeyPair.ALG_RSA and KeyPair.ALG_EC_FP support, which not supported on 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 simple and usable API, which allows you to work with simulator like with real Java Card using javax.smartcardio.*.

  • Cross-platform

jCardSim completely written in Java and can therefore be used at all platforms which supports Java (Windows, Linux, MacOS, etc).

How to help jCardSim?

  • Join team of jCardSim developers.
  • Try out DexProtector. The product is designed for strong and robust protection of Android applications against reverse engineering and modification.
  • Licel has one more product you may be interested in - Stringer Java Obfuscator. This tool provides all the features you need to comprehensively protect your Java applications.

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.

jcardsim's People

Contributors

klali avatar licel avatar robertbachmann avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.