Skip to content

Commit ed347bf

Browse files
committed
readme - SignedData, SignedDataContent
1 parent eba7288 commit ed347bf

1 file changed

Lines changed: 55 additions & 16 deletions

File tree

README.md

Lines changed: 55 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,29 +25,16 @@ composer require falseclock/advanced-cms
2525
OCSP проверок или TSP меток, удалить электронный контент, чтобы оставить только подписи или просто объединить две разные подписи одних и тех же данных.
2626
Отправной точкой стала библиотека [adapik/cms](https://github.com/Adapik/CMS), в которой на тот момент не было детального описания всех возможных полей и данных в
2727
CAdES. Так начался долгий путь чтения RFC и написания [нескольких тысяч строк кода](https://github.com/Adapik/CMS/graphs/contributors) чтобы полностью и
28-
детально описать рекомендации в виде библиотеки. Но по договоренности с Александром Даниловым, мы решили, что изначальная библиотека будет работать
29-
исключительно в режиме чтения, а все остальное, если я того желаю, могу сделать в виде отдельного пакета. Что, собственно, и было сделано.
28+
детально описать рекомендации в виде библиотеки. Но по договоренности с Александром Даниловым, мы решили, что изначальная библиотека будет, как и раньше,
29+
работать исключительно в режиме чтения, а все остальное, если я того желаю, могу сделать в виде отдельного пакета. Что, собственно, и было сделано.
3030

3131

3232
## Манипуляторы
3333

3434
* [EncapsulatedContentInfo](#EncapsulatedContentInfo)
3535
* [SignedData](#_SignedData_)
36-
* [OCSPRequest](#OCSPRequest)
37-
* [OCSPResponse](#OCSPResponse)
38-
* [OCSPResponseStatus](#OCSPResponseStatus)
39-
* [PKIStatusInfo](#PKIStatusInfo)
40-
* [Request](#Request)
41-
* [ResponseBytes](#ResponseBytes)
42-
* [RevocationValues](#RevocationValues)
43-
* [Signature](#Signature)
4436
* [SignedDataContent](#SignedDataContent)
4537
* [SignerInfo](#SignerInfo)
46-
* [TBSRequest](#TBSRequest)
47-
* [Template](#Template)
48-
* [TimeStampRequest](#TimeStampRequest)
49-
* [TimeStampResponse](#TimeStampResponse)
50-
* [TimeStampToken](#TimeStampToken)
5138
* [UnsignedAttributes](#UnsignedAttributes)
5239

5340
* * *
@@ -91,7 +78,7 @@ public function unSetEContent(): self
9178
* * *
9279

9380
# **SignedData**
94-
**SignedData**объединение двух цифровых подписей в единую.
81+
**SignedData**объект, включающий в себя все данные цифровой подписи.
9582

9683
## **Методы**
9784

@@ -108,3 +95,55 @@ public function mergeCMS(SignedData $signedData): SignedData
10895
Метод позволяет собрать несколько CMS файлов в единый, если один и тот же файл был подписан разными системами, либо если каждая подпись хранится отдельно.
10996

11097
* * *
98+
99+
# **SignedDataContent**
100+
**SignedDataContent** — согласно [RFC5652](https://datatracker.ietf.org/doc/html/rfc5652#section-5.1) это последовательность нескольких элементов, который включает
101+
дайджест, подписанные данные, сертификаты, отзывы на сертификаты и данные по подписях.
102+
103+
## **Методы**
104+
105+
### **appendDigestAlgorithmIdentifier**
106+
107+
appendDigestAlgorithmIdentifier — добавление в список текущих хэш алгоритмов, дополнительного, используемого в одной из подписей
108+
109+
#### Описание
110+
111+
```php
112+
public function appendDigestAlgorithmIdentifier(AlgorithmIdentifier $algorithmIdentifier): self
113+
```
114+
115+
Неупорядоченный набор дайджестов (хэш алгоритмов) использованных в подписях. При этом, если в CMS находятся две или более подписи, с одним и тем же
116+
алгоритмом хеширования, наборы могут повторяться. Количество последовательностей алгоритмов в данном наборе соответствует количеству подписей.
117+
118+
* * *
119+
120+
### **appendCertificate**
121+
122+
appendCertificate — добавление публичного сертификата как для одной из подписей, так и других вспомогательных.
123+
124+
#### Описание
125+
126+
```php
127+
public function appendCertificate(Certificate $certificate): self
128+
```
129+
130+
Следует учесть, что наличие публичных сертификатов в CMS не является обязательным условием, так как согласно RFC это поле опциональное. Согласно тому же
131+
[RFC5652](https://datatracker.ietf.org/doc/html/rfc5652#section-10.2.3) в этом наборе могут присутствовать как сертификаты самих подписей, так и промежуточные
132+
или же корневые сертификаты при необходимости.
133+
134+
* * *
135+
136+
### **appendSignerInfo**
137+
138+
appendSignerInfo — добавление подписи в CMS, которая включает алгоритм хеширования, подпись, подписанные и неподписанные атрибуты.
139+
140+
#### Описание
141+
142+
```php
143+
public function appendSignerInfo(Certificate $certificate): self
144+
```
145+
146+
Это тот самый метод, ради которого и затеялась разработка данной библиотеки. Позволяет объединять несколько подписей в единый CMS файл.
147+
148+
* * *
149+

0 commit comments

Comments
 (0)