Giter Club home page Giter Club logo

vjcre's Introduction

import pro.javacard.vre.*;

Focus on running existing code in a modern container, instead of emulating an old environment to the dumbest details. Fully open source!

vJCRE is a vritual Java Card Runtime Environment that allows to run Java code targeting the smart card platform inside a standard desktop Java virtual machine. Ideal for fast development, testing or experimentation.

Jump to ...

Features

  • Easy interfacing with any APDU-like interface:
  • CommandAPDU from javax.smartcardio
  • Generic byte[] exchange, like Android Host Card Emulation
  • JavaCard 2.2.2+, usage of Extended APDU encouraged
  • HostApduService proxy for Android
  • Includes all packages with essential interfaces and abstract classes up to JavaCard v3.0.4:
  • javacard.framework.*
  • javacard.security.*
  • javacardx.apdu.*
  • javacardx.crypto.*
  • Simple, thin and modular codebase to the finest extent possible.
  • Minimal one-liner pollution in javacard*.*. The only allowed import is from pro.javacard.vre.*;
  • No Javadoc or license for API specification. Go read the original API docs. (hint)
  • Implements necessary JCSystem and APDU, cryptography provided either by standard JCE or BouncyCastle.
  • Applet management interface, not unlike GlobalPlatform
  • No support for:
  • Transactions
  • RMI
  • Services
  • Logical channels
  • Future versions
  • More algorithms, including JavaCard 3.0.X features
  • Multiple independent VJCRE instances in a single VM
  • Saving and loading VM instances (real "virtual cards")
  • Works great with the rest of the open source smart card stack.
  • Made in Estonia

Usage

import pro.javacard.*;
        
VRE vre = VRE.getInstance();
AID aid = new AID(FakeEstEIDApplet.aid);
vre.load(FakeEstEIDApplet.class, aid); // Load the applet with the specified AID
vre.install(aid, default); // Make a default selected instance of the applet with same AID
TerminalFactory tf = TerminalFactory.getInstance("PC/SC", vre, new VJCREProvider());
CardTerminals terms = tf.terminals();
// Now use javax.smartcardio as you would do when talking to a real smart card

Get it now!

Version 0.1 will be released early March 2014 together with FakeEstEID Android version. Until that time feel free to look around in the repository.

Contact

Similar projects

Related projects


javacard.pro

vjcre's People

Contributors

martinpaljak avatar

Watchers

James Cloos avatar Suji Joe 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.