jCardSim - Java Card is Simple!

Tags: Java Card

Java Card - одна из самых распространенных Java-технологий, на текущий момент выпущено более миллиарда устройств с поддержкой Java Card. Практически все чиповые банковские карты и SIM-карты содержат поддержку Java Card. А с развитием NFC-технологий область применения Java Card расширяется всё больше.

В то же время изучение и разработка, и отладка приложений для Java Card - достаточно трудоемкий и сложный процесс. Ситуация осложняется тем, что на рынке нет единого стандартного симулятора Java Card, кроме входящего в Java Card Development Kit и имеющего ряд ограничений, а симуляторы поставляемые разработчиками смарт-карт, например JCOP Tools платные и их не так просто купить. Вот и остается разработчику: либо использовать симулятор из Java Card Development Kit, либо покупать комплект кард-ридер + набор Java Card.

Для того чтобы упростить изучение и разработку приложенй для Java Card, наша команда выпустила open-source симулятор jCardSim. Ключевое слово здесь open-source: все симуляторы имеющиеся на рынке поставляются, как правило, в закрытом виде. Мы сделали этот шаг намеренно, для того чтобы технология Java Card не была черным ящиком для разработчиков. К качеству кода приложений для Java Card предъявляются повышенные требования, и поэтому мы максимально упростили разработку unit-тестов, теперь ваш Java Card апплет можно протестировать всего в 5 строк кода:

//1. create simulator
Simulator simulator = new Simulator();
//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());

Особое внимание мы уделили реализации криптографии, jCardSim по набору поддерживаемых криптоалгоритмов полностью соответствует одной из самых распространенных карт NXP JCOP 31/36k. Ни один из симуляторов на рынке не обладает таким функционалом.

Начать работу с jCardSim просто: скачайте jar-архив и, следуя инструкциям из Quick Start Guide, выполните свой первый APDU-скрипт. Используя Simulator API и эмуляцию Java Card Terminal, вы сможете максимально эффективно создавать прототипы своих приложений и писать Unit-тесты.

Добро пожаловать в мир Java Card!