Прописал новые константы и добавил ENCODING_TYPE при работе с хэшами

This commit is contained in:
Artem Vasilev 2022-11-15 12:09:34 +03:00
parent 9787b7a130
commit a9cf850cb0

View File

@ -5,12 +5,13 @@ namespace Webmasterskaya\CryptoPro;
use Webmasterskaya\CryptoPro\Constants\CADESCOM_ATTRIBUTE; use Webmasterskaya\CryptoPro\Constants\CADESCOM_ATTRIBUTE;
use Webmasterskaya\CryptoPro\Constants\CADESCOM_CADES_TYPE; use Webmasterskaya\CryptoPro\Constants\CADESCOM_CADES_TYPE;
use Webmasterskaya\CryptoPro\Constants\CADESCOM_CONTENT_ENCODING_TYPE; use Webmasterskaya\CryptoPro\Constants\CADESCOM_CONTENT_ENCODING_TYPE;
use Webmasterskaya\CryptoPro\Constants\CADESCOM_ENCODE; use Webmasterskaya\CryptoPro\Constants\CADESCOM_ENCODING_TYPE;
use Webmasterskaya\CryptoPro\Constants\CADESCOM_HASH_ALGORITHM; use Webmasterskaya\CryptoPro\Constants\CADESCOM_HASH_ALGORITHM;
use Webmasterskaya\CryptoPro\Constants\CADESCOM_STORE_LOCATION; use Webmasterskaya\CryptoPro\Constants\CADESCOM_STORE_LOCATION;
use Webmasterskaya\CryptoPro\Constants\CAPICOM_CERTIFICATE_FIND_TYPE; use Webmasterskaya\CryptoPro\Constants\CAPICOM_CERTIFICATE_FIND_TYPE;
use Webmasterskaya\CryptoPro\Constants\CAPICOM_CERTIFICATE_INCLUDE_OPTION; use Webmasterskaya\CryptoPro\Constants\CAPICOM_CERTIFICATE_INCLUDE_OPTION;
use Webmasterskaya\CryptoPro\Constants\CAPICOM_PROPID; use Webmasterskaya\CryptoPro\Constants\CAPICOM_PROPID;
use Webmasterskaya\CryptoPro\Constants\CAPICOM_STORE_OPEN_MODE;
use Webmasterskaya\CryptoPro\Helpers\CertificateHelper; use Webmasterskaya\CryptoPro\Helpers\CertificateHelper;
use Webmasterskaya\CryptoPro\Helpers\ErrorMessageHelper; use Webmasterskaya\CryptoPro\Helpers\ErrorMessageHelper;
@ -298,7 +299,7 @@ class CryptoPro
$cadesSigner, $cadesSigner,
CADESCOM_CADES_TYPE::PKCS7_TYPE, CADESCOM_CADES_TYPE::PKCS7_TYPE,
false, false,
CADESCOM_ENCODE::BASE64 CADESCOM_ENCODING_TYPE::BASE64
); );
} }
catch (\Throwable $e) catch (\Throwable $e)
@ -362,7 +363,6 @@ class CryptoPro
$cadesAuthAttrs->Add($cadesAttrs); $cadesAuthAttrs->Add($cadesAttrs);
$cadesSigner->set_Options(CAPICOM_CERTIFICATE_INCLUDE_OPTION::WHOLE_CHAIN); $cadesSigner->set_Options(CAPICOM_CERTIFICATE_INCLUDE_OPTION::WHOLE_CHAIN);
} }
catch (\Throwable $e) catch (\Throwable $e)
{ {
@ -372,8 +372,10 @@ class CryptoPro
try try
{ {
$cadesHashedData->set_Algorithm(CADESCOM_HASH_ALGORITHM::HASH_CP_GOST_3411_2012_256); $cadesHashedData->set_Algorithm(CADESCOM_HASH_ALGORITHM::HASH_CP_GOST_3411_2012_256);
$cadesHashedData->set_DataEncoding(CADESCOM_CONTENT_ENCODING_TYPE::BASE64_TO_BINARY);
$cadesHashedData->SetHashValue($messageHash); $cadesHashedData->SetHashValue($messageHash);
$cadesSignedData->set_ContentEncoding(CADESCOM_CONTENT_ENCODING_TYPE::BASE64_TO_BINARY);
// Для получения объекта отсоединенной (открепленной) подписи, необходимо задать любой контент. // Для получения объекта отсоединенной (открепленной) подписи, необходимо задать любой контент.
// Этот баг описан на форуме. // Этот баг описан на форуме.
// https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=78553#post78553 // https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=78553#post78553
@ -391,7 +393,7 @@ class CryptoPro
$cadesHashedData, $cadesHashedData,
$cadesSigner, $cadesSigner,
CADESCOM_CADES_TYPE::PKCS7_TYPE, CADESCOM_CADES_TYPE::PKCS7_TYPE,
CADESCOM_ENCODE::BASE64 CADESCOM_ENCODING_TYPE::BASE64
); );
} }
catch (\Throwable $e) catch (\Throwable $e)
@ -476,7 +478,7 @@ class CryptoPro
$signature = $cadesSignedData->CoSignCades( $signature = $cadesSignedData->CoSignCades(
$cadesSigner, $cadesSigner,
CADESCOM_CADES_TYPE::PKCS7_TYPE, CADESCOM_CADES_TYPE::PKCS7_TYPE,
CADESCOM_ENCODE::BASE64 CADESCOM_ENCODING_TYPE::BASE64
); );
} }
catch (\Throwable $e) catch (\Throwable $e)
@ -550,8 +552,10 @@ class CryptoPro
try try
{ {
$cadesHashedData->set_Algorithm(CADESCOM_HASH_ALGORITHM::HASH_CP_GOST_3411_2012_256); $cadesHashedData->set_Algorithm(CADESCOM_HASH_ALGORITHM::HASH_CP_GOST_3411_2012_256);
$cadesHashedData->set_DataEncoding(CADESCOM_CONTENT_ENCODING_TYPE::BASE64_TO_BINARY);
$cadesHashedData->SetHashValue($messageHash); $cadesHashedData->SetHashValue($messageHash);
$cadesSignedData->set_ContentEncoding(CADESCOM_CONTENT_ENCODING_TYPE::BASE64_TO_BINARY);
// Для получения объекта отсоединенной (открепленной) подписи, необходимо задать любой контент. // Для получения объекта отсоединенной (открепленной) подписи, необходимо задать любой контент.
// Этот баг описан на форуме. // Этот баг описан на форуме.
// https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=78553#post78553 // https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=78553#post78553
@ -574,7 +578,7 @@ class CryptoPro
$cadesSigner, $cadesSigner,
$cadesHashedData, $cadesHashedData,
CADESCOM_CADES_TYPE::PKCS7_TYPE, CADESCOM_CADES_TYPE::PKCS7_TYPE,
CADESCOM_ENCODE::BASE64 CADESCOM_ENCODING_TYPE::BASE64
); );
} }
catch (\Throwable $e) catch (\Throwable $e)
@ -609,7 +613,7 @@ class CryptoPro
try try
{ {
$cadesHashedData->set_Algorithm(CADESCOM_HASH_ALGORITHM::HASH_CP_GOST_3411_2012_256); $cadesHashedData->set_Algorithm(CADESCOM_HASH_ALGORITHM::HASH_CP_GOST_3411_2012_256);
$cadesHashedData->set_DataEncoding(BASE64_TO_BINARY); $cadesHashedData->set_DataEncoding(CADESCOM_CONTENT_ENCODING_TYPE::BASE64_TO_BINARY);
$cadesHashedData->Hash($messageBase64); $cadesHashedData->Hash($messageBase64);
} }
catch (\Throwable $e) catch (\Throwable $e)
@ -679,7 +683,7 @@ class CryptoPro
try try
{ {
$cadesStore->Open($storeLocation, $storeName, STORE_OPEN_MAXIMUM_ALLOWED); $cadesStore->Open($storeLocation, $storeName, CAPICOM_STORE_OPEN_MODE::MAXIMUM_ALLOWED);
} }
catch (\Throwable $e) catch (\Throwable $e)
{ {
@ -772,7 +776,7 @@ class CryptoPro
try try
{ {
$cadesStore->Open($storeLocation, $storeName, STORE_OPEN_MAXIMUM_ALLOWED); $cadesStore->Open($storeLocation, $storeName, CAPICOM_STORE_OPEN_MODE::MAXIMUM_ALLOWED);
} }
catch (\Throwable $e) catch (\Throwable $e)
{ {