A PHP Library that allows you to decode and manipulate CAdES or in other words CMS Advanced Electronic Signatures described in ETSI standart TS 101 733.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ CAdES ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ CMS (Cryptographic Message Syntax) ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ETSI.
composer require falseclock/advanced-cms
ΠΠΎΠ³Π΄Π° Π² ΠΠ°Π·Π°Ρ ΡΡΠ°Π½Π΅ ΠΈ Π ΠΎΡΡΠΈΠΈ ΡΡΠ°Π»Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ Π²Π½Π΅Π΄ΡΡΡΡΡΡ ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ (ΠΠ¦Π), Ρ, Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π΄Π»Ρ ΡΠ΅Π±Ρ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡΡΡ, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ Π² PHP Π½Π΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ASN.1 Π·Π°ΠΏΠΈΡΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡ, Π½ΠΎ ΠΈ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Ρ, ΠΏΡΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ OCSP ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΠΈΠ»ΠΈ TSP ΠΌΠ΅ΡΠΎΠΊ, ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π²Π΅ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ ΡΡΠ°Π»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° adapik/cms, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π΅ Π±ΡΠ»ΠΎ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π΄Π°Π½Π½ΡΡ Π² CAdES. Π’Π°ΠΊ Π½Π°ΡΠ°Π»ΡΡ Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΡΡΡ ΡΡΠ΅Π½ΠΈΡ RFC ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΎ, ΠΏΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ Ρ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠΎΠΌ ΠΠ°Π½ΠΈΠ»ΠΎΠ²ΡΠΌ, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π±ΡΠ΄Π΅Ρ, ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ΅Π½ΠΈΡ, Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅, Π΅ΡΠ»ΠΈ Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅Π»Π°Ρ, ΠΌΠΎΠ³Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. Π§ΡΠΎ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ.
Π§Π΅Π»ΠΎΠ²Π΅ΠΊΡ, Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΠ¦Π, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π»Π΅Π³ΠΈΡΠΈΠΌΠ½ΠΎΡΡΡ ΠΈ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΡΡΡΡ ΠΈ ΡΠΌΡΡΠ» ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ ΠΏΠΎΡΡΠ°ΡΠ°Π»ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ unit ΡΠ΅ΡΡΡ ΠΈ 100% ΠΏΠΎΠΊΡΡΡΡ ΠΊΠΎΠ΄. ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ CMS ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΡΡΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅ test. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ ΠΏΠ»Π°Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ, Π½ΠΎ ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ¦Π Π² Π²ΠΈΠ΄Π΅ CAdES. Π ΡΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ, Π½ΠΎ ΡΠ°Π· ΡΠΆ Π½Π° PHP Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΎ ΠΏΠΎΡΠ΅ΠΌΡ Π±Ρ ΠΈ Π½Π΅Ρ.
EncapsulatedContentInfo β Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ RFC5652 - ΠΌΠ΅ΡΡΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ . Π₯ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ»Π΅ΠΏΠΊΠ΅ ΠΠ¦Π Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ ΠΈΠ»ΠΈ Π²Π½Π΅Π΄ΡΡΡΡ.
setEContent β Π·Π°ΠΏΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ Π±Π°ΠΉΡ (ΠΎΠΊΡΠ΅ΡΠΎΠ²).
public function setEContent(OctetString $octetString): self
Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ CMS ΡΠ°ΠΉΠ», Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π½Π΅Π΄ΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π² ΠΏΠΎΠ΄ΠΏΠΈΡΡ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Ρ ΡΡ ΡΠ°ΠΉΠ»Π° ΠΈ Ρ ΡΡ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡΠΈΡΠΌ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ openssl.
unSetEContent β ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΠ¦Π.
public function unSetEContent(): self
ΠΠ¦Π ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ, Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΡΡΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Ρ ΡΡΠ° Π΄Π°Π½Π½ΡΡ . Π§ΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎ Ρ ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π² ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ.
SignedData β ΠΎΠ±ΡΠ΅ΠΊΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ.
mergeCMS β ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠΎΠ², ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΠΈ ΠΎΡΠΎΠ·Π²Π°Π½Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΌΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ
public function mergeCMS(SignedData $signedData): SignedData
ΠΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ±ΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ CMS ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΡΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΉΠ» Π±ΡΠ» ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ, Π»ΠΈΠ±ΠΎ Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
SignedDataContent β ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ RFC5652 ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΎΡΠ·ΡΠ²Ρ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ .
appendDigestAlgorithmIdentifier β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΊΡΡΠΈΡ Ρ ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ
public function appendDigestAlgorithmIdentifier(AlgorithmIdentifier $algorithmIdentifier): self
ΠΠ΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠΎΠ² (Ρ ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ²) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π² ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ . ΠΡΠΈ ΡΡΠΎΠΌ, Π΅ΡΠ»ΠΈ Π² CMS Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π°Π±ΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π² Π΄Π°Π½Π½ΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ.
appendCertificate β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ, ΡΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ .
public function appendCertificate(Certificate $certificate): self
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π² CMS Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ RFC ΡΡΠΎ ΠΏΠΎΠ»Π΅ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ RFC5652 Π² ΡΡΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΡΠ°ΠΌΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΡΠ½Π΅Π²ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
appendSignerInfo β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π² CMS, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΏΠΈΡΡ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΈ Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ.
public function appendSignerInfo(Certificate $certificate): self
ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠ°Π΄ΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈ Π·Π°ΡΠ΅ΡΠ»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ Π² Π΅Π΄ΠΈΠ½ΡΠΉ CMS ΡΠ°ΠΉΠ».
SignerInfo β ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ RFC5652 Π² ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, OCSP ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΠ»ΠΈ TSP ΠΌΠ΅ΡΠΊΠ°. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΠΈ Π² ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , Π½Π΅ Π²ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π² Π±Π»ΠΎΠΊΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² SignerInfo ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ Π±Π»ΠΎΠΊ UnsignedAttributes, ΠΊΡΠ΄Π° Π²Π°ΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π»Π΅Π³ΠΈΡΠΈΠΌΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΏΠΎΠ·Π΄Π½Π΅Π΅. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ± Π°ΡΡΠΈΠ±ΡΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² RFC5126.
addUnsignedAttribute β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ°
public function addUnsignedAttribute(UnsignedAttribute $newAttribute): SignerInf
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ OCSP ΠΈ TSP Π΄Π°Π½Π½ΡΠ΅. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π°ΡΡΠΈΠ±ΡΡΡ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ OID ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ ΠΊΠ°ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ OCSP ΠΌΠ΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² SET ΠΏΠΎΠ»Π΅ SEQUENCE, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ OID 1.2.840.113549.1.9.16.2.24 (revocationValues), Π° TSP ΠΌΠ΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² Π½Π°Π±ΠΎΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ OID 1.2.840.113549.1.9.16.2.14 (timeStampToken)
createUnsignedAttributes β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²
protected function createUnsignedAttributes(): ?UnsignedAttributes
ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΡΠΎΡ Π½Π°Π±ΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΠ¦Π Π½Π΅ Π½Π°ΡΡΡΠ°Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΅Ρ Π΄Π°Π½Π½ΡΡ .
deleteUnsignedAttributes β ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²
public function deleteUnsignedAttributes(): SignerInfo
Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π°Π»Π΅Π½Ρ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΠΈ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠ΅Π½Π°.