Обзор сервиса и его компонентов
Сервис проверки и визуализации электронной подписи предлагает следующие возможности:
REST API для обработки документов и проверки подписей.
Визуализацию штампов электронной подписи для PDF-документов.
Создание отчетов о проверке подписей для документов других форматов.
Наш тестовый сервис позволяет загружать документы и подписи в различных форматах (поддерживается проверка подписей PADES для PDF). Для PDF-файлов есть возможность создавать копию с визуальным штампом, а для других форматов — формировать отчет.
Сервис использует следующие библиотеки из состава КриптоАРМ SDK:
trusted-crypto — для проверки подписей и сертификатов;
trusted-pdf — для работы с PDF.
Электронная подпись подтверждает авторство, неизменность и целостность данных. Однако бывает необходимо (например при для пользователей, работающих с бумажными копиями электронных документов), чтобы документы содержали отметку, визуально подтверждающую факт подписания. Визуализация электронной подписи — это добавление специального штампа на электронный документ, состоящего из:
фразы «Документ подписан электронной подписью»;
номера сертификата ключа подписи;
ФИО владельца сертификата;
срока действия сертификата;
дополнительных атрибутов, такие как эмблема или логотип (при необходимости).
Согласно п. 5.23 ГОСТ Р 7.0.97-2016 визуализация подписи должна быть аналогична месту подписи в бумажном документе, а также видимой и читаемой.
Первый шаг — загрузка документа и подписи с помощью метода `POST /api/v1/signature/verify`. Этот метод проверяет действительность электронной подписи.
**Запрос**:
- Метод: `POST /cms/verify`
- Заголовок: `Content-Type: multipart/form-data`
- Параметры:
- `data` ( `Base64`): документ, для которого нужно проверить подпись, если сама подпись открепленная.
- `cms` (обязательный, `Base64``): CMS подпись.
**Пример ответа**:
```
{
"status": 200,
"message": "",
"isValid": true,
"isValidSign": true,
"signs": [
{
"cadesTypeName": "CAdES-BES",
"certificate": {
"version": 3,
"status": true,
"subjectFriendlyName": "esia test3",
"issuerFriendlyName": "CRYPTO-PRO Test Center 2",
"subjectName": "CN=esia test3",
"issuerName": "E=support@cryptopro.ru\r\nC=RU\r\nL=Moscow\r\nO=CRYPTO-PRO LLC\r\nCN=CRYPTO-PRO Test Center 2",
"notAfter": "2024-10-26T16:25:37.000Z",
"notBefore": "2024-08-26T16:15:37.000Z",
"serialNumber": "120064ECE1352507757C00A08B00020064ECE1",
"thumbprint": "29063cd83537dbbd0a221705859b8f6e5bec5ad0",
"signatureAlgorithm": "1.2.643.7.1.1.3.2",
"signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",
"publicKeyAlgorithm": "1.2.643.7.1.1.1.1"
},
"certificateData": "MIIDEz...",
"issuerName": "E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2",
"serialNumber": "120064ECE1352507757C00A08B00020064ECE1",
"signatureAlgorithm": "1.2.643.7.1.1.3.2",
"signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",
"certs": [
{
"status": true,
"subjectFriendlyName": "esia test3",
"issuerFriendlyName": "CRYPTO-PRO Test Center 2",
"subjectName": "CN=esia test3",
"issuerName": "E=support@cryptopro.ru\r\nC=RU\r\nL=Moscow\r\nO=CRYPTO-PRO LLC\r\nCN=CRYPTO-PRO Test Center 2",
"notAfter": "2024-10-26T16:25:37.000Z",
"notBefore": "2024-08-26T16:15:37.000Z",
"serialNumber": "120064ECE1352507757C00A08B00020064ECE1",
"thumbprint": "29063cd83537dbbd0a221705859b8f6e5bec5ad0",
"signatureAlgorithm": "1.2.643.7.1.1.3.2",
"signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",
"publicKeyAlgorithm": "1.2.643.7.1.1.1.1"
}
],
"isCertChainValid": true
}
]
}
```
Для PDF-документов сервис позволяет добавить визуальный штамп, отображающий основные сведения о подписанте. Такой штамп делает документ наглядным и удобным для работы в бумажном виде.
Когда сервис получает документ в формате, отличном от PDF, вместо визуализации штампа можно запросить отчет о проверке подписи.
Итак, мы рассмотрели наш пример сервиса проверки и визуализации электронной подписи с REST API. Визуализация штампа упрощает работу с PDF-документами, а отчеты о проверке позволяют легко получить подтверждение подлинности для других типов документов.
Попробуйте бесплатную демонстрацию сервиса.
Используя исходный код тестового стенда вы можете реализовать свое решение. Мы всегда рады помочь с реализацией и расширить функционал, вопросы можно отправлять нам на почту sales@cryptoarm.ru.