From 9cf1b4fca018e055c78db63fc52e3f21e30432c5 Mon Sep 17 00:00:00 2001 From: Nikita Zarubin Date: Fri, 15 Oct 2021 12:03:05 +0300 Subject: [PATCH] master --- CryptoProCli.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/CryptoProCli.php b/CryptoProCli.php index bc78dc3..a944981 100644 --- a/CryptoProCli.php +++ b/CryptoProCli.php @@ -137,10 +137,11 @@ private static function getDevNull() return '/dev/null'; } + CONST ERROR_CODE_WRONG_SIGN = '0x200001f9'; const ERROR_CODE_MESSAGE = [ '0x20000133' => 'Цепочка сертификатов не проверена', - '0x200001f9' => 'Подпись не верна', - '0x2000012d' => 'Сетификаты не найдены', + self::ERROR_CODE_WRONG_SIGN => 'Подпись не верна', + '0x2000012d' => 'Сертификаты не найдены', '0x2000012e' => 'Более одного сертификата', ]; @@ -160,7 +161,12 @@ public static function verifyFile($file) preg_match('#\[ErrorCode: (.+)\]#', $result, $matches); $code = strtolower($matches[1]); if (isset(self::ERROR_CODE_MESSAGE[$code])) { - throw new SignatureError(self::ERROR_CODE_MESSAGE[$code]); + $message = self::ERROR_CODE_MESSAGE[$code]; + //Дополнительная расшифровка ошибки + if (strpos($result, 'The certificate or certificate chain is based on an untrusted root') !== false) { + $message .= ' - нет доверия к корневому сертификату УЦ, выпустившего эту подпись.'; + } + throw new SignatureError($message); } throw new Cli("Неожиданный результат $shellCommand: \n$result"); }