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

aftGetReaderVersion

aftGetReaderVersion(int deviceId)

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

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.
Результат:

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

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

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

getReaderAppletSerialNumber

getReaderAppletSerialNumber(int deviceId)

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

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.
Результат:

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

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

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

aftCardlessSupport

aftCardlessSupport(int deviceId)

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

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.
Результат:

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

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

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

enroll

enroll(int deviceId)

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

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.
Результат:

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

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

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

performPersonalization

performPersonalization(int deviceId)

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

Примечание

Для получения открытого ключа персонализированного ранее терминала используется метод enroll().

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.

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

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

performPersonalizationAsync

performPersonalizationAsync(int deviceId, JSObjectPtr callback)

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

Примечание

Для получения открытого ключа персонализированного ранее терминала используется метод enroll().

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

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

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

aftGetPINasync

aftGetPINasync(int slotId, int langId, int timeout, var messageIdx, JSObjectPtr callback)

Метод запрашивает ввод PIN-кода (пользователя/администратора/подписи) на экране Антифрод-терминала и возвращает значение PIN-кода, введённое на клавиатуре Антифрод-терминала. Введённый на Антифрод-терминале PIN-код передаётся в JC-WebClient в зашифрованном виде. JC-WebClient самостоятельно расшифровывает значение PIN-кода, от разработчика не требуется дополнительных действий.

Аргументы:
  • slotId – слот Антифрод-терминала, работающего без смарт-карты. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Значения слота не постоянно, но в рамках сессии не меняется.
  • langId – идентификатор языка, используемого для сообщений: 0x419 – русский, 0x409 – английский.
  • timeout – тайм-аут ожидания ввода от пользователя до отмены операции, в секундах.
  • messageIdx – индекс сообщения, выводимого на экран Антифрод-терминала для приглашения ввода пользователем PIN-кода. Индекс указывается в шестнадцатиричном формате. Например, для вывода сообщения “Введите PIN-код пользователя” надо указать значение параметра messageIdx, равное 0x10; где цифра 1 соответствует слову “пользователя”, а 0 – “Введите PIN-код”. Подробнее см. описание параметра messageIdx.
  • callback – сallback-функция JavaScript, которая будет выполнена после завершения работы метода. В случае ошибки или отмены операции в функцию будет переданы Error и код ошибки, в случае успеха – PIN-код пользователя.

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

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

aftGetNewPINasync

aftGetNewPINasync(int slotId, int langId, int timeout, var message1Idx, var message2Idx, JSObjectPtr callback)

Метод запрашивает на экране Антифрод-терминала ввод нового значения PIN-кода (пользователя/администратора/подписи) при его смене, а затем повторный ввод для подтверждения. В случае, если пользователь дважды ввёл одинаковый PIN-код на клавиатуре терминала, метод возвращает его значение. Введённый на Антифрод-терминале PIN-код передаётся в JC-WebClient в зашифрованном виде. JC-WebClient самостоятельно расшифровывает значение PIN-кода, от разработчика не требуется дополнительных действий.

Аргументы:
  • slotId – слот Антифрод-терминала, работающего без смарт-карты. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Значения слота не постоянно, но в рамках сессии не меняется.
  • langId – идентификатор языка, используемого для сообщений: 0x419 – русский, 0x409 – английский.
  • timeout – тайм-аут ожидания ввода от пользователя до отмены операции, в секундах.
  • message1Idx – индекс первого сообщения, выводимого на экран Антифрод-терминала для приглашения ввода пользователем PIN-кода. Индекс указывается в шестнадцатиричном формате. Например, для вывода сообщения “Введите PIN-код пользователя” надо указать значение параметра messageIdx, равное 0x10; где цифра 1 соответствует слову “пользователя”, а 0 – “Введите PIN-код”. Для вывода сообщения “Повторите PIN пользователя” следует указать значение параметра 0x12. Подробнее см. описание параметра messageIdx.
  • message2Idx – индекс второго сообщения, выводимого на экран Антифрод-терминала для приглашения ввода пользователем PIN-кода (например, если нужно сначала запросить ввод PIN-кода, а затем запросить его подтверждение). Индекс указывается в шестнадцатиричном формате. Например, для вывода сообщения “Введите PIN-код пользователя” надо указать значение параметра messageIdx, равное 0x10; где цифра 1 соответствует слову “пользователя”, а 0 – “Введите PIN-код”. Для вывода сообщения “Повторите PIN пользователя” следует указать значение параметра 0x12. Подробнее см. описание параметра messageIdx.
  • callback – сallback-функция JavaScript, которая будет выполнена после завершения работы метода. В случае ошибки или отмены операции в функцию будет переданы Error и код ошибки, в случае успеха – PIN-код пользователя.

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

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

isSwyxReader

isSwyxReader(int deviceId)

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

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.
Результат:

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

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

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

swyxStart

Не рекомендуется, начиная с версии 3.1.0: Вместо этого используйте метод swyxStartEx().

swyxStart(int deviceId)

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

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.

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

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

swyxStartEx

swyxStartEx(int deviceId, array reference)

Начать работу в SWYX-режиме с записью в журнал операций значения параметра reference.

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.
  • reference – параметр для добавления в журнал операций, представляет собой массив из 8 байт. Предназначен для защиты от попыток повторного навязывания перехваченного журнала вместе с копией уже однажды одобренного сервером документа.

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

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

swyxStartAsync

Не рекомендуется, начиная с версии 3.1.0: Вместо этого используйте метод swyxStartAsyncEx().

swyxStartAsync(int deviceId, JSObjectPtr callback)

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

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

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

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

swyxStartAsyncEx

swyxStartAsyncEx(int deviceId, array reference, JSObjectPtr callback)

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

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

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

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

swyxStop

swyxStop(int deviceId)

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

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.
Результат:

array – массив байт, содержащий журнал операций в формате XML, и подпись журнала (последние 64 байта этого массива).

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

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

swyxStopAsync

swyxStopAsync(int deviceId, JSObjectPtr callback)

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

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.
  • callback – callback-функция JavaScript, которая будет выполнена после завершения работы метода. В случае ошибки или отмены операции в функцию будут переданы Error и код ошибки; в случае успешного завершения – массив байт, содержащий журнал операций в формате XML и подпись журнала (последние 64 байта этого массива).

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

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

swyxDisplay

Не рекомендуется, начиная с версии 3.1.0: Вместо этого используйте метод swyxDisplayEx().

swyxDisplay(int deviceId, string message, int timeout)

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

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

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

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

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

swyxDisplayEx

swyxDisplayEx(int deviceId, string message, int timeout, int langId, var messageIdx)

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

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

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода getAllTokens(). Значения слота и идентификатора не постоянны, но в рамках сессии не меняются.
  • timeout – тайм-аут подтверждения в 5-секундных долях (одна единица - пять секунд). 0 - ожидать бесконечно.
  • message – текст для отображения на экране Антифрод-терминала, ожидается от 7 до 1600 байт в кодировке UTF8, но не более 400 символов.
  • langId – идентификатор языка, используемого для вывода на экран подтверждений (напр. Подтвердить или Confirm). Возможные значения: 0x419 – русский, 0x409 – английский.
  • messageIdx – индекс сообщения, используемого для подтверждений. Возможные значения: 0 - “Подтвердить”, 1 - “Подписать”.

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

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

swyxDisplayAsync

Не рекомендуется, начиная с версии 3.1.0: Вместо этого используйте метод swyxDisplayAsyncEx().

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

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

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

Аргументы:
  • deviceId – слот Антифрод-терминала, работающего без смарт-карты, или идентификатор смарт-карты, подключенной к Антифрод-терминалу. Слот Антифрод-терминала получается с помощью метода getAllSlots(). Идентификатор смарт-карты получается с помощью метода 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 – вероятная причина: неправильно указан идентификатор электронного ключа или слот Антифрод-терминала.

swyxDisplayAsyncEx

swyxDisplayAsyncEx(int deviceId, string message, int timeout, int langId, var messageIdx, JSObjectPtr callback)

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

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

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

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

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

swyxSign

Не рекомендуется, начиная с версии 3.1.0: Вместо этого используйте метод swyxSignEx().

swyxSign(int tokenDesc, int contID, array data, string displayedMessage, bool askPin, 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 символов.
  • askPin – дополнительно запросить PIN-код пользователя перед отображением текста на экране Антинфрод-терминала.
  • attachedSignature – включать ли данные в подпись PKCS#7 (true - включать).
  • hardwareHash – использовать ли аппаратный расчёт хеш значения для подписи (true - использовать).
  • timeout – тайм-аут подтверждения текста на экране Антифрод-терминала в 5-секундных долях (одна единица - пять секунд). 0 - ожидать бесконечно.
Результат:

array – массив, содержащий два элемента. Первый - подпись (в виде массива байт) для переданных данных (параметр data) в формате PKCS#7, вычисленная на смарт-карте. Второй элемент массива – журнал операций Антифрод-терминала в формате XML вместе с подписью этого журнала на ключе самого терминала (подпись занимает последние 64 байта второго элемента).

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

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

swyxSignEx

swyxSignEx(int tokenDesc, int contID, array data, string displayedMessage, bool askPin, bool attachedSignature, bool hardwareHash, int timeout, array reference, int langId, var messageIdx)

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

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

  1. swyxStartEx(),
  2. swyxDisplayEx(),
  3. signData(),
  4. swyxStop().
Аргументы:
  • tokenDesc – идентификатор смарт-карты, подключенной к Антинфрод-терминалу. Получается с помощью метода getAllTokens(). Значение идентификатора не постоянно, но в рамках сессии не меняется.
  • contID – идентификатор контейнера (сертификата). Получается при создании контейнера с помощью методов createContainer() / createContainerAsync() или при помощи методов поиска getCertificateList() / getCertificateListEx(). Значение идентификатора контейнера не постоянно, но в рамках сессии не меняется.
  • data – данные для подписи в виде массива байт.
  • displayedMessage – текст для отображения на экране Антифрод-терминала, ожидается от 7 до 1600 байт кодировке UTF8, но не более 400 символов.
  • askPin – дополнительно запросить PIN-код пользователя перед отображением текста на экране Антинфрод-терминала.
  • attachedSignature – включать ли данные в подпись PKCS#7 (true - включать).
  • hardwareHash – использовать ли аппаратный расчёт хеш значения для подписи (true - использовать).
  • timeout – тайм-аут подтверждения текста на экране Антифрод-терминала в 5-секундных долях (одна единица - пять секунд). 0 - ожидать бесконечно.
  • reference – параметр для добавления в журнал операций, представляет собой массив из 8 байт. Предназначен для защиты от попыток повторного навязывания перехваченного журнала вместе с копией уже однажды одобренного сервером документа.
  • langId – идентификатор языка, используемого для вывода на экран подтверждений (напр. Подтвердить или Confirm). Возможные значения: 0x419 – русский, 0x409 – английский.
  • messageIdx – индекс сообщения, используемого для подтверждений. Возможные значения: 0 - “Подтвердить”, 1 - “Подписать”.
Результат:

array – массив, содержащий два элемента. Первый - подпись (в виде массива байт) для переданных данных (параметр data) в формате PKCS#7, вычисленная на смарт-карте. Второй элемент массива – журнал операций Антифрод-терминала в формате XML вместе с подписью этого журнала на ключе самого терминала (подпись занимает последние 64 байта второго элемента).

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

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

swyxSignAsync

Не рекомендуется, начиная с версии 3.1.0: Вместо этого используйте метод swyxSignAsyncEx().

swyxSignAsync(int tokenDesc, int contID, array data, string displayedMessage, bool askPin, 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 символов.
  • askPin – дополнительно запросить PIN-код пользователя перед отображением текста на экране Антифрод-терминала.
  • attachedSignature – включать ли данные в подпись PKCS#7 (true - включать).
  • hardwareHash – использовать ли аппаратный расчёт хеш значения для подписи (true - использовать).
  • timeout – тайм-аут подтверждения текста на экране Антифрод-терминала в 5-секундных долях (одна единица - пять секунд) 0 - ожидать бесконечно.
  • callback – callback-функция JavaScript, которая будет выполнена после завершения работы метода. В случае ошибки или отмены операции в функцию будут переданы Error и код ошибки; в случае успешного завершения – массив байт, содержащий журнал операций в формате XML и подпись журнала (последние 64 байта этого массива).

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

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

swyxSignAsyncEx

swyxSignAsyncEx(int tokenDesc, int contID, array data, string displayedMessage, bool askPin, bool attachedSignature, bool hardwareHash, int timeout, array reference, int langId, var messageIdx, JSObjectPtr callback)

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

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

  1. swyxStartEx(),
  2. swyxDisplayEx(),
  3. signData(),
  4. swyxStop().
Аргументы:
  • tokenDesc – идентификатор смарт-карты, подключенной к Антинфрод-терминалу. Получается с помощью метода getAllTokens(). Значение идентификатора не постоянно, но в рамках сессии не меняется.
  • contID – идентификатор контейнера (сертификата). Получается при создании контейнера с помощью методов createContainer() / createContainerAsync() или при помощи методов поиска getCertificateList() / getCertificateListEx(). Значение идентификатора контейнера не постоянно, но в рамках сессии не меняется.
  • data – данные для подписи в виде массива байт.
  • displayedMessage – текст для отображения на экране Антифрод-терминала, ожидается от 7 до 1600 байт кодировке UTF8, но не более 400 символов.
  • askPin – дополнительно запросить PIN-код пользователя перед отображением текста на экране Антифрод-терминала.
  • attachedSignature – включать ли данные в подпись PKCS#7 (true - включать).
  • hardwareHash – использовать ли аппаратный расчёт хеш значения для подписи (true - использовать).
  • timeout – тайм-аут подтверждения текста на экране Антифрод-терминала в 5-секундных долях (одна единица - пять секунд). 0 - ожидать бесконечно.
  • reference – параметр для добавления в журнал операций, представляет собой массив из 8 байт. Предназначен для защиты от попыток повторного навязывания перехваченного журнала вместе с копией уже однажды одобренного сервером документа.
  • langId – идентификатор языка, используемого для вывода на экран подтверждений (напр. Подтвердить или Confirm). Возможные значения: 0x419 – русский, 0x409 – английский.
  • messageIdx – индекс сообщения, используемого для подтверждений. Возможные значения: 0 - “Подтвердить”, 1 - “Подписать”.
  • callback – callback-функция JavaScript, которая будет выполнена после завершения работы метода. В случае ошибки или отмены операции в функцию будут переданы Error и код ошибки; в случае успешного завершения – массив байт, содержащий журнал операций в формате XML и подпись журнала (последние 64 байта этого массива).

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

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

Оглавление