Методы для работы с Антифрод-терминалом и технологией SWYX

isSwyxReader

isSwyxReader(int tokenDesc)

Проверяет, является ли ридер Антифрод-терминалом.

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
Результат:

bool true если ридер поддерживает SWYX-функционал.

enroll

enroll(int tokenDesc)

Получить значение открытого ключа Антифрод-терминала.

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
Результат:

array – открытый ключ в виде массива байт.

Примеры ошибок:

  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

performPersonalization

performPersonalization(int tokenDesc)

Сгенерировать новую ключевую пару на Антифрод-терминале.

Метод должен выполняться только в случае первичной или повторной инициализации терминала на специализированном АРМе. Операция может занимать до 20 сек. Для получения открытого ключа персонализированного ранее терминала используется метод enroll().

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.

Примеры ошибок:

  • CKR_FUNCTION_REJECTED – пользователь нажал отмена.
  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

performPersonalizationAsync

performPersonalizationAsync(int tokenDesc, JSObjectPtr callback)

Сгенерировать новую ключевую пару на Антифрод-терминале, используя асинхронный механизм.

Метод должен выполняться только в случае первичной или повторной инициализации терминала на специализированном АРМе. Операция может занимать до 20 сек. Для получения открытого ключа персонализированного ранее терминала используется метод enroll().

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
  • callback – сallback-функция JavaScript, которая будет выполнена после завершения работы метода. В случае ошибки или отмены операции в функцию будет переданы Error и код ошибки, в случае успеха - 0.

Примеры ошибок:

  • CKR_FUNCTION_REJECTED – пользователь нажал отмена.
  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

aftGetReaderVersion

aftGetReaderVersion(int tokenDesc)

Получить версию прошивки Антифрод-терминала.

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
Результат:

array – массив, первый элемент которого обозначает версию прошивки ОС терминала, второй – версию прошивки приложения.

getReaderAppletSerialNumber

getReaderAppletSerialNumber(int tokenDesc)

Получить серийный номер Антифрод-терминала.

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
Результат:

array – серийный номер Антифрод-терминала в виде набора байт.

Примеры ошибок:

  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

bindTokenAFTAsync

bindTokenAFTAsync(int tokenDesc, int langId, int timeout, int m_MessageIdx, JSObjectPtr callback)

Проверить PIN-код пользователя на смарт-карте с апплетом Криптотокен с использованием Антифрод-терминала. Метод позволяет выводить различные сообщения на Антифрод-терминал (параметр m_MessageIdx).

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
  • langId – идентификатор языка для запроса PIN-кода пользователя на экране Антинфрод-терминала: 1033 - английский, 1049 - русский.
  • timeout – тайм-аут ожидания ввода пользователя на Антифрод-терминале. Измеряется в секундах. 0 - тайм-аут по умолчанию, равен 60 сек.
  • messageIdx – индекс первого сообщения используемого для приглашения ввода PIN-кода, обычно 16. Является десятичным представлением параметра m_MessageIdx.
  • callback – сallback-функция JavaScript, которая будет выполнена после завершения работы метода. В случае ошибки или отмены операции в функцию будут переданы значение Error и код ошибки, в случае успеха - 0.

initUserPINAFT

initUserPINAFT(int tokenDesc, int langId, bool requireConfirmation)

Инициализировать PIN-код пользователя электронного ключа при помощи Антифрод-терминала. Работает при состоянии аутентификации STATE_NOT_BINDED (0). Текущее состояние аутентификации получается с помощью метода getLoggedInState().

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
  • langId – идентификатор языка для запроса PIN-кода пользователя на экране Антинфрод-терминала: 1033 - английский, 1049 - русский.
  • requireConfirmation – Запрашивать ли подтверждение нового PIN-кода пользователя. Значение True - запрашивать, False - не запрашивать.

swyxStart

swyxStart(int tokenDesc)

Начать работу в SWYX-режиме.

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.

Примеры ошибок:

  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

swyxStop

swyxStop(int tokenDesc)

Закончить работу в SWYX-режиме.

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
Результат:

array – массив байт, содержащий лог операций, выполненных на терминале, в формате: [xml] + [значение подписи (64 байта)].

Примеры ошибок:

  • CKR_GENERAL_ERROR – SWYX-режим не был предварительно включен.
  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

swyxStopAsync

swyxStopAsync(int tokenDesc, JSObjectPtr callback)

Закончить работу в SWYX-режиме, используя асинхронный механизм.

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
  • callback – callback-функция JavaScript, которая будет выполнена после завершения работы метода. В случае ошибки или отмены операции в функцию будет переданы Error и код ошибки, в случае успеха - массив байт, содержащий лог операций, выполненных на терминале, в формате: [xml] + [значение подписи (64 байта)].

Примеры ошибок:

  • СKR_GENERAL_ERROR – SWYX-режим не был предварительно включен
  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

swyxDisplay

swyxDisplay(int tokenDesc, string message, int timeout)

Отобразить текст на экране Антифрод-терминала и предложить пользователю его подписать.

С помощью клавиатуры Антифрод-терминала пользователю даётся возможность подтвердить или отменить операцию. Метод не выполняет операцию подписания.

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
  • timeout – тайм-аут подтверждения в 5-секундных долях (одна единица - пять секунд). 0 - ожидать бесконечно.
  • message – текст для отображения на экране Антифрод-терминала, ожидается от 7 до 1600 байт кодировке UTF8, но не более 400 символов.

Примеры ошибок:

  • CKR_FUNCTION_CANCELED – тайм-аут операции.
  • CKR_FUNCTION_REJECTED – пользователь нажал отмена.
  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

swyxDisplayAsync

swyxDisplayAsync(int tokenDesc, string message, int timeout, JSObjectPtr callback)

Отобразить текст на экране Антифрод-терминала и предложить пользователю его подписать. Операция выполняется, используя асинхронный механизм.

С помощью клавиатуры Антифрод-терминала пользователю дается возможность подтвердить или отменить операцию. Метод не выполняет операцию подписания.

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
  • message – текст для отображения на экране Антифрод-терминала, ожидается от 7 до 1600 байт кодировке UTF8, но не более 400 символов.
  • timeout – тайм-аут подтверждения текста на экране Антифрод-терминала в 5-секундных долях (одна единица - пять секунд). 0 - ожидать бесконечно.
  • callback – callback-функция JavaScript, которая будет выполнена после завершения работы метода. В случае ошибки или отмены операции в функцию будет переданы Error и код ошибки, в случае успеха - 0.

Примеры ошибок:

  • CKR_FUNCTION_CANCELED – тайм-аут операции.
  • CKR_FUNCTION_REJECTED – пользователь нажал отмена.
  • СKR_ARGUMENTS_BAD – ошибка в аргументах функции.
  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

swyxSign

swyxSign(int tokenDesc, int contID, array data, string displayedMessage, bool askPinBeforeSigning, bool attachedSignature, bool hardwareHash, int timeout)

Визуализировать и подписать данные, используя Антифрод-терминал.

Метод выполняет следующую последовательность действий:

  1. swyxStart(),
  2. swyxDisplay(),
  3. signData(),
  4. swyxStop().
Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens().
  • contID

    идентификатор контейнера (сертификата). Получается при создании контейнера createContainer()/createContainerAsync() или при помощи методов поиска getCertificateList()/getCertificateListEx().

    Примечание

    Значение идентификатора контейнера не постоянно, но в рамках сессии не меняется.

  • data – данные для подписи в виде массива байт.
  • displayedMessage – текст для отображения на экране Антифрод-терминала, ожидается от 7 до 1600 байт кодировке UTF8, но не более 400 символов.
  • askPinBeforeSigning – дополнительно запросить PIN-код пользователя перед отображением текста на экране SWYX-терминала (пункт 2).
  • attachedSignature – включать ли данные в подпись PKCS#7 (true - включать).
  • hardwareHash – использовать ли аппаратный расчёт хеш значения для подписи (true - использовать).
  • timeout – тайм-аут подтверждения текста на экране Антифрод-терминала в 5-секундных долях (одна единица - пять секунд). 0 - ожидать бесконечно.
Результат:

array – массив из двух элементов:

  • Массив с подписью данных.
  • Массив байт в формате [xml][значение подписи (64 байта)].

Примеры ошибок:

  • CKR_FUNCTION_CANCELED – тайм-аут операции подписи или ввода PIN-кода.
  • CKR_FUNCTION_REJECTED – пользователь нажал отмена при подтверждении подписи или при вводе ПИН-кода.
  • CKR_PIN_LEN_RANGE – пользователь ввёл слишком короткий или слишком длинный PIN-код.
  • CKR_PIN_INCORRECT – пользователь ввёл неверный PIN-код.
  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

swyxSignAsync

swyxSignAsync(int tokenDesc, int contID, array data, string displayedMessage, bool askPinBeforeSigning, bool attachedSignature, bool hardwareHash, int timeout, JSObjectPtr callback)

Визуализировать и подписать данные, используя Антифрод-терминал.

Метод асинхронно выполняет следующую последовательность действий:

  1. swyxStart(),
  2. swyxDisplay(),
  3. signData(),
  4. swyxStop().
Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
  • contID

    идентификатор контейнера (сертификата). Получается при создании контейнера (createContainer() , createContainerAsync()) или при помощи методов поиска getCertificateList()/getCertificateListEx().

    Примечание

    Значение идентификатора контейнера не постоянно, но в рамках сессии не меняется.

  • data – данные для подписи в виде массива байт.
  • displayedMessage – текст для отображения на экране Антифрод-терминала, ожидается от 7 до 1600 байт кодировке UTF8, но не более 400 символов.
  • askPinBeforeSigning – дополнительно запросить PIN-код пользователя перед отображением текста на считывателе (пункт 2).
  • attachedSignature – включать ли данные в подпись PKCS#7 (true - включать).
  • hardwareHash – использовать ли аппаратный расчёт хеш значения для подписи (true - использовать).
  • timeout – тайм-аут подтверждения текста на экране Антифрод-терминала в 5-секундных долях (одна единица - пять секунд) 0 - ожидать бесконечно.
  • callback – callback-функция JavaScript, которая будет выполнена после завершения работы метода. В случае ошибки или отмены операции в функцию будет переданы Error и код ошибки,
Результат:

array – массив из двух элементов:

  • Массив с подписью данных.
  • Массив байт в формате [xml] + [значение подписи (64 байта)].

Примеры ошибок:

  • CKR_FUNCTION_CANCELED – тайм-аут операции подписи или ввода PIN-кода.
  • CKR_FUNCTION_REJECTED – пользователь нажал отмена при подтверждении подписи или при вводе PIN-кода.
  • CKR_PIN_LEN_RANGE – пользователь ввел слишком короткий или слишком длинный PIN-код.
  • CKR_PIN_INCORRECT – пользователь ввел неверный PIN-код.
  • CKR_FUNCTION_FAILED – вероятная причина: неправильно указан идентификатор электронного ключа.

aftCardlessSupport

aftCardlessSupport(int tokenDesc)

Проверить, поддерживает ли Антифрод-терминал бескарточный режим работы.

Аргументы:
  • tokenDesc – идентификатор электронного ключа. Получается с помощью метода getAllTokens(). Значение идентификатора электронного ключа не постоянно, но в рамках сессии не меняется.
Результат:

Результат проверки в виде логического значения:

  • True - если бескарточный режим поддерживается.
  • False - если бескарточный режим не поддерживается.

Примеры ошибок:

  • CKR_FUNCTION_FAILED - обращение к терминалу, не поддерживающему бескарточный режим, и без вставленной смарт-карты.