Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java Card > Java Card Runtime Environment Simulator «jCardSim»


Автор: jcardsim 20.1.2012, 17:38
Привет, всем разработчикам на JavaCard !

Наверняка, каждый кто  хоть раз писал апплеты для JavaCard, сталкивался с проблемой отладки приложений, не говоря об такой важной части любого процесса разработки, как написание unit-тестов.

Для упрощения процесса разработки и повышения качества приложений мы разработали и используеем в своих проектах JavaCard симулятор спецификации 2.2.1, включая полную реализацию всех криптоалгоритмов.

В качестве вклада в сообщество JavaCard-разработчиков мы сделали исходные коды симулятора открытыми.

Особенности jCardSim:
 * Возможность быстрого прототипирования приложений
 * Удобство написания Unit-тестов
 * Простота создания верификационных тестов (Visa/Mastercard)

Чем он отличается от Sun/Oracle симулятора ?

Реализацией jacacard.security.*: текущая версия аналогична по функционалу карте NXP JCOP 31/36k. Например, у нас поддерживается on-card генерация ключей: KeyPair.ALG_EC_F2M/ALG_RSA_CRT, а в симуляторе, идущем в составе java card kit 2.2.1, поддерживается on-card генерация только KeyPair.ALG_RSA и KeyPair.ALG_EC_FP, которые на реальной карте не поддерживаются.

А еще очень удобно и просто писать unit-тесты
Код

// Создаем экземпляр симулятора
    Simulator simulator = new Simulator();
// Устанавливаем апплет в симулятор
    simulator.installApplet(appletAID, HelloWorldApplet.class);
// Выбираем апплет
    simulator.selectApplet(appletAID);
// Посылаем apdu-команду
    ResponseAPDU response = simulator.transmitCommand(new CommandAPDU(0x01, 0x01, 0x00, 0x00));
// Проверяем ответ
    assertEquals(0x9000, response.getSW());


Проект доступен на Google Code: http://code.google.com/p/jcardsim/

Присоединяйтесь !!! Будем рады видеть Вас в contributors и committers! smile

Лицель

Автор: firstone 22.1.2012, 11:41
Класс! Молодцы! Это как-то работает с JCOP Tools? Или имеет аналогичные фичи?

Автор: jcardsim 22.1.2012, 17:38
Спасибо !

Ну конечно по возможностям нам далеко до JCOPTools,  нашей основной задачей было сделать симулятор JavaCard на уровне API и простой инструмент для быстрого прототипирования приложений и написания  unit-тестов, особенно криптографического  API.  Как показывает практика - большинстов вопросов возникающих при разработке, это совместимость криптоалгоритмов, реализованных внутри JavaCard и того же JCA/JCE "большой" Java. Одни padding'и чего-только стоят ).  Здесь мы можем гордиться нашим jCardSim -  на текущий момент вся реализация  api javacard.framework.security/javacardx.crypto - совместима с NXP JCOP31-36. 

В наших дальнейших планах реализовать поддержку GlobalPlatform 2.2.x (особенно в части протоколов scpXX).

Автор: lumag 23.1.2012, 11:53
Спасибо за симулятор и за быстрое исправление проблем.

BTW: пара пожеланий:
  •  автоматизированная работа со скриптами. Т.е. как минимум - просто прочитать и выполнить APDU из заданного файла (R-APDU передавать в test suite). Как максимум - возможность прочитать из файла скрипт, в котором как запросы, так и маски ответов.
  •  возможность подключить симулятор через javax.smartcardio и работать с симулятором как с реальным ридером из приложения.

Автор: jcardsim 23.1.2012, 15:12
А вам, спасибо за выявление этих проблем и использование !
Оба ваших пожелания занесли на issue tracker. 
 http://code.google.com/p/jcardsim/issues/detail?id=2
 http://code.google.com/p/jcardsim/issues/detail?id=3
По срокам,  я думаю вначале сделаем TerminalFactory для jCardSim, а потом автоматизированную работу со скриптами.


Автор: jcardsim 13.6.2012, 19:39
Всем Привет!

Рады сообщить, о том что мы реализовали все пожелания по доработкам jCardSim - и запустили сайт проекта http://jcardsim.org!!

Добро пожаловать,  в мир Java Card и на jcardsim.org! 

Автор: jcardsim 11.7.2012, 17:58
Java Card разработчики, мы рады вашему интересу к нашему проекту. С момента запуска официального сайта jCardSim прошло всего 2 недели, и с каждым днем мы видим, что число пользователей jCardSim постоянно растет, а по отчетам Google Analytics с jcardsim.org можно учить географию.

Вначале немного политики. К сожалению, спецификация Java Card не предусматривает open-source реализации, и в ближайщее время мы не сможем лицензировать JavaCard у Oracle для jCardSim. Но это не повод расстраиваться. Мы считаем, что открытость платформы, синоним ее безопасности. Закрытый код всегда будет содержать большее число ошибок и уязвимостей, чем открытый. Поэтому мы будем и дальше развивать и поддерживать jCardSim.

Теперь о ближайших планах развития jCardSim (мы не уходим в летний отпуск и продолжаем развивать наш проект):
  • Июль 2012 - Поддержка CREATE APPLET, улучшение совместимости с набором команд apdutool
  • Август-Сентябрь 2012 - Модуль для NetBeans Java Card плагина
Еще  есть идея реализовать  NFC эмулятор для Android!

Если у вас есть вопросы, вы хотите видеть новый функционал jCardSim, или хотите принять участие в разработке - пишите нам. Мы открыты для ваших идей и общения!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)