Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Автор: Санчир Момолдаев Вот что получилось на данный момент (а что-то получилось!!)) ) Подписал следующим образом: Код:[CryptoPro.Sharpei.Gost3411_2012_256CryptoServiceProvider]$gost3411 = [CryptoPro.Sharpei.Gost3411_2012_256CryptoServiceProvider]::new()
[byte[]]$hashValue = $gost3411.ComputeHash($DataFileRawBytes)
$gost3411.Clear()
$signingCert = (gi Cert:\CurrentUser\My\E3005A57425DFFB920DB2953050D83E89F08008D)
[CryptoPro.Sharpei.Gost2012_256SignatureFormatter]$gost = [CryptoPro.Sharpei.Gost2012_256SignatureFormatter]::new()
$gost.SetKey($signingCert.PrivateKey)
$signature = $gost.CreateSignature($hashValue)
Далее попробовал проверить через csptest, не получилось, НО!!! я сделал array.reverse() для $signature и csptest проверил подпись!!! Т.е. таким образом заработало! PS. Это фактически равносильно csptest -keys -sign Отредактировано пользователем 29 декабря 2020 г. 22:36:24(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Но непонятно на самом деле, что было подписано в файле Example1.docx.sign ...
|
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,038 Сказал(а) «Спасибо»: 88 раз Поблагодарили: 223 раз в 211 постах
|
Автор: Анатолий Колкочев Но непонятно на самом деле, что было подписано в файле Example1.docx.sign ...
еще раз подписаны аттрибуты берете этот файл. заходите на https://lapo.it загружаете вот то что под [0] то и подписано |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
При проверке подписи из cms с подписанными атрибутами, нужно проверять подпись под структурой с атрибутами, а не под байтами(хеш контента) |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
3.png (69kb) загружен 6 раз(а).Там есть несколько нулей... Какой именно следует выбрать? Самый нижний? Я просто никак понять не могу( Отредактировано пользователем 29 декабря 2020 г. 22:47:23(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,038 Сказал(а) «Спасибо»: 88 раз Поблагодарили: 223 раз в 211 постах
|
самый нижний. где messageDigest |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Понял. Сначала идет описание атрибутов, а потом то, что подписываем. PS. Подписывается эта часть, верно? 4.png (304kb) загружен 7 раз(а).Отредактировано пользователем 29 декабря 2020 г. 23:00:37(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,038 Сказал(а) «Спасибо»: 88 раз Поблагодарили: 223 раз в 211 постах
|
|
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,038 Сказал(а) «Спасибо»: 88 раз Поблагодарили: 223 раз в 211 постах
|
вот тут в rfc написано что обязательно должно быть что опционально |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Автор: Санчир Момолдаев Попробовал вытащить таким образом - не получилось( Он выдает только значения подписанных атрибутов, однако не возвращает полностью подписанный блок... Подписывается блок полностью, а не только значения, как я понял... Попробовал еще сделать так: Код:$encodedAttr = $signers[0].GetEncodedSignedAttributes() #Получил весь подписанный блок (используется библиотека bouncycastle)
$hash = [CryptoPro.Sharpei.Gost3411_2012_256]::Create().ComputeHash($encodedAttr) #Считаю хеш-код для него
$signingCert = gi Cert:\CurrentUser\My\E3005A57425DFFB920DB2953050D83E89F08008D
$signingCert.PrivateKey.VerifyHash($hash, $signers[0].GetSignature()) #Проверяю
#$signingCert.PrivateKey.VerifySignature($hash, $signers[0].GetSignature())
Но постоянно получаю в ответ $falseВ целом я разобрался, что реально подписывается в CADeS. Спасибо большое! Хотелось бы еще самостоятельно проверить, но пока не получается ( Отредактировано пользователем 30 декабря 2020 г. 10:48:46(UTC)
| Причина: Не указана |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close