Как работать с Crypto API

Юридически значимый электронный документооборот требует формирования электронных подписей (ЭП). Продукт поддерживает два способа формирования подписей:

  • локальное подписание;

  • серверное подписание.

Crypto API используется в Продукте для сценариев серверного подписания.

Серверное подписание предполагает, что сертификат для создания ЭП находится не на машине пользователя, а хранится на сервере. В зависимости от того, какой криптопровайдер выбран (локальный, облачный, защищенное хранилище КриптоПро HSM), «сервером» может быть как машина, на которой развернут Crypto API, так и удаленный хост, на котором работает криптопровайдер.

Crypto API предоставляет единый программный интерфейс для доступа к выбранной реализации криптопровайдера.

Примечание

По умолчанию Продукт поставляется с криптопровайдером на основе установленного на сервере КриптоПро CSP.

Как формировать исходящую подпись

Общий порядок формирования исходящей ЭП следующий:

  • Определить сертификат, с помощью которого будут подписаны данные. Для этого либо запросить список сертификатов и дать пользователю выбрать нужный, либо определить сертификат по отпечатку. Отпечаток может храниться в настройках пользователя во внешней системе.

  • Создать и отправить запрос на формирование ЭП, передав выбранный сертификат и данные для подписания. Сертификат можно передать как с помощью отпечатка, так и в виде массива байт (содержимое cer-файла, без закрытого ключа).

  • При необходимости создать и отправить запрос на улучшение ЭП.

Что делать с входящей подписью

При получении входящей подписи с ней можно выполнить следующие действия:

  • Проверить, если автоматическая проверка подписей отключена в настройках Продукта либо если нужно получить информацию о сертификате подписанта.

  • Улучшить, если автоматическое улучшение подписей отключено в настройках Продукта.

Как шифровать и расшифровывать данные

Crypto API может использоваться для асимметричного шифрования и расшифровки данных, например, для обмена зашифрованными документами.

Для обмена зашифрованными документами нужно:

  • Подписать документы с помощью сертификата отправителя.

  • Зашифровать документы с помощью сертификата получателя на стороне отправителя. Шифрование происходит открытым ключом сертификата.

  • Отправить зашифрованные документы и подписи к ним получателю.

  • На стороне получателя расшифровать документы с помощью сертификата получателя. Расшифровка происходит закрытым ключом сертификата. Таким образом, прочитать документы сможет только владелец сертификата.

  • Далее работать с расшифрованными документами и подписями к ним.