Программное обеспечение для считывающих устройств PC/SC

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

Вполне возможно, что данные считывающие устройства будут соответствовать спецификации «РС/SC» и, следовательно, будут совместимы с программным обеспечением, поддерживающим этот широко признанный стандарт. А пока можно использовать некоторые промышленно выпускаемые считывающие устройства для работы в режиме PC/SC (например, модели «ChipDrive» фирмы Towitoko, «CyberMouse» фирмы ZietControI (см. рис. 5.6), ACR20 или ACR30 фирмы ACS и различные модели USB или PCMCIA).

Однако, несмотря на несомненное преимущество промышленного программного обеспечения, мне хотелось разработать пакет программ PC/SC, позволяющий достаточно подробно исследовать любую SIM-карту. При этом использовался «специальный язык чип-карт», являющийся модификацией старого доброго Бейсика (см. мою книгу «Basic pour microconlroleurs et PC»).

Хотя ZCBasic предназначен прежде всего для поддержки знаменитой BasicCard (см. рис. 5.7), о которой говорилось в главе 4, он прекрасно подходит и для написания приложений чуть ли не для каждой асинхронной чип-карты.

Главное преимущество подобного инструментария состоит в том, что он может использоваться свободно и бесплатно. Вы найдете его на компакт-диске, который прилагается к настоящей книге (каталог BASICCARD). Но для того, чтобы устройство для считывания чип-карт работало в режиме PC/SC, необходимо оснастить ПК различными программными «слоями», которые схематично представлены на рис. 5.8.

Прежде всего, это библиотеки «Smart Card Base Components* (базовые компоненты для смарт-карт) фирмы Microsoft (SCBASE.EXE и SMCLIB.EXE), если используется версия Windows (32 бит), изначально не поддерживающая чип-карты (например, Windows 95 или 98).

Затем драйвер PC/SC для применяемого считывающего устройства (не путать с «родным» драйвером считывающего устройства).

В принципе, если все программные элементы установлены правильно, то считывающее устройство будет функционировать в режиме PC/SC, если оно уже было подсоединено к ПК, когда на компьютер подали питание.

Напротив, «родной» режим будет единственно доступным, если считывающее устройство подключают к ПК (например, с помощью ручного переключателя) уже после запуска Windows.

Можно провести диагностику правильности установки одного или нескольких считывающих устройств PC/SC при помощи специализированных утилит, таких как PCSCINF.EXE, любезно предоставленных фирмой ZeitControl (каталог PCSC прилагаемого компакт-диска), или QUICKTEST.EXE (доступной после установки драйвера из каталога ACS).

Прежде чем запустить любую из перечисленных утилит, необходимо вставить какую-либо асинхронную карту.

Все программное обеспечение написано для работы на ПК, оборудованным одним считывающим устройством PC/SC (если установлено несколько устройств, то будет задействовано устройство №1).

Пользователю, очевидно, следует приобрести «Smart Card Base Components* у Microsoft, а необходимые драйверы - у поставщика используемого считывающего устройства (некоторые из них содержатся в поддиректории DRIVERS каталога ACS на компакт-диске).

На тот случай, если у вас возникнут какие-либо проблемы при работе считывающего устройства PC/SC, я скомпилировал свои программы и для «родного» последовательного режима считывающего устройства CyberMouse, поставляемого в комплектах BasicCard (подкаталоги СОМ_1 и СОМ_2). Для этого было достаточно заменить в исходном коде строку «ComPort=101» на «ComPort=1» или «ComPort=2» в зависимости от того, к какому порту подключено считывающее устройство: к СОМ1 или COM2.

Следует отметить, что программы, работающие в консольном режиме Windows, визуально очень напоминают режим командной строки DOS.

Позже вы увидите, как посредством среды программирования Delphi можно добавить к этим программам все преимущества графического интерфейса Windows.