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

UptoLike

передачи данных, по которому реально будет включена карта; aseReaderCount
двойное слово, сюда после вызова функции ASEGetReadersCount занесется
число ридеров, подключенных к компьютеру и зарегистрированных в БД уст-
ройств ASE; wMaxKeyChanges — слово, вспомогательная переменная, в нее
будет перенесено значение поля dwMaxKeyChanges из записи CardCaps (воз-
можности карты), означает число возможных попыток смены ключа; FileInfo —
запись специального типа для
заполнения свойств создаваемых файлов, пример
заполнения приведен выше.
Работа с ключами
Работа с ключами средствами API высокого уровня ASE подразумевает
возможность проверки количества разрешенных смен ключей для карты, воз-
можность изменения существующих ключей и проверки знания ключей пользо-
вателем (аутентификация). Начнем по порядку.
В некоторых картах не предусмотрено изменение значений ключей не-
ограниченное количество раз, как правило, разрешается сменить PIN-код и лю-
бой из ключей карты не более 4 раз. Узнать это количество можно, вызвав
функцию ASEGetCardCaps() и просмотрев значение поля dwMaxKeyChanges в
полученной записи.
printf( "\nПолучим параметры карты.\n" );
AseResult = ASEHLGetCardCaps( hAseCard, & CardCaps );
if(AseResult != 0 )
{
ASEReaderClose(hAseReader);
exit(1);
}
printf( "Для продолжения нажмите любую клавишу.\n" );
getch();
// Проверка количества изменений ключа, допущенных до блокировки
// карты.
if( CardCaps.dwMaxKeyChanges == 0xFFFF )
wMaxKeyChanges = NULL;
else
wMaxKeyChanges = 4;
Изменение существующих на карте ключей производится путем вызова
функций ASEHLChangeKey() и ASEHLChangePIN(). Первая из них может ис-
пользоваться для смены любого ключа карты (Главного ключа, ключей доступа
и вычислительных ключей), втораятолько для смены PIN-кода карты. Обяза-
тельными параметрами каждой из этих функций являются Главный ключ карты,
текущее значение
ключа, который требуется изменить и новое значение изме-
няемого ключа. Эти функции обязательно должны вызываться из соответст-
12