Описание api
Для проверки открепленной подписи шлем пост запрос на /vsignf.phpС двума параметрами:
- hash — Хеш документа по GOST`у
- sign — подпись
В ответ прилетит json:Если ошибка до проверки сертификата:
Если проверка прошла:
{
"status":0, // 0 - все хорошо
"data":{
"verify":0, // Проверка 1 - пройдена подпись валидна, 0 - не пройдена подпсись не валидна
"verifyMessage":"сообщение об рошибки с кодом (0x800B010A)",
"signers":[ // подписанты
{
"signingTime":"", //дата подписания
"cert":{ // данные сертификата подписи
"validToDate":"16.05.2022 11:56:29", // Валиден до
"validFromDate":"16.02.2022 11:46:29", // Валиден от
"subjectName":{ // Данные подписанта
"C":"RU",
"CN":"Test"
},
"issuerName":{// Данные УЦ выдавшего сертификат
"CN":"CRYPTO-PRO Test Center 2",
"O":"CRYPTO-PRO LLC",
"L":"Moscow",
"C":"RU",
"E":"support@cryptopro.ru"
},
"certSerial":"120025DA...00025DAA0" // Серийный сертификата
}
}
]
}
}
Верификация
Класс CryptoHelper содержит несколько методов верификации данных:
| Метод | Аргументы | Описание |
|---|---|---|
| Verify | (string $data, $toBase64 = true) | Верификация строки |
| VerifyFile | (string $dataFilePath, $string $signFilePath = null) | Верификация файлов |
Зачем это нужно
Данный контейнер не претендует на истину в последней инстанции.Является больше пособием для развертывания CryptoPro CSP 4 в среде Linux:UbuntuДля продакшена его можно и нужно допиливать.
Использование
Полный пример использования можно посмотреть на странице examples/index.php.
Перед использованием
Перед использованием Crypto-PHP необходимо произвести установку КриптоПРО CSP и скомпилировать расширение libphpcades для вашей версии PHP.
Если подразумевается подписание данных, то дополнительно потребуется установить необходимые ключи для пользователя, из-под которого запущен веб-сервер.
Более подробно описано в инструкции по установке.
Подписание
Класс CryptoHelper содержит несколько методов подписания данных:
| Метод | Аргументы | Описание |
|---|---|---|
| Sign | (CryptoСertificate, string $data, $toBase64 = true) | Подписание строки |
| SignFile | (CryptoСertificate, string $dataFilePath, $string $signFilePath = null) | Подписание файла и сохранение в файл $signFilePath (если указан) |
Получение сертификатов
Их хранилища пользователя запрашиваются только активные и валидные сертификаты.
Установка
Предполагается что у вас установлен Docker.
