Skip to content

Сервис криптографии

Зашифровать

Описание, пример вызова
// Шифрует данные для заданного списка получателей.
//
// Параметры:
// Данные - ДвоичныеДанные, Строка, Массив - один или несколько файлов, которые необходимо зашифровать.
// Двоичные данные или адрес во временном хранилище файла данных,
// который необходимо зашифровать.
//
// Получатели - ДвоичныеДанные - файлов сертификатов
// - Структура, ФиксированнаяСтруктура - параметры для поиска сертификатов в хранилище:
// * Отпечаток - ДвоичныеДанные, Строка - отпечаток сертификата,
// или
// * СерийныйНомер - ДвоичныеДанные, Строка - серийный номер сертификата,
// * Издатель - Структура, ФиксированнаяСтруктура, Строка - свойства издателя
// или
// * Сертификат - ДвоичныеДанные - файл сертификата.
// - Массив, ФиксированныйМассив - сертификаты получателей зашифрованного сообщения.
//
// ТипШифрования - Строка - тип шифрования. Поддерживается только CMS.
//
// ПараметрыШифрования - Структура, ФиксированнаяСтруктура - позволяет указать дополнительные параметры шифрования.
//
// Возвращаемое значение:
// ДвоичныеДанные, Строка - зашифрованные данные. Если данные переданы через временное хранилище,
// то и результат будет возвращен также.
//
Функция Зашифровать(Данные, Получатели, ТипШифрования = "CMS", ПараметрыШифрования = Неопределено) Экспорт

Пример вызова

Результат = СервисКриптографии.Зашифровать(Данные, Получатели, ТипШифрования, ПараметрыШифрования);

ЗашифроватьБлок

Описание, пример вызова
// Шифрует блок данных для получателя.
//
// Параметры:
// Данные - ДвоичныеДанные, Строка - двоичные данные или адрес во временном хранилище файла данных,
// который необходимо зашифровать.
//
// Получатель - ДвоичныеДанные - файлов сертификатов
// - Структура, ФиксированнаяСтруктура - параметры для поиска сертификатов в хранилище:
// * Отпечаток - ДвоичныеДанные, Строка - отпечаток сертификат.
// или
// * СерийныйНомер - ДвоичныеДанные, Строка - серийный номер сертификата.
// * Издатель - Структура, ФиксированнаяСтруктура, Строка - свойства издателя
// или
// * Сертификат - ДвоичныеДанные - файл сертификата.
//
// Возвращаемое значение:
// ДвоичныеДанные, Строка - зашифрованные данные. Если данные переданы через временное хранилище,
// то и результат будет возвращен также.
//
Функция ЗашифроватьБлок(Данные, Получатель) Экспорт

Пример вызова

Результат = СервисКриптографии.ЗашифроватьБлок(Данные, Получатель)

Расшифровать

Описание, пример вызова
// Выполняет расшифровку данных.
//
// Параметры:
// ЗашифрованныеДанные - ДвоичныеДанные, Строка - двоичные данные или адрес во временном хранилище файла данных,
// который необходимо расшифровать.
//
// Сертификат - Структура - сертификат, который необходимо использовать для расшифровки:
// * Идентификатор - Строка - идентификатор сертификата.
//
// ТипШифрования - Строка - поддерживается только CMS.
//
// ПараметрыШифрования - Структура, ФиксированнаяСтруктура - позволяет указать дополнительные параметры шифрования:
// * ИспользоватьДлительныйМаркерБезопасности - Булево - Если Истина, то для расшифровки можно использовать длительный маркер безопасности.
// Ложь - значение по умолчанию.
//
// Возвращаемое значение:
// ДвоичныеДанные - расшифрованные данные,
// Строка - расшифрованные данные, если данные переданы через временное хранилище,
// Структура - Описание ошибки выполнения:
// * КодВозврата - Строка - код ошибки.
// * Идентификатор - Строка - идентификатор сертификата.
//
Функция Расшифровать(ЗашифрованныеДанные, Сертификат, ТипШифрования = "CMS", ПараметрыШифрования = Неопределено) Экспорт

Пример вызова

Результат = СервисКриптографии.Расшифровать(ЗашифрованныеДанные, Сертификат, ТипШифрования, ПараметрыШифрования);

РасшифроватьПереборомСертификатов

Описание, пример вызова
// Выполняет расшифровку данных перебором сертификатов из криптосообщения.
//
// Параметры:
// ЗашифрованныеДанные - ДвоичныеДанные, Строка - двоичные данные или адрес во временном хранилище файла данных,
// который необходимо расшифровать.
//
// ТипШифрования - Строка - поддерживается только CMS.
//
// ПараметрыШифрования - Структура, ФиксированнаяСтруктура - позволяет указать дополнительные параметры шифрования.
// * ИспользоватьДлительныйМаркерБезопасности - Булево - Если Истина, то для расшифровки можно использовать длительный маркер безопасности.
// Ложь - значение по умолчанию.
//
// Возвращаемое значение:
// ДвоичныеДанные, Строка - расшифрованные данные. Если данные переданы через временное хранилище,
// то и результат будет возвращен также.
// Структура - Описание ошибки выполнения.
// * КодВозврата - Строка - код ошибки.
// * Идентификатор - Строка - идентификатор сертификата.
//
Функция РасшифроватьПереборомСертификатов(ЗашифрованныеДанные, ТипШифрования = "CMS", ПараметрыШифрования = Неопределено) Экспорт

Пример вызова

Результат = СервисКриптографии.РасшифроватьПереборомСертификатов(ЗашифрованныеДанные, ТипШифрования, ПараметрыШифрования);

РасшифроватьБлок

Описание, пример вызова
// Выполняет расшифровку блока данных.
//
// Параметры:
// ЗашифрованныеДанные - ДвоичныеДанные, Строка - двоичные данные или адрес во временном хранилище файла данных,
// который необходимо расшифровать.
//
// Получатель - ДвоичныеДанные - файл сертификата получателя зашифрованного сообщения
// - Структура, ФиксированнаяСтруктура - параметры для поиска сертификатов в хранилище:
// * Идентификатор - Строка - идентификатор сертификата.
//
// КлючеваяИнформация - Структура, ФиксированнаяСтруктура - позволяет передать данные о ключах шифрования в запрос:
// * ephemeral_key - ДвоичныеДанные, Строка - в base64, эфемерный ключ
// * session_key - ДвоичныеДанные, Строка - в base64, сессионный ключ
// * iv_data - ДвоичныеДанные, Строка - в base64, данные вектора инициализации
//
// ПараметрыШифрования - Структура, ФиксированнаяСтруктура - позволяет указать дополнительные параметры шифрования.
//
// Возвращаемое значение:
// ДвоичныеДанные - расшифрованные данные;
// Строка - расшифрованные данные, если данные переданы через временное хранилище;
// Структура - описание ошибки выполнения:
// * КодВозврата - Строка - код ошибки.
// * Идентификатор - Строка - идентификатор сертификата.
//
Функция РасшифроватьБлок(ЗашифрованныеДанные, Получатель, КлючеваяИнформация, ПараметрыШифрования = Неопределено) Экспорт

Пример вызова

Результат = СервисКриптографии.РасшифроватьБлок(ЗашифрованныеДанные, Получатель, КлючеваяИнформация, ПараметрыШифрования);

Подписать

Описание, пример вызова
// Выполняет подписание данных.
//
// Параметры:
// Данные - ДвоичныеДанные, Строка, Массив - один или несколько файлов, которые необходимо подписать.
// Двоичные данные или адрес во временном хранилище файла данных,
// который необходимо подписать.
//
// Подписант - ДвоичныеДанные - файла сертификата для подписания.
// - Структура, ФиксированнаяСтруктура - параметры для поиска сертификата в хранилище.
// * Отпечаток - ДвоичныеДанные, Строка - отпечаток сертификат.
// или
// * СерийныйНомер - ДвоичныеДанные, Строка - серийный номер сертификата.
// * Издатель - Структура, ФиксированнаяСтруктура, Строка - свойства издателя.
// или
// * Сертификат - ДвоичныеДанные - файл сертификата.
//
// ТипПодписи - Строка - тип подписи. Поддерживаются только "CMS" или "GOST3410".
//
// ПараметрыПодписания - Структура, ФиксированнаяСтруктура - позволяет указать дополнительные параметры подписания:
// * ОтсоединеннаяПодпись - Булево - поддерживается только CMS, если Истина, то будет сформирована отсоединенная подпись, иначе - присоединенная.
// Истина - значение по умолчанию.
// * ИспользоватьДлительныйМаркерБезопасности - Булево - Если Истина, то для расшифровки можно использовать длительный маркер безопасности.
// Ложь - значение по умолчанию.
//
// Возвращаемое значение:
// ДвоичныеДанные - подпись;
// Строка - подпись, если данные переданы через временное хранилище;
// Структура - описание ошибки выполнения:
// * КодВозврата - Строка - код ошибки.
// * Идентификатор - Строка - идентификатор сертификата.
//
Функция Подписать(Данные, Подписант, ТипПодписи = "CMS", ПараметрыПодписания = Неопределено) Экспорт

Пример вызова

Результат = СервисКриптографии.Подписать(Данные, Подписант, ТипПодписи, ПараметрыПодписания);

ПроверитьПодпись

Описание, пример вызова
// Выполняет проверку подписи.
//
// Параметры:
// Подпись - ДвоичныеДанные - подпись, которую необходимо проверить.
//
// Данные - ДвоичныеДанные - исходные данные, необходимые для проверки подписи. Используется для проверки ОтсоединеннаяПодпись.
//
// ТипПодписи - Строка - тип подписи. Поддерживаются только "CMS" или "GOST3410".
//
// ПараметрыПодписания - Структура, ФиксированнаяСтруктура - позволяет указать дополнительные параметры подписания.
// * ОтсоединеннаяПодпись - Булево - используется совместно с ТипПодписи = "CMS", если Истина, то подпись будет проверяться с использованием Данные.
// Истина - значение по умолчанию.
// * Сертификат - ДвоичныеДанные - файл сертификата, обязательно используется совместно с ТипПодписи = "GOST3410".
//
// Возвращаемое значение:
// Булево - если Истина, то подпись действительна.
//
Функция ПроверитьПодпись(Подпись, Данные = Неопределено, ТипПодписи = "CMS", ПараметрыПодписания = Неопределено) Экспорт

Пример вызова

Результат = СервисКриптографии.ПроверитьПодпись(Подпись, Данные, ТипПодписи, ПараметрыПодписания);

ХешированиеДанных

Описание, пример вызова
// Выполняет расчет хеш-суммы по переданным данным.
//
// Параметры:
// Данные - ДвоичныеДанные, Строка - двоичные данные или адрес во временном хранилище файла данных,
// от которых необходимо посчитать хеш-сумму.
// АлгоритмХеширования - Строка - константа из списка "GOST R 34.11-94", "GOST R 34.11-2012 256", "GOST R 34.11-2012 512".
//
// ПараметрыХеширования - Структура, ФиксированнаяСтруктура - позволяет указать дополнительные параметры хеширования.
// * ИнвертироватьПолубайты - Булево - управляет инвертированием полубайт в значении хеш-суммы. Применяется только для "GOST R 34.11-94"
// Например, прямой порядок - 62 FB, обратный - 26 BF.
// Истина - значение по умолчанию.
//
// Возвращаемое значение:
// ДвоичныеДанные - значение хеш-суммы.
//
Функция ХешированиеДанных(Данные, АлгоритмХеширования = "GOST R 34.11-94", ПараметрыХеширования = Неопределено) Экспорт

Пример вызова

Результат = СервисКриптографии.ХешированиеДанных(Данные, АлгоритмХеширования, ПараметрыХеширования);

ПроверитьСертификат

Описание, пример вызова
// Выполняет проверку сертификата.
//
// Параметры:
// Сертификат - ДвоичныеДанные - файл сертификата.
//
// Возвращаемое значение:
// Булево - если Истина, то сертификат действителен.
//
Функция ПроверитьСертификат(Сертификат) Экспорт

Пример вызова

Результат = СервисКриптографии.ПроверитьСертификат(Сертификат)

ПроверитьСертификатСПараметрами

Описание, пример вызова
// Выполняет проверку сертификата с дополнительными параметрами
//
// Параметры:
// Сертификат - ДвоичныеДанные - файл сертификата.
// ПараметрыПроверки - Структура - содержит дополнительные параметры проверки.
// * РежимПроверкиСертификата - Строка - обрабатываются варианты "ИгнорироватьВремяДействия",
// "ИгнорироватьДействительностьПодписи",
// "ИгнорироватьПроверкуВСпискеОтозванныхСертификатов",
// "РазрешитьТестовыеСертификаты"
//
// Возвращаемое значение:
// Булево - если Истина, то сертификат действителен.
//
Функция ПроверитьСертификатСПараметрами(Сертификат, ПараметрыПроверки) Экспорт

Пример вызова

Результат = СервисКриптографии.ПроверитьСертификатСПараметрами(Сертификат, ПараметрыПроверки)

ПолучитьСвойстваСертификата

Описание, пример вызова
// Получает основные свойства переданного сертификата.
//
// Параметры:
// Сертификат - ДвоичныеДанные - сертификат, свойства которого необходимо получить.
//
// Возвращаемое значение:
// ФиксированнаяСтруктура - свойства сертификата:
// * Версия - Строка - версия сертификата.
// * ДатаНачала - Дата - дата начала действия сертификата (UTC).
// * ДатаОкончания - Дата - дата окончания действия сертификата (UTC).
// * Издатель - ФиксированнаяСтруктура - информация об издателе сертификата:
// ** CN - Строка - commonName
// ** O - Строка - organizationName;
// ** OU - Строка - organizationUnitName;
// ** C - Строка - countryName;
// ** ST - Строка - stateOrProvinceName;
// ** L - Строка - localityName;
// ** E - Строка - emailAddress;
// ** SN - Строка - surname;
// ** GN - Строка - givenName;
// ** T - Строка - title;
// ** STREET - Строка - streetAddress;
// ** OGRN - Строка - ОГРН;
// ** OGRNIP - Строка - ОГРНИП;
// ** INN - Строка - ИНН (не обязательный);
// ** INNLE - Строка - ИНН ЮЛ (не обязательный);
// ** SNILS - Строка - СНИЛС;
// ...
// * ИспользоватьДляПодписи - Булево - указывает, можно ли использовать данный сертификат для подписи.
// * ИспользоватьДляШифрования - Булево - указывает, можно ли использовать данный сертификат для шифрования.
// * ОткрытыйКлюч - ДвоичныеДанные - содержит данные открытого ключа.
// * Отпечаток - ДвоичныеДанные - содержит данные отпечатка. Вычисляется динамически, по алгоритму SHA-1.
// * РасширенныеСвойства - ФиксированнаяСтруктура - расширенные свойства сертификата:
// ** EKU - ФиксированныйМассив из Произвольный - Enhanced Key Usage.
// * СерийныйНомер - ДвоичныеДанные - серийный номер сертификата.
// * Субъект - ФиксированнаяСтруктура - информацию о субъекте сертификата. Состав см. Издатель:
// ** CN - Строка - commonName ...
// * Сертификат - ДвоичныеДанные - файл сертификата в кодировке DER.
// * Идентификатор - Строка - вычисляется по ключевым свойствам Издателя и серийному номеру по алгоритму SHA1.
// Используется для идентификации сертификата в сервисе криптографии.
//
Функция ПолучитьСвойстваСертификата(Сертификат) Экспорт

Пример вызова

Результат = СервисКриптографии.ПолучитьСвойстваСертификата(Сертификат)

ПолучитьСертификатыИзПодписи

Описание, пример вызова
// Извлекает массив сертификатов из данных подписи.
//
// Параметры:
// Подпись - ДвоичныеДанные - файл подписи.
//
// Возвращаемое значение:
// Массив из ФиксированнаяСтруктура - со свойствами сертификатов:
// * Издатель - ФиксированнаяСтруктура - информация об издателе сертификата:
// ** CN - Строка - commonName;
// ** O - Строка - organizationName;
// ** OU - Строка - organizationUnitName;
// ** C - Строка - countryName;
// ** ST - Строка - stateOrProvinceName;
// ** L - Строка - localityName;
// ** E - Строка - emailAddress;
// ** SN - Строка - surname;
// ** GN - Строка - givenName;
// ** T - Строка - title;
// ** STREET - Строка - streetAddress;
// ** OGRN - Строка - ОГРН;
// ** OGRNIP - Строка - ОГРНИП;
// ** INN - Строка - ИНН;
// ** INNLE - Строка - ИНН ЮЛ (не обязательный);
// ** SNILS - Строка - СНИЛС;
// * СерийныйНомер - ДвоичныеДанные - серийный номер сертификата.
// * Сертификат - ДвоичныеДанные - файл сертификата в кодировке DER.
// * Идентификатор - Строка - вычисляется по ключевым свойствам Издателя и серийному номеру по алгоритму SHA1.
// Используется для идентификации сертификата в сервисе криптографии.
//
Функция ПолучитьСертификатыИзПодписи(Подпись) Экспорт

Пример вызова

Результат = СервисКриптографии.ПолучитьСертификатыИзПодписи(Подпись)

ПолучитьСвойстваКриптосообщения

Описание, пример вызова
// Извлекает свойства из файла криптосообщения.
//
// Параметры:
// Криптосообщение - ДвоичныеДанные, Строка - двоичные данные или адрес во временном хранилище файла криптосообщения.
// ТолькоКлючевыеСвойства - Булево - если Истина, то Содержимое будет возвращаться всегда пустое.
//
// Возвращаемое значение:
// Структура - свойства криптосообщения:
// * Размер - Число - размер файла в байтах.
// * Тип - Строка - указывает тип сообщения: envelopedData, signedData, unknown.
// * Получатели - ФиксированныйМассив Из Структура - описание сертификатов получателей зашифрованного сообщения. Только для Тип="envelopedData":
// ** Идентификатор - Строка - вычисляется по ключевым свойствам Издателя и серийному номеру по алгоритму SHA1,
// остальные поля см. ПолучитьСвойстваСертификата.
// * Подписанты - ФиксированныйМассив Из Структура - описание сертификатов получателей зашифрованного сообщения. Только для Тип="signedData":
// ** Идентификатор - Строка - вычисляется по ключевым свойствам Издателя и серийному номеру по алгоритму SHA1.
// остальные поля см. ПолучитьСвойстваСертификата.
// * Содержимое - ДвоичныеДанные - содержимое криптосообщения.
//
Функция ПолучитьСвойстваКриптосообщения(Криптосообщение, ТолькоКлючевыеСвойства = Ложь) Экспорт

Пример вызова

Результат = СервисКриптографии.ПолучитьСвойстваКриптосообщения(Криптосообщение, ТолькоКлючевыеСвойства);

ПолучитьНастройкиПолученияВременныхПаролей

Описание, пример вызова
// Получает возможные способы доставки временных паролей.
//
// Параметры:
// ИдентификаторСертификата - Строка - идентификатор сертификата, для которого необходимо получить способы доставки паролей.
//
// Возвращаемое значение:
// Структура - содержит ключи:
// * Телефон - Строка - замаскированное представление телефона для получения временных паролей в SMS.
// * ЭлектроннаяПочта - Строка - замаскированное представление электронной почты для получения временных паролей в письмах.
//
Функция ПолучитьНастройкиПолученияВременныхПаролей(ИдентификаторСертификата) Экспорт

Пример вызова

Результат = СервисКриптографии.ПолучитьНастройкиПолученияВременныхПаролей(ИдентификаторСертификата)

ПолучитьВременныйПароль

Описание, пример вызова
// Запрашивает у сервиса криптографии отправку временного пароля.
//
// Параметры:
// ИдентификаторСертификата - Строка - Идентификатора сертификата, для которого требуется временный пароль.
// ПовторнаяОтправка - Булево - Истина, если запрос является повторным.
// СпособДоставкиПаролей - Строка - Одно из значений: "phone" или "email".
// ИдентификаторСессии - Строка - идентификатор сессии
//
// Возвращаемое значение:
// Структура - содержит ключи:
// * ЗадержкаПередПовторнойОтправкой - Число - Число секунд перед повторным запросом нового пароля.
// * ВремяДействияПароля - Число - Число секунд, в течение которых действует высланный пароль.
// * ИдентификаторСессии - Строка - если есть "session_id".
//
Функция ПолучитьВременныйПароль(ИдентификаторСертификата, ПовторнаяОтправка, СпособДоставкиПаролей, ИдентификаторСессии = Неопределено) Экспорт

Пример вызова

Результат = СервисКриптографии.ПолучитьВременныйПароль(ИдентификаторСертификата, ПовторнаяОтправка, СпособДоставкиПаролей, ИдентификаторСессии);

ПодтвердитьВременныйПароль

Описание, пример вызова
// Отправляет сервису криптографии ранее полученный временный пароль и запрашивает маркеры безопасности для него.
//
// Параметры:
// ИдентификаторСертификата - Строка - Идентификатор сертификата, с помощью которого планируется подписание.
// ВременныйПароль - Строка - Временный пароль, ранее присланный сервисом криптографии.
//
Процедура ПодтвердитьВременныйПароль(ИдентификаторСертификата, ВременныйПароль) Экспорт

Пример вызова

СервисКриптографии.ПодтвердитьВременныйПароль(ИдентификаторСертификата, ВременныйПароль)

МаркерыБезопасности

Описание, пример вызова
// Пытается получить ранее сохраненные маркеры безопасности: сессионный и долговременный
//
// Параметры:
// ИдентификаторСертификата - Строка - Идентификатор сертификата, с помощью которого планируется подписание.
// ИспользоватьДлительныйМаркерБезопасности - Булево - признак поиска долговременного токена.
//
// Возвращаемое значение:
// Структура - маркер:
// * МаркерБезопасности - Строка
// * ДлительныйМаркерБезопасности - Строка
Функция МаркерыБезопасности(ИдентификаторСертификата, ИспользоватьДлительныйМаркерБезопасности) Экспорт

Пример вызова

Результат = СервисКриптографии.МаркерыБезопасности(ИдентификаторСертификата, ИспользоватьДлительныйМаркерБезопасности)

© 2024, ООО 1С-Софт
Все права защищены. Эта программа и сопроводительные материалы предоставляются
в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0).