Как получить доступ к считывателю смарт-карт Omnikey 3121 - PullRequest
0 голосов
/ 02 марта 2019

Я хочу использовать Java для доступа к смарт-карте с помощью Omnikey reader.Я нашел пару решений, таких как смарткардио, но это не помогло.В основном я связался с ридером, но он использует APDU, когда он мне не нужен.У меня есть идея открыть поток для моего считывателя через USB и передать поток двоичные команды на устройство, а затем получить ответ таким же образом, но технически, как я могу написать его на Java?

Я также нашел библиотеки, какusb4java, но и плохое мнение об этом.Может быть, кто-то имел опыт работы с этим устройством и мог бы дать мне несколько советов?

В интернете не так много учебников по программированию смарт-карт.Я пытался также использовать pyApduTool или HID Omnikey Sync API V2.0., Но это только для теста.Я должен написать простые запросы, чтобы получить информацию с карты.

1 Ответ

0 голосов
/ 04 марта 2019

Существует два основных способа решения вашей проблемы:

  1. не используйте интерфейс PC / SC, используемый java.smartcardio, но используйте собственные проприетарные библиотеки от производителя устройства чтения карт,например, использование оболочки (на основе JNI, но есть альтернативы лучшего / более высокого уровня);

  2. продолжайте использовать APDU, но используйте байт CLA, установленный в FF hex, открываяподключение к читателю.FF зарезервирован, но, как правило, зарезервирован для доступа к считывателю карт такого типа, например, для доступа к картам памяти без уровня ISO / IEC 7816-4, которые поддерживаются производителем считывателя.

  3. из двух (только для полноты): многие устройства считывания карт были созданы с использованием чипа USB-последовательный интерфейс, что означает, что вы можете напрямую подключаться к (виртуальному) последовательному интерфейсу;Само собой разумеется, вы должны будете знать, какие команды отправлять и программировать все самостоятельно, если этот интерфейс вообще присутствует (Omnikey 3121 является относительно новым, поэтому я был бы удивлен).

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

Проверяли ли вы специальную документацию по вашему кард-ридеру?

...