Клавиатурный ввод для 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-кода:

../../_images/keyboard_input-pin.png

Ввод данных

Входные параметры:

  • ulActiveKeys – любые поддерживаемые устройством (см. caps.setOfFuncMask).

  • ulTerminateKeys – любые поддерживаемые устройством (см. caps.setOfFuncMask). Валидация: каждая перечисленная кнопка д.б. указана и в ulActiveKeys.

  • ulActiveFDKs – Любые поддерживаемые устройством (см. caps.fdks, работают как ENTER).

  • ulTerminateFDKs – Любые поддерживаемые устройством (см. caps.fdks). Валидация: каждая перечисленная кнопка д.б. указана и в ulActiveFDKs.

  • usMaxLen – 0 – выходная структура будет пустой.

  • bAutoEndtrue, 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.

    Кроме того, на выход возвращается буфер накопленных нажатий.

Ввод данных:

../../_images/keyboard_input-data.png

Ввод ключа

Входные параметры:

  • 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 разрядов к вводу. Валидация: Неотрицательное число.

  • bAutoEndtrue, 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.

Ввод ключа:

../../_images/keyboard_input-key.png