Skip to content

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

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.ru
Notifications You must be signed in to change notification settings

Falseclock/AdvancedCMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

76 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AdvancedCMS

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.

Build Status PHP 7 ready Coverage Status

Latest Stable Version Total Downloads Latest Unstable Version License

Установка

composer require falseclock/advanced-cms

ΠŸΡ€Π΅Π΄Ρ‹ΡΡ‚ΠΎΡ€ΠΈΡ

Когда Π² ΠšΠ°Π·Π°Ρ…ΡΡ‚Π°Π½Π΅ ΠΈ России стала Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒΡΡ ЭлСктронная цифровая подпись (ЭЦП), я, с большой для сСбя Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ Π² PHP Π½Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ASN.1 запись Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½ΠΎ ΠΈ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘, ΠΏΡƒΡ‚Π΅ΠΌ добавлСния OCSP ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈΠ»ΠΈ TSP ΠΌΠ΅Ρ‚ΠΎΠΊ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСктронный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ подписи ΠΈΠ»ΠΈ просто ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ подписи ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ стала Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° adapik/cms, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π±Ρ‹Π»ΠΎ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ описания всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² CAdES. Π’Π°ΠΊ начался Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΡƒΡ‚ΡŒ чтСния RFC ΠΈ написания Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… тысяч строк ΠΊΠΎΠ΄Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Но, ΠΏΠΎ договорСнности с АлСксандром Π”Π°Π½ΠΈΠ»ΠΎΠ²Ρ‹ΠΌ, ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния, Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅, Ссли я Ρ‚ΠΎΠ³ΠΎ ТСлаю, ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π§Ρ‚ΠΎ, собствСнно, ΠΈ Π±Ρ‹Π»ΠΎ сдСлано.

Π§Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ, Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ЭЦП, ΠΊΠ°ΠΊ провСряСтся Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€Π½ΠΎΡΡ‚ΡŒ подписи Π±ΡƒΠ΄Π΅Ρ‚ довольно слоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ ΡΡƒΡ‚ΡŒ ΠΈ смысл этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ я постарался ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ unit тСсты ΠΈ 100% ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ΄. Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с CMS Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π° основС тСстов Π² ΠΏΠ°ΠΏΠΊΠ΅ test. Π’ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… ΠΏΠ»Π°Π½Π°Ρ… рСализация Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ манипуляций с подписями, Π½ΠΎ ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ЭЦП Π² Π²ΠΈΠ΄Π΅ CAdES. Π’ этом смыслС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° пароля ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π½Π΅ всСгда оказываСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ, Π½ΠΎ Ρ€Π°Π· ΡƒΠΆ Π½Π° PHP Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ ΠΈ Π½Π΅Ρ‚.

ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ‚ΠΎΡ€Ρ‹


EncapsulatedContentInfo

EncapsulatedContentInfo β€” Богласно RFC5652 - мСсто хранСния подписанных Π΄Π°Π½Π½Ρ‹Ρ…. Π₯Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² слСпкС ЭЦП Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ условиС, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

setEContent

setEContent β€” запись содСрТимого Π² Π²ΠΈΠ΄Π΅ простых ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π±Π°ΠΉΡ‚ (ΠΎΠΊΡ‚Π΅Ρ‚ΠΎΠ²).

ОписаниС

public function setEContent(OctetString $octetString): self

Π’ случаС, Ссли подписанныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ сами подписи хранятся Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ CMS Ρ„Π°ΠΉΠ», Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ содСрТаниС Π² подпись. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ провСряСт Ρ…ΡΡˆ Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ…ΡΡˆ ΠΈΠ· подписи, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ поставку openssl.


unSetEContent

unSetEContent β€” ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ подписанных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ЭЦП.

ОписаниС

public function unSetEContent(): self

ЭЦП ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ цифровая подпись формируСтся Π½Π° основС Ρ…ΡΡˆΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ подписи, Π²ΠΏΠΎΠ»Π½Π΅ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ, особСнно, Ссли Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‡Π΅Π½ΡŒ большого объСма, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ… всСгда ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎ Ρ…ΡΡˆΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ использовался Π² подписи.


SignedData

SignedData β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя всС Π΄Π°Π½Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

mergeCMS

mergeCMS β€” объСдинСниС дайдТСстов, ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π½Ρ‹Ρ… сСртификатов, Π° Ρ‚Π°ΠΊΠΆΠ΅ самих подписСй

ОписаниС

public function mergeCMS(SignedData $signedData): SignedData

ΠœΠ΅Ρ‚ΠΎΠ΄ позволяСт ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ нСсколько CMS Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ, Ссли ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» подписан Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ систСмами, Π»ΠΈΠ±ΠΎ Ссли каТдая подпись хранится ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.


SignedDataContent

SignedDataContent β€” согласно RFC5652 это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ дайдТСст, подписанныС Π΄Π°Π½Π½Ρ‹Π΅, сСртификаты, ΠΎΡ‚Π·Ρ‹Π²Ρ‹ Π½Π° сСртификаты ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ подписях.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

appendDigestAlgorithmIdentifier

appendDigestAlgorithmIdentifier β€” Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² список Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Ρ…ΡΡˆ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· подписСй

ОписаниС

public function appendDigestAlgorithmIdentifier(AlgorithmIdentifier $algorithmIdentifier): self

НСупорядочСнный Π½Π°Π±ΠΎΡ€ дайдТСстов (Ρ…ΡΡˆ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² подписях. ΠŸΡ€ΠΈ этом, Ссли Π² CMS находятся Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ подписи, с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π½Π°Π±ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π² Π΄Π°Π½Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ соотвСтствуСт количСству подписСй.


appendCertificate

appendCertificate β€” Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ сСртификата ΠΊΠ°ΠΊ для ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· подписСй, Ρ‚Π°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ….

ОписаниС

public function appendCertificate(Certificate $certificate): self

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… сСртификатов Π² CMS Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ согласно RFC это ΠΏΠΎΠ»Π΅ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅. Богласно Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ RFC5652 Π² этом Π½Π°Π±ΠΎΡ€Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ сСртификаты самих подписСй, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Π΅ сСртификаты ΠΏΡ€ΠΈ нСобходимости.


appendSignerInfo

appendSignerInfo β€” Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ подписи Π² CMS, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, подпись, подписанныС ΠΈ нСподписанныС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹.

ОписаниС

public function appendSignerInfo(Certificate $certificate): self

Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ€Π°Π΄ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Π·Π°Ρ‚Π΅ΡΠ»Π°ΡΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ нСсколько подписСй Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ CMS Ρ„Π°ΠΉΠ».


SignerInfo

SignerInfo β€” согласно RFC5652 Π² подписи ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ нСподписанныС Π΄Π°Π½Π½Ρ‹Π΅. НапримСр, OCSP ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΠ»ΠΈ TSP ΠΌΠ΅Ρ‚ΠΊΠ°. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ эти Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈ Π² подписанных Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ всС срСдства подписания Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ сохранСниС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π² Π±Π»ΠΎΠΊΠ΅ подписи. Для этого Π² SignerInfo прСдусмотрСн Π±Π»ΠΎΠΊ UnsignedAttributes, ΠΊΡƒΠ΄Π° Π²Π°ΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ лСгитимности подписи ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠΎΠ·Π΄Π½Π΅Π΅. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ± Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² RFC5126.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

addUnsignedAttribute

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

createUnsignedAttributes β€” созданиС Π½Π°Π±ΠΎΡ€Π° нСподписанных Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²

ОписаниС

protected function createUnsignedAttributes(): ?UnsignedAttributes

ЭлСктронная цифровая подпись Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ нСподписанныС Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, этот Π½Π°Π±ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ЭЦП Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΅Ρ‘ Π΄Π°Π½Π½Ρ‹Ρ….


deleteUnsignedAttributes

deleteUnsignedAttributes β€” ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ нСподписанных Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²

ОписаниС

public function deleteUnsignedAttributes(): SignerInfo

Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹, ΠΏΡ€ΠΈ этом Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Π΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€Π½ΠΎΡΡ‚ΡŒ подписи Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½Π°.


About

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

Topics

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.ru

Stars

Watchers

Forks

Packages

 
 
 

Languages