You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OCSP проверок или TSP меток, удалить электронный контент, чтобы оставить только подписи или просто объединить две разные подписи одних и тех же данных.
26
26
Отправной точкой стала библиотека [adapik/cms](https://github.com/Adapik/CMS), в которой на тот момент не было детального описания всех возможных полей и данных в
27
27
CAdES. Так начался долгий путь чтения RFC и написания [нескольких тысяч строк кода](https://github.com/Adapik/CMS/graphs/contributors) чтобы полностью и
28
-
детально описать рекомендации в виде библиотеки. Но по договоренности с Александром Даниловым, мы решили, что изначальная библиотека будет работать
29
-
исключительно в режиме чтения, а все остальное, если я того желаю, могу сделать в виде отдельного пакета. Что, собственно, и было сделано.
28
+
детально описать рекомендации в виде библиотеки. Но по договоренности с Александром Даниловым, мы решили, что изначальная библиотека будет, как и раньше,
29
+
работать исключительно в режиме чтения, а все остальное, если я того желаю, могу сделать в виде отдельного пакета. Что, собственно, и было сделано.
@@ -91,7 +78,7 @@ public function unSetEContent(): self
91
78
* * *
92
79
93
80
# **SignedData**
94
-
**SignedData** — объединение двух цифровых подписей в единую.
81
+
**SignedData** — объект, включающий в себя все данные цифровой подписи.
95
82
96
83
## **Методы**
97
84
@@ -108,3 +95,55 @@ public function mergeCMS(SignedData $signedData): SignedData
108
95
Метод позволяет собрать несколько CMS файлов в единый, если один и тот же файл был подписан разными системами, либо если каждая подпись хранится отдельно.
109
96
110
97
* * *
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 файл.
0 commit comments