МенеджерКриптографии.ПроверитьМеткуВремени

Методы · VerifyTimeStamp

Метод выполняет проверку метки времени для переданной подписи криптографии: Соответствие хеша, указанного в метке времени, хешу полей подписи. Корректность сертификата метки. Корректность подписи на метке времени. При возникновении ошибки проверки, будет сгенерировано исключение с описанием ошибки.

Синтаксис

ПроверитьМеткуВремени(<Подпись>, <МеткаВремени>)

Примеры платформы

МенеджерКриптографии.ПроверитьПодпись(ИсходныйФайл,
                                    ДвоичныеДанныеПодписи, Истина);
КонтейнерПодписей = Новый КонтейнерПодписейКриптографии(
                                        ДвоичныеДанныеПодписи);
Для каждого Подпись Из КонтейнерПодписей.Подписи Цикл
    Если Подпись.МеткаВремениПодписи.Подпись.АлгоритмПодписи =
                                                    "1.2.643.7.1.2.5.1.1" Тогда
        МенеджерКриптографии.ПроверитьМеткуВремени(Подпись,
                                Подпись.МеткаВремениПодписи);
    Иначе
        Сообщить("Алгоритм подписи не поддерживается криптопровайдером");
    КонецЕсли;
    МенеджерКриптографии.ПроверитьМеткуВремени(
                              Подпись,
                           Подпись.МеткаВремениДанныхПроверкиПодписи);
    Для каждого АрхивнаяМетка из Подпись.АрхивныеМеткиВремени Цикл
        МенеджерКриптографии.ПроверитьМеткуВремени(Подпись, АрхивнаяМетка);
    КонецЦикла;
КонецЦикла;
Полное описание, параметры и ограничения

МенеджерКриптографии.ПроверитьМеткуВремени (CryptoManager.VerifyTimeStamp)

МенеджерКриптографии (CryptoManager)

ПроверитьМеткуВремени (VerifyTimeStamp)

Доступен, начиная с версии 8.3.20.

Синтаксис:
ПроверитьМеткуВремени(<Подпись>, <МеткаВремени>)
Параметры:

<Подпись> (обязательный)
Тип: ПодписьКриптографии.
Подпись из контейнера подписей.

<МеткаВремени> (обязательный)
Тип: МеткаВремениКриптографии.
Проверяемая метка времени.
Возвращаемое значение:
Тип: Неопределено.

Описание:

Метод выполняет проверку метки времени для переданной подписи криптографии:
Соответствие хеша, указанного в метке времени, хешу полей подписи.

Корректность сертификата метки.

Корректность подписи на метке времени.
При возникновении ошибки проверки, будет сгенерировано исключение с описанием ошибки.

Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Пример:

// Проверяем до уровня CAdES-BES

МенеджерКриптографии.ПроверитьПодпись(ИсходныйФайл,
ДвоичныеДанныеПодписи, Истина);

КонтейнерПодписей = Новый КонтейнерПодписейКриптографии(
ДвоичныеДанныеПодписи);
Для каждого Подпись Из КонтейнерПодписей.Подписи Цикл
// проверяем метку времени подписи

Если Подпись.МеткаВремениПодписи.Подпись.АлгоритмПодписи =
"1.2.643.7.1.2.5.1.1" Тогда
МенеджерКриптографии.ПроверитьМеткуВремени(Подпись,
Подпись.МеткаВремениПодписи);
Иначе
Сообщить("Алгоритм подписи не поддерживается криптопровайдером");
КонецЕсли;

// Проверяем метку времени данных проверки

МенеджерКриптографии.ПроверитьМеткуВремени(
Подпись,
Подпись.МеткаВремениДанныхПроверкиПодписи);

// Проверяем все архивные метки времени

Для каждого АрхивнаяМетка из Подпись.АрхивныеМеткиВремени Цикл
МенеджерКриптографии.ПроверитьМеткуВремени(Подпись, АрхивнаяМетка);
КонецЦикла;
КонецЦикла;

Использование в версии:

Доступен, начиная с версии 8.3.20.

Описание изменено в версии 8.3.22.

Методическая информация

Практические примеры

Проверить настоящую метку собственной подписи

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

Где и как запускать

Синтаксический пример для толстого клиента Windows в своей учебной форме. Фрагмент без процедуры вставляется в тело обработчика. Здесь компоненты, COM и криптография не запускались.

Подготовка

  1. В своём учебном Windows-приложении заранее установите поддерживаемый криптопровайдер. В коде выбран Microsoft Enhanced RSA and AES Cryptographic Provider с типом 24; если его нет, этот пример не подготовлен.

  2. Подготовьте собственную действительную подпись CAdES-BES в файле C:\УчебныеДанные\заказ.p7s. Для проверки метки используйте свою подпись CAdES-T с настоящей меткой. Произвольный текст с расширением p7s не является подписью.

  3. Для получения метки создайте строковый реквизит формы АдресСервераМеток и заполните действительным адресом разрешённого учебного TSA. Подготовьте доверие сертификатам и разрешение на обращение к этому сервису. Здесь сервис не вызывается.

Крипто = Новый МенеджерКриптографии("Microsoft Enhanced RSA and AES Cryptographic Provider", "", 24);
Контейнер = Крипто.ПолучитьКонтейнерПодписейКриптографии("C:\УчебныеДанные\заказ.p7s");
Если Контейнер.Подписи.Количество() > 0 Тогда
    Подпись = Контейнер.Подписи[0];
    Метка = Подпись.МеткаВремениПодписи;
    Если Метка <> Неопределено Тогда
        Крипто.ПроверитьМеткуВремени(Подпись, Метка);
        Сообщить("Проверка метки выполнена без исключения");
    КонецЕсли;
КонецЕсли;

Разбор по шагам

  1. Разберите собственную подпись в контейнер.

  2. Возьмите существующую первую подпись и её настоящую метку, если они есть.

  3. Вызовите проверку без присваивания выдуманного булева результата.

Как проверить результат

  1. При отсутствии подписей или метки проверка не выполняется.

  2. Сообщение после проверки означает отсутствие исключения в этом вызове, не проверку всей бизнес-операции.

Ожидаемый результат

Показан синтаксис для указанной подготовки. Здесь код не запускался; реальные результаты и побочные эффекты проверяются только при будущем осознанном выполнении в своём учебном приложении.

На что обратить внимание

  1. Метод возвращает Неопределено; ошибка проверки порождает исключение.

  2. Доверие, срок действия и доступные данные цепочки должны быть подготовлены для своего учебного сертификата.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.