Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
03.02.2015, 11:11
|
|||
---|---|---|---|
|
|||
отсоединенная подпись (CMS/PKCS #7) |
|||
#18+
как удалить вложенный сертификат из Detached подписи? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2015, 11:13
|
|||
---|---|---|---|
|
|||
отсоединенная подпись (CMS/PKCS #7) |
|||
#18+
создаю и добавляю подписи авторPrivate Function SignBytes(ByVal SrcBytes As Byte(), Certificate As X509Certificate2) As Byte() Dim Result As Byte() = Nothing If SrcBytes IsNot Nothing AndAlso SrcBytes.Length > 0 AndAlso Certificate IsNot Nothing Then Try Dim contentInfo As New ContentInfo(SrcBytes) Dim signedCms As New SignedCms(contentInfo, True) Dim cmsSigner As New CmsSigner(Certificate) cmsSigner.IncludeOption = X509IncludeOption.EndCertOnly cmsSigner.SignedAttributes.Add(New Pkcs9SigningTime) signedCms.ComputeSignature(cmsSigner, False) Result = signedCms.Encode() Catch ex As Exception Throw New Exception(ex.Message) Result = Nothing End Try End If Return Result End Function Public Function SignBytesAdd(ByVal SignedData As Byte(), ByVal SrcBytes As Byte(), ByVal Certificate As X509Certificate2) As Byte() Dim Result As Byte() = Nothing If SignedData IsNot Nothing AndAlso SignedData.Length > 0 AndAlso SrcBytes IsNot Nothing AndAlso SrcBytes.Length > 0 AndAlso Certificate IsNot Nothing Then Try Dim contentInfo As New ContentInfo(SrcBytes) Dim SignedCms As New SignedCms(contentInfo, True) SignedCms.Decode(SignedData) Dim CmsSigner As New CmsSigner(Certificate) cmsSigner.IncludeOption = X509IncludeOption.EndCertOnly CmsSigner.SignedAttributes.Add(New Pkcs9SigningTime) SignedCms.ComputeSignature(CmsSigner, False) Result = SignedCms.Encode() Catch ex As Exception Throw New Exception(ex.Message) Result = Nothing End Try End If Return Result End Function после этого удаляю одну из подписей авторPublic Function CertificateRemove(ByVal SignData As Byte(), CertCol As X509Certificate2Collection) As Byte() Try ' Декодируем сообщение Dim signedCms As new SignedCms signedCms.Decode(SignData) For Each si As SignerInfo In signedCms.SignerInfos If CertCol.Contains(si.Certificate) Then signedCms.RemoveSignature(si) Next Return signedCms.Encode() Catch ex As Exception Throw New Exception(ex.Message) Return Nothing End Try End Function список сертификатов для удаления подписи авторPublic shared Function CertificateListFromSign(ByVal SignData As Byte()) As X509Certificate2Collection Try Dim signedCms As New SignedCms signedCms.Decode(SignData) Return signedCms.Certificates Catch ex As Exception Throw New Exception(ex.Message) Return Nothing End Try End Function как мне при удалении подписи удалить и сертификат из подписи? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2015, 12:20
|
|||
---|---|---|---|
отсоединенная подпись (CMS/PKCS #7) |
|||
#18+
lmontek, Не понял что вы хотите. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2015, 12:34
|
|||
---|---|---|---|
|
|||
отсоединенная подпись (CMS/PKCS #7) |
|||
#18+
hVosttlmontek, Не понял что вы хотите. создаю отсоединенную подпись, подписываю двумя сертификатами. потом удаляю одну подпись. но signedCms.Certificates мне все равно показывает. что в файле подписи осталось два сертификата. как его изъять при удалении одной из подписей (при ошибочном подписании/пере подписании) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2015, 14:31
|
|||
---|---|---|---|
отсоединенная подпись (CMS/PKCS #7) |
|||
#18+
lmontek, подпиши ещё раз, делов-то. не думаю, что возня с ковырянием контейнера и его пере-сборкой тебе понравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2015, 10:20
|
|||
---|---|---|---|
|
|||
отсоединенная подпись (CMS/PKCS #7) |
|||
#18+
hVosttlmontek, подпиши ещё раз, делов-то. не думаю, что возня с ковырянием контейнера и его пере-сборкой тебе понравится. как мне подсказали, .Net не поддерживает функцию удаления сертификата из файла подписи ( хреново. Ладно пусть там остается. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2015, 12:53
|
|||
---|---|---|---|
отсоединенная подпись (CMS/PKCS #7) |
|||
#18+
lmontekhVosttlmontek, подпиши ещё раз, делов-то. не думаю, что возня с ковырянием контейнера и его пере-сборкой тебе понравится. как мне подсказали, .Net не поддерживает функцию удаления сертификата из файла подписи ( хреново. Ладно пусть там остается. .NET вообще беден в этом смысле. поэтому приходится работать с Crypto API, а работать с Crypto API намного приятней не в C#, а в C++/CLI. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&mobile=1&tid=1401952]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 268ms |
0 / 0 |