Клавиатурный ввод для Cryptera, ZT596E и ZT596x¶
Ввод PIN-кода¶
Входные параметры:
cEcho – игнорируется.
ulActiveKeys – любые поддерживаемые устройством (см. caps.setOfFuncMask) кроме: 00 и 000.
ulTerminateKeys – аналогично ulActiveKeys. Валидация: цифры 0..9 не могут быть терминирующими. Валидация: каждая перечисленная кнопка должна быть указана и в ulActiveKeys.
ulActiveFDKs – FDK1 .. 8.
ulTerminateFDKs – FDK1 .. 8 (работают как ENTER). Валидация: каждая перечисленная кнопка должна быть указана и в ulActiveFDKs
usMinLen – 0 .. 16.
usMaxLen – 0 .. 16. Валидация: если usMaxLen > 0, то usMaxLen >= usMinLen.
bAutoEnd –
true
,false
. Валидация: если bAutoEnd = false, а usMaxLen > 0, должна быть определена хотя бы одна терминирующая кнопка.
Валидация: множество ulActiveKeys и ulActiveFDKs не должно быть пустым.
Логика обработки нажатия на кнопки.
Определения:
keyBuffer Внутренний буфер, накапливающий PIN-код. Поддерживаемые свойства и методы:
.size – количество цифр в буфере;
.clear() – очистить содержимое;
.add_digit() – добавить цифру.
event – отправка события WFS_EXEE_PIN_KEY:
Арг1 – ulDigit;
Арг2 – wCompletion.
complete – завершить работу команды ввода:
Арг1 – hResult;
Арг2 – usDigits;
Арг3 – wCompletion.
Ввод PIN-кода:
Ввод данных¶
Входные параметры:
ulActiveKeys – любые поддерживаемые устройством (см. caps.setOfFuncMask).
ulTerminateKeys – любые поддерживаемые устройством (см. caps.setOfFuncMask). Валидация: каждая перечисленная кнопка д.б. указана и в ulActiveKeys.
ulActiveFDKs – Любые поддерживаемые устройством (см. caps.fdks, работают как ENTER).
ulTerminateFDKs – Любые поддерживаемые устройством (см. caps.fdks). Валидация: каждая перечисленная кнопка д.б. указана и в ulActiveFDKs.
usMaxLen – 0 – выходная структура будет пустой.
bAutoEnd –
true
,false
. Если usMaxLen= 0, значение игнорируется.
Валидация: множество ulActiveKeys и ulActiveFDKs не должно быть пустым.
Логика обработки нажатия на кнопки.
Определения:
buffer – внутренний буфер, накапливающий нажатия на кнопки. Поддерживаемые свойства и методы:
.size – количество цифр в буфере;
.clear() – очистить содержимое;
.clearLast() – удалить последнюю цифру;
.add_digit() – добавить цифру.
Примечание: нажатия на FDK в буфер не попадают.
event – отправка события WFS_EXEE_PIN_KEY:
Арг1 – ulDigit;
Арг2 – wCompletion.
complete – завершить работу команды ввода:
Арг1 – hResult;
Арг3 – wCompletion.
Кроме того, на выход возвращается буфер накопленных нажатий.
Ввод данных:
Ввод ключа¶
Входные параметры:
ulActiveKeys – любые поддерживаемые устройством (см. WFS_INF_PIN_SECUREKEY_DETAIL lpFuncKeyDetail). В том числе, здесь указываются A..F и SHIFT. Кроме: 00 и 000.
ulTerminateKeys – любые поддерживаемые устройством (см. WFS_INF_PIN_SECUREKEY_DETAIL lpFuncKeyDetail). Валидация: цифры 0..9, A-F, а также SHIFT не могут быть терминирующими. Валидация: каждая перечисленная кнопка д.б. указана и в ulActiveKeys.
ulActiveFDKs – FDK1 .. 8.
ulTerminateFDKs – FDK1 .. 8. Валидация: каждая перечисленная кнопка д.б. указана и в ulActiveFDKs. Валидация: каждая перечисленная кнопка д.б. в списке secureCaps.setOfCancelFDK или secureCaps.setOfEnterFDK.
usKeyLen – правила валидации задаются криптомодулем. Как правило, речь о вводе DES/3DES ключей: соответственно, предполагаются 16, 32, 48 разрядов к вводу. Валидация: Неотрицательное число.
bAutoEnd –
true
,false
. Валидация: еслиfalse
, д.б. определена хотя бы одна терминирующая кнопка.
Валидация: множество ulActiveKeys и ulActiveFDKs не должно быть пустым.
Логика обработки нажатия на кнопки.
Определения:
keyBuffer Внутренний буфер, накапливающий PIN-код. Поддерживаемые свойства и методы:
.size – количество цифр в буфере;
.clear() – очистить содержимое;
.add_digit() – добавить цифру.
event – отправка события WFS_EXEE_PIN_KEY:
Арг1 – ulDigit;
Арг2 – wCompletion.
complete – завершить работу команды ввода:
Арг1 – hResult;
Арг2 – usDigits;
Арг3 – wCompletion.
Ввод ключа: