YstokCard - API для смарт-карт (PS/CS)

YstokCard — переносимая библиотека на языке Коммон Лисп для работы со смарт-картами.
Включает иерархию классов чип-карт (integrated chip cards, ICC) и считывателей, или картридеров (card readers, interface devices, IFD), а также функции для операций над ними.

Существуют два вида смарт-карт.

Карты с памятью
Карты для надёжного хранения небольшого объёма данных, например, о денежном счёте пользователя. В начале работы с ними требется преварительная проверка подлинности, например, верификации ПИН-кода.
Карты с микропроцессором
Действительно "умные" карты, способные принимать решения о хранящейся на них информации.

Карты имеют стандртные размеры, удобны в обращении и не привязаны к конкретному устройству считывания или терминалу. Благодаря таким качествам карты широко применяются в системах контроля доступа и для электронной идентификации людей, животных, товаров и т.п.

Библиотека YstokCard полезна для разработки всех типов приложений. Она базируется на следующих программных компонентах:

Спецификация PS/SC
http://www.pcscworkgroup.com/
Высокоуровневый программный интерфейс, позволяющий абстрагироваться от технически особенностей разных моделей карт и считывателей.
Synchronous API for HID OmniKey readers
http://www.hidglobal.com/drivers/14980
Программный интерфейс фирмы HID Global для доступа к картам с памятью.

PC/SC — это аббревиатура от "Personal Computer/Smart Card". Этот отраслевой стандарт впервые был реализован фирмой Microsoft в ОС Windows 2000. Общедоступная реализация PC/SC Lite доступна также для разных версий Линукс и Mac OS X.

Основные возможности

Аппаратура

Библиотека YstokCard поддерживает разные типы карт, включая

На практике модуль YstokCard тестировался при такой конфигурации:

Omnikey 5321
Устройство чтения и записи контактных и бесконтактных (RFID 13,56 Mhz) карт, подсоединяемый через USB-порт.
Mifare Classic/Ultralight
Бесконтактные карты памяти с объёмом 1КБ, 4КБ и 256 байт фирмы NXP Semiconductors (отделилась от Сименс).
ID-000
Visa/MasterCard/Europay (тестировались неполно).

Зависимости

YstokCard требует Ystok-FFC и Ystok-Library.

Платформы

Модуль YstokCard тестировался на следующих реализациях Коммон Лисп:

Загрузка и установка

Модуль YstokCard доступен в виде одного из двух пакетов:

Дистрибутивы содержат файлы определения систем:

Изменения и дополнения

См. файл change.log (на английском).

Тесты и примеры

Примеры работы с YstokCard приведены здесь. Дистрибутив включает следующие файлы:

test.lisp
Простейшие тесты на базе модуля ACL-Compat lite.
run-monitor.lisp
Запуск и остановка мониторинга устройств-считывателей.

См. также