Методы для работы с Антифрод-терминалом и технологией 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 – вероятная причина: неправильно указан идентификатор электронного ключа.

getReaderAppletSerialNumber

getReaderAppletSerialNumber(int tokenDesc)

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

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

array – серийный номер чипа в виде набора байт.

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

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

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).
  • 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 – вероятная причина: неправильно указан идентификатор электронного ключа.