Лабораторный практикум по изучению возможностей и приобретению практических навыков разработки приложений с использованием смарт-карт ASE фирмы Athena Smartcard Solutions Ltd. Бабенко Л.К - 8 стр.

UptoLike

этом файлы приложения могут быть и не защищены правилами разграничения
доступа. Чтение и запись в таких файлах могут быть произведены любым поль-
зователем или процессом.
Разработка приложения
Как уже упоминалось выше, типичное приложение, работающее со
смарт-картами, использует следующую последовательность вызова функций
API низкого уровня:
1. Получение основной информации об
устройстве ASEDrive.
2. Открытие устройства.
3. Вызов событийной функции для проверки наличия карты в гнезде
ридера (необязательно) и подача питания на карту (обязательно).
4. Вызов функций для проведения необходимых операций с картой.
5. После выполнения всех операций с картой, завершение сеанса работы
путем закрытия устройства.
Рассмотрим подробно каждый из этапов разработки описанного
выше
приложения для ИК. Программу будем писать на языке C.
Каждый блок вызова функции работы с ридером выглядит следующим
образом:
printf("\n_Описание_функции_\n"); — вывод на экран сообщения;
AseResult=ASExxx(xxxx); — вызов нужной функции;
if(AseResult != 0) — обработка возможной ошибки и вызов функции
обработки ошибок;
prinf(…)— комментарий возникшей ошибки;
exit(1); — выход из программы при возникновении ошибки;
getch() — ожидание нажатия
любой клавиши.
Получение информации об устройстве ASEDrive
Для того чтобы убедиться, что в системе установлено хотя бы одно
устройство ASEDrive, нам необходимо вызвать функцию GetReadersCount, и
если она вернет число <1, завершить работу, поскольку в этом случае очевидно,
что в системе не установлено ни одного ридера. При возврате этой функцией
числа >1 считаем, что мы
работаем с первым по списку в базе данных (БД) ри-
дером.
// Проверка, что, по крайней мере, одно устройство чтения
//установлено в этой системе
printf("\nУбедимся, что по крайней мере, 1 ридер установлен.\n");
ASEGetReadersCount(&aseReadersCount);
if(aseReadersCount == 0)
{
printf ("В системе не установлено ни одного ридера!\n");
exit(1);
}
8