---
title: Сервис криптографии клиент
slug: bsp/сервис-криптографии-клиент
---


## Зашифровать
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

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

Пример вызова
```bsl
СервисКриптографииКлиент.Зашифровать(ОповещениеОЗавершении, Данные, Получатели, ТипШифрования, ПараметрыШифрования);
```
</details>

## ЗашифроватьБлок
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

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

Пример вызова
```bsl
СервисКриптографииКлиент.ЗашифроватьБлок(ОповещениеОЗавершении, Данные, Получатель) 
```
</details>

## Расшифровать
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

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

Пример вызова
```bsl
СервисКриптографииКлиент.Расшифровать(ОповещениеОЗавершении, ЗашифрованныеДанные, ТипШифрования, ПараметрыШифрования);
```
</details>

## РасшифроватьБлок
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

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

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

## Подписать
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

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

Пример вызова
```bsl
СервисКриптографииКлиент.Подписать(ОповещениеОЗавершении, Данные, Подписант, ТипПодписи, ПараметрыПодписания);
```
</details>

## ПроверитьПодпись
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

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

Пример вызова
```bsl
СервисКриптографииКлиент.ПроверитьПодпись(ОповещениеОЗавершении, Подпись, Данные, ТипПодписи, ПараметрыПодписания);
```
</details>

## ПроверитьСертификат
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

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

Пример вызова
```bsl
СервисКриптографииКлиент.ПроверитьСертификат(ОповещениеОЗавершении, Сертификат) 
```
</details>

## ПроверитьСертификатСПараметрами
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

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

Пример вызова
```bsl
СервисКриптографииКлиент.ПроверитьСертификатСПараметрами(ОповещениеОЗавершении, Сертификат, ПараметрыПроверки) 
```
</details>

## ПолучитьСвойстваСертификата
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает основные свойства переданного сертификата.
//
// Параметры:
//   ОповещениеОЗавершении - ОписаниеОповещения - описание процедуры, принимающей результат:
//     * Результат - Структура - результат выполнения процедуры:
//       ** Выполнено - Булево - если Истина, то процедура успешно выполнена и получен результат. Иначе см. ИнформацияОбОшибке.
//       ** ИнформацияОбОшибке - ИнформацияОбОшибке - описание ошибки выполнения.
//       ** Сертификат - ФиксированнаяСтруктура - свойства сертификата:
//           *** Версия - Строка - версия сертификата.
//           *** ДатаНачала - Дата - дата начала действия сертификата (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.
//           ** СерийныйНомер - ДвоичныеДанные - серийный номер сертификата.
//           ** Субъект - ФиксированнаяСтруктура - информацию о субъекте сертификата. Состав см. Издатель.
//           ** Сертификат - ДвоичныеДанные - файл сертификата в кодировке DER.
//           ** Идентификатор - Строка - вычисляется по ключевым свойствам Издателя и серийному номеру по алгоритму SHA1.
//                                  Используется для идентификации сертификата в сервисе криптографии.
//
//   Сертификат - ДвоичныеДанные - сертификат, свойства которого необходимо получить.
//
Процедура ПолучитьСвойстваСертификата(ОповещениеОЗавершении, Сертификат) Экспорт
```

Пример вызова
```bsl
СервисКриптографииКлиент.ПолучитьСвойстваСертификата(ОповещениеОЗавершении, Сертификат) 
```
</details>

## ПолучитьСертификатыИзПодписи
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

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

Пример вызова
```bsl
СервисКриптографииКлиент.ПолучитьСертификатыИзПодписи(ОповещениеОЗавершении, Подпись) 
```
</details>

## ХешированиеДанных
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Выполняет расчет хеш-суммы по переданным данным.
//
// Параметры:
//   ОповещениеОЗавершении - ОписаниеОповещения - описание процедуры, принимающей результат:
//     * Результат - Структура - результат выполнения процедуры:
//       ** Выполнено      - Булево - если Истина, то процедура успешно выполнена и получен результат, иначе см. ИнформацияОбОшибке.
//       ** ИнформацияОбОшибке - ИнформацияОбОшибке - описание ошибки выполнения.
//       ** Хеш  - ДвоичныеДанные - значение хеш-суммы.
//
//   Данные - ДвоичныеДанные, Строка - двоичные данные или адрес во временном хранилище файла данных,
//                                     от которых необходимо посчитать хеш-сумму.
//   АлгоритмХеширования - Строка - константа из списка "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", ПараметрыХеширования = Неопределено) Экспорт
```

Пример вызова
```bsl
СервисКриптографииКлиент.ХешированиеДанных(ОповещениеОЗавершении, Данные, АлгоритмХеширования, ПараметрыХеширования);
```
</details>

---

© 2024, **ООО 1С-Софт**  
Все права защищены. Эта программа и сопроводительные материалы предоставляются  
в соответствии с условиями лицензии [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode).

---
