diff --git a/src/CPSignedData.php b/src/CPSignedData.php index fa435d2..d077bab 100644 --- a/src/CPSignedData.php +++ b/src/CPSignedData.php @@ -1,40 +1,634 @@ + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
CADES_BESТип подписи CAdES BES.0x01
CADES_DEFAULTТип подписи по умолчанию (CAdES-X Long Type 1).0x00
CADES_TТип подписи CAdES T.0x05
CADES_X_LONG_TYPE_1Тип подписи CAdES-X Long Type 1.0x5D
PKCS7_TYPEТип подписи PKCS7.0xffff
+ * @param bool $bDetached Вид подписи: отделенная (true) или совмещенная (false). По умолчанию совмещенная. + * @param mixed $EncodingType Кодировка возвращаемой подписи. По умолчанию ENCODE_BASE64. + * Может принимать следующие значения: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
ENCODE_ANYДанные сохраняются в виде строки в кодировке Base64 или чистой двоичной последовательности. Этот тип кодирования используется + * только для входных данных с неизвестным типом кодирования. Представлен в CAPICOM 2.0.
0xffffffff
ENCODE_BASE64Данные сохраняются в виде строки в кодировке Base64.
0
ENCODE_BINARYДанные сохраняются в виде чистой двоичной последовательности.
1
+ * + * @return void + */ + public function SignCades(\CPSigner $Signer, $CadesType = CADES_DEFAULT, bool $bDetached = false, $EncodingType = ENCODE_BASE64) + { + } + + /** + * Позволяет создать усовершенствованную подпись на основе переданного хэш-значения. + * + * @param \CPHashedData $Hash Объект CPHashedData, соответствующий хэш-значению, для которого следует создать подписанное CMS-сообщение. + * @param \CPSigner $Signer Объект CPSigner, который будет использован для создания подписи. + * По умолчанию не задан, при этом выбор сертификата для подписи производится аналогично + * методу Sign объекта CAPICOM.SignedData при отсутствии первого параметра. + * Таким же образом выбор сертификата для подписи производится в случае, если параметр pSigner задан, + * но не содержит сертификата для подписи. + * @param mixed $CadesType Тип усовершенствованной подписи. По умолчанию CAdES-X Long Type 1. + * Может принимать следующие значения: + * + *
+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
CADES_BESТип подписи CAdES BES.0x01
CADES_DEFAULTТип подписи по умолчанию (CAdES-X Long Type 1).0x00
CADES_TТип подписи CAdES T.0x05
CADES_X_LONG_TYPE_1Тип подписи CAdES-X Long Type 1.0x5D
PKCS7_TYPEТип подписи PKCS7.0xffff
+ * @param mixed $EncodingType Кодировка возвращаемой подписи. По умолчанию ENCODE_BASE64. + * Может принимать следующие значения: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
ENCODE_ANYДанные сохраняются в виде строки в кодировке Base64 или чистой двоичной последовательности. Этот тип кодирования используется + * только для входных данных с неизвестным типом кодирования. Представлен в CAPICOM 2.0.
0xffffffff
ENCODE_BASE64Данные сохраняются в виде строки в кодировке Base64.
0
ENCODE_BINARYДанные сохраняются в виде чистой двоичной последовательности.
1
+ * + * @return void + */ + public function SignHash(\CPHashedData $Hash, \CPSigner $Signer, $CadesType = CADES_DEFAULT, $EncodingType = ENCODE_BASE64) + { + } + + /** + * Позволяет добавить к сообщению параллельную усовершенствованную подпись. + * + * @param \CPSigner $Signer Объект CPSigner, который будет использован для создания подписи. + * По умолчанию не задан, при этом выбор сертификата для подписи производится аналогично + * методу Sign объекта CAPICOM.Signer при отсутствии первого параметра. + * Таким же образом выбор сертификата для подписи производится в случае, если параметр pSigner задан, + * но не содержит сертификата для подписи. + * @param mixed $CadesType Тип усовершенствованной подписи. По умолчанию CAdES-X Long Type 1. + * Может принимать следующие значения: + * + *
+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
CADES_BESТип подписи CAdES BES.0x01
CADES_DEFAULTТип подписи по умолчанию (CAdES-X Long Type 1).0x00
CADES_TТип подписи CAdES T.0x05
CADES_X_LONG_TYPE_1Тип подписи CAdES-X Long Type 1.0x5D
PKCS7_TYPEТип подписи PKCS7.0xffff
+ * @param mixed $EncodingType Кодировка возвращаемой подписи. По умолчанию ENCODE_BASE64. + * Может принимать следующие значения: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
ENCODE_ANYДанные сохраняются в виде строки в кодировке Base64 или чистой двоичной последовательности. Этот тип кодирования используется + * только для входных данных с неизвестным типом кодирования. Представлен в CAPICOM 2.0.
0xffffffff
ENCODE_BASE64Данные сохраняются в виде строки в кодировке Base64.
0
ENCODE_BINARYДанные сохраняются в виде чистой двоичной последовательности.
1
+ * + * @return void + */ + public function CoSignCades(\CPSigner $Signer, $CadesType = CADES_DEFAULT, $EncodingType = ENCODE_BASE64) + { + } + + /** + * Позволяет добавить к сообщению параллельную усовершенствованную подпись. + * + * @param \CPHashedData $Hash Объект CPHashedData, соответствующий хэш-значению, для которого следует создать подписанное CMS-сообщение. + * @param \CPSigner $Signer Объект CPSigner, который будет использован для создания подписи. + * По умолчанию не задан, при этом выбор сертификата для подписи производится аналогично + * методу Sign объекта CAPICOM.Signer при отсутствии первого параметра. + * Таким же образом выбор сертификата для подписи производится в случае, если параметр pSigner задан, + * но не содержит сертификата для подписи. + * @param mixed $CadesType Тип усовершенствованной подписи. По умолчанию CAdES-X Long Type 1. + * Может принимать следующие значения: + * + *
+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
CADES_BESТип подписи CAdES BES.0x01
CADES_DEFAULTТип подписи по умолчанию (CAdES-X Long Type 1).0x00
CADES_TТип подписи CAdES T.0x05
CADES_X_LONG_TYPE_1Тип подписи CAdES-X Long Type 1.0x5D
PKCS7_TYPEТип подписи PKCS7.0xffff
+ * @param mixed $EncodingType Кодировка возвращаемой подписи. По умолчанию ENCODE_BASE64. + * Может принимать следующие значения: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
ENCODE_ANYДанные сохраняются в виде строки в кодировке Base64 или чистой двоичной последовательности. Этот тип кодирования используется + * только для входных данных с неизвестным типом кодирования. Представлен в CAPICOM 2.0.
0xffffffff
ENCODE_BASE64Данные сохраняются в виде строки в кодировке Base64.
0
ENCODE_BINARYДанные сохраняются в виде чистой двоичной последовательности.
1
+ * + * @return void + */ + public function CoSignHash(\CPHashedData $Hash, \CPSigner $Signer, $CadesType = CADES_DEFAULT, $EncodingType = ENCODE_BASE64) + { + } + + /** + * Позволяет дополнить подпись до усовершенствованной. + * + * С помощью данного метода подпись, созданная в формате CAdES BES, может быть дополнена до усовершенствованной подписи CADES-X Long Type 1. + * Если исходная подпись не соответствует формату CAdES BES, то она не может быть дополнена ни до CAdES BES, ни до CADES-X Long Type 1. + * + * Если параметр CadesType имеет значение CADES_X_LONG_TYPE_1, то метод EnhanceCades добавляет к уже готовой подписи неподписанные атрибуты, + * необходимые для соответствия CADES-X Long Type 1 (штампы времени на подпись и на доказательства подлинности, ссылки на сертификаты и + * информацию об отзыве, значения сертификатов, CRL и OCSP ответов, использовавшихся при проверке цепочки). + * Если параметр CadesType имеет значение CADES_BES, то метод EnhanceCades проверяет подпись на соответствие формату CAdES BES, + * без добавления дополнительных атрибутов. Точно так же, если параметр CadesType имеет значение CADES_X_LONG_TYPE_1 то сначала проверяется, + * не соответствует ли уже подпись формату CADES_X_LONG_TYPE_1 (cоответствие определяется по наличию нужных атрибутов), и если соответствует, + * то метод EnhanceCades успешно завершает свою работу, не внося никаких изменений. + * + * @param mixed $CadesType Тип усовершенствованной подписи. По умолчанию CAdES-X Long Type 1. + * Может принимать следующие значения: + * + *
+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
CADES_BESТип подписи CAdES BES.0x01
CADES_DEFAULTТип подписи по умолчанию (CAdES-X Long Type 1).0x00
CADES_TТип подписи CAdES T.0x05
CADES_X_LONG_TYPE_1Тип подписи CAdES-X Long Type 1.0x5D
PKCS7_TYPEТип подписи PKCS7.0xffff
+ * @param string $TSAAddress Адрес службы штампов времени. + * @param mixed $EncodingType Кодировка возвращаемой подписи. По умолчанию ENCODE_BASE64. + * Может принимать следующие значения: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
ENCODE_ANYДанные сохраняются в виде строки в кодировке Base64 или чистой двоичной последовательности. Этот тип кодирования используется + * только для входных данных с неизвестным типом кодирования. Представлен в CAPICOM 2.0.
0xffffffff
ENCODE_BASE64Данные сохраняются в виде строки в кодировке Base64.
0
ENCODE_BINARYДанные сохраняются в виде чистой двоичной последовательности.
1
+ * + * @return void + */ + public function EnhanceCades($CadesType, string $TSAAddress, $EncodingType = ENCODE_BASE64) + { + } + + /** + * Позволяет проверить усовершенствованную подпись, в том числе и на соответствие заданому типу подписи. + * + * @param string $SignedMessage Проверяемое подписанное сообщение. + * @param mixed $CadesType Тип усовершенствованной подписи. По умолчанию CAdES-X Long Type 1. + * Может принимать следующие значения: + * + *
+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
CADES_BESТип подписи CAdES BES.0x01
CADES_DEFAULTТип подписи по умолчанию (CAdES-X Long Type 1).0x00
CADES_TТип подписи CAdES T.0x05
CADES_X_LONG_TYPE_1Тип подписи CAdES-X Long Type 1.0x5D
PKCS7_TYPEТип подписи PKCS7.0xffff
+ * @param bool $bDetached Вид подписи: отделенная (true) или совмещенная (false). По умолчанию совмещенная. + * + * @return void + */ + public function VerifyCades(string $SignedMessage, $CadesType = CADES_DEFAULT, bool $bDetached = false) + { + } + + /** + * Позволяет проверить усовершенствованную подпись, в том числе и на соответствие заданому типу подписи. + * В отличие от метода VerifyCades, данный метод не проверяет соответствие хэш-значения каким-либо данным. + * Если в переданном сообщении присутствует подписанный атрибут messageDigest, то данный метод проверяет только + * соответствие хэш-значения в параметре Hash тому хэш-значению, которое содержится в атрибуте messageDigest. + * + * @param \CPHashedData $Hash Объект \CPHashedData, соответствующий хэш-значению, при помощи которого следует проверить подписанное CMS-сообщение. + * @param string $SignedMessage Проверяемое подписанное сообщение. + * @param mixed $CadesType Тип усовершенствованной подписи. По умолчанию CAdES-X Long Type 1. + * Может принимать следующие значения: + * + *
+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
CADES_BESТип подписи CAdES BES.0x01
CADES_DEFAULTТип подписи по умолчанию (CAdES-X Long Type 1).0x00
CADES_TТип подписи CAdES T.0x05
CADES_X_LONG_TYPE_1Тип подписи CAdES-X Long Type 1.0x5D
PKCS7_TYPEТип подписи PKCS7.0xffff
+ * + * @return void + */ + public function VerifyHash(\CPHashedData $Hash, string $SignedMessage, $CadesType = CADES_DEFAULT) + { + } + + /** + * Устанавливает способ кодирования данных для подписи. + * + * @param mixed $EncodingType Кодировка возвращаемой подписи. По умолчанию ENCODE_BASE64. + * Может принимать следующие значения: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
ИмяОписаниеЗначение
ENCODE_ANYДанные сохраняются в виде строки в кодировке Base64 или чистой двоичной последовательности. Этот тип кодирования используется + * только для входных данных с неизвестным типом кодирования. Представлен в CAPICOM 2.0.
0xffffffff
ENCODE_BASE64Данные сохраняются в виде строки в кодировке Base64.
0
ENCODE_BINARYДанные сохраняются в виде чистой двоичной последовательности.
1
+ * + * @return void + */ + public function set_ContentEncoding($EncodingType) + { + } + + /** + * Возвращает способ кодирования данных для подписи. + * + * @return mixed + */ + public function get_ContentEncoding() + { + } + + /** + * Устанавливает данные, которые должны быть подписаны. + * + * @param string $Content данные, которые должны быть подписаны. + * + * @return void + */ + public function set_Content(string $Content) + { + } + + /** + * Возвращает данные, которые должны быть подписаны. + * + * @return string + */ + public function get_Content() + { + } + + /** + * Извлекает коллекцию объект CPSigner, которые были использованы для создания подписи. + * + * @return \CPSigners + */ + public function get_Signers() + { + } + + /** + * Извлекает коллекцию сертификатов подписанных данных. + * + * @return \CPCertificates + */ + public function get_Certificates() + { + } } diff --git a/src/meta/.phpstorm.meta.php b/src/meta/.phpstorm.meta.php index 8df1fc0..bb815ea 100755 --- a/src/meta/.phpstorm.meta.php +++ b/src/meta/.phpstorm.meta.php @@ -52,4 +52,57 @@ namespace PHPSTORM_META { | CERT_INFO_SUBJECT_UPN | CERT_INFO_ISSUER_UPN | CERT_INFO_SUBJECT_DNS_NAME | CERT_INFO_ISSUER_DNS_NAME ); + + /** + * @see \CPSignedData + */ + expectedArguments( + \CPSignedData::SignCades(), 1, + CADES_BES | CADES_DEFAULT | CADES_T | CADES_X_LONG_TYPE_1 | PKCS7_TYPE + ); + + expectedArguments( + \CPSignedData::SignCades(), 3, + ENCODE_ANY | ENCODE_BASE64 | ENCODE_BINARY + ); + + expectedArguments( + \CPSignedData::VerifyCades(), 1, + CADES_BES | CADES_DEFAULT | CADES_T | CADES_X_LONG_TYPE_1 | PKCS7_TYPE + ); + + expectedArguments( + \CPSignedData::CoSignCades(), 1, + CADES_BES | CADES_DEFAULT | CADES_T | CADES_X_LONG_TYPE_1 | PKCS7_TYPE + ); + + expectedArguments( + \CPSignedData::CoSignCades(), 2, + ENCODE_ANY | ENCODE_BASE64 | ENCODE_BINARY + ); + + expectedArguments( + \CPSignedData::SignHash(), 2, + CADES_BES | CADES_DEFAULT | CADES_T | CADES_X_LONG_TYPE_1 | PKCS7_TYPE + ); + + expectedArguments( + \CPSignedData::SignHash(), 3, + ENCODE_ANY | ENCODE_BASE64 | ENCODE_BINARY + ); + + expectedArguments( + \CPSignedData::CoSignHash(), 2, + CADES_BES | CADES_DEFAULT | CADES_T | CADES_X_LONG_TYPE_1 | PKCS7_TYPE + ); + + expectedArguments( + \CPSignedData::CoSignHash(), 3, + ENCODE_ANY | ENCODE_BASE64 | ENCODE_BINARY + ); + + expectedArguments( + \CPSignedData::VerifyHash(), 2, + CADES_BES | CADES_DEFAULT | CADES_T | CADES_X_LONG_TYPE_1 | PKCS7_TYPE + ); }