Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Автор: Андрей *  в RFC нужно посмотреть.. Подскажите, что следует посмотреть ? |
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,215  Сказал(а) «Спасибо»: 101 раз Поблагодарили: 285 раз в 265 постах
|
Добрый день! попробуйте перевернуть подпись побайтово: 63<->0, 62<->1 ... и проверить |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Автор: Санчир Момолдаев  Добрый день! попробуйте перевернуть подпись побайтово: 63<->0, 62<->1 ... и проверить Сделал array.reverse() PS. Не помогло...( Опять неправильная подпись Сделал: Код:$rev_sig = $signers[0].GetSignature()
[array]::Reverse($rev_sig)
[System.IO.File]::WriteAllBytes((gci .\1.sig),$rev_sig)
csptest -keyset -verify GOST12_256 -in .\1.hash -signature .\1.sig -cert .\1.cer
Отредактировано пользователем 29 декабря 2020 г. 21:42:34(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,215  Сказал(а) «Спасибо»: 101 раз Поблагодарили: 285 раз в 265 постах
|
в -in надо передать имя исходного файла, а не хэша |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Автор: Санчир Момолдаев  в -in надо передать имя исходного файла, а не хэша Так тоже попробовал. Не получилось ... Опять неправильная подпись. PS. Попробовал и развернуть байты подписи array.reverse(). Неправильная подпись. PPS. Скорее всего проблема в методе GetContentDigest(). Т.к. передавая его PrivateKey.VerifyHash() тоже получается false на выходе Отредактировано пользователем 29 декабря 2020 г. 22:00:31(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,215  Сказал(а) «Спасибо»: 101 раз Поблагодарили: 285 раз в 265 постах
|
так у вас же cades-bes подпись. в ней хэшируются подписанные аттрибуты и затем подписываются. и это значение подписи от хэша подписанных аттрибутов, а не исходных данных может обойтись без cms подписей? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Автор: Санчир Момолдаев  так у вас же cades-bes подпись. в ней хэшируются подписанные аттрибуты и затем подписываются. и это значение подписи от хэша подписанных аттрибутов, а не исходных данных может обойтись без cms подписей? Как раз сегодня об этом спрашивал тутPS. Я пытаюсь найти метод, с помощью которого можно посчитать этот хеш-код. Видимо, метод GetContentDigest() в итоге выдает messageDigest, а не то, что нужно. PSS. Нет, messageDigest в файле Example1.docx.sig: Код:22 04 06 6c 70 22 33 34 31 6f 4d c6 f7 eb a6 11
9b 5e 64 91 ae df 2b 9a 85 87 e9 bb 17 d6 bb 33
Вычисленный хеш-код для подписываемого файла Example1.docx: Код:cpverify.exe -mk .\Example1.docx -alg GR3411_2012_256
Вывод: 2204066C70223334316F4DC6F7EBA6119B5E6491AEDF2B9A8587E9BB17D6BB33
Отредактировано пользователем 29 декабря 2020 г. 22:13:33(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,215  Сказал(а) «Спасибо»: 101 раз Поблагодарили: 285 раз в 265 постах
|
а КриптоПро .NET установлен? если через него то Код:// Создаем объект для хэширования.
Gost3411_2012_256CryptoServiceProvider gost3411 = new Gost3411_2012_256CryptoServiceProvider();
// Вычисляем хэш от всех прочитанных данных.
byte[] hashValue = gost3411.ComputeHash(data);
gost3411.Clear();
X509Certificate2 signerCert = GetSignerCert("Test");
Console.WriteLine("Сертификат: {0}",signerCert.Subject);
// первый способ
Gost2012_256SignatureFormatter gost = new Gost2012_256SignatureFormatter();
gost.SetKey(signerCert.PrivateKey);
byte[] sign = gost.CreateSignature(hashValue);
File.WriteAllBytes(sigFileName1,sign.Reverse().ToArray());
//еще одна подпись
Gost3410_2012_256CryptoServiceProvider cert_key = signerCert.PrivateKey as Gost3410_2012_256CryptoServiceProvider;
sign = cert_key.CreateSignature(hashValue);
File.WriteAllBytes(sigFileName2, sign);
Отредактировано пользователем 29 декабря 2020 г. 22:15:06(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Автор: Санчир Момолдаев  а КриптоПро .NET установлен? если через него то Код:// Создаем объект для хэширования.
Gost3411_2012_256CryptoServiceProvider gost3411 = new Gost3411_2012_256CryptoServiceProvider();
// Вычисляем хэш от всех прочитанных данных.
byte[] hashValue = gost3411.ComputeHash(data);
gost3411.Clear();
X509Certificate2 signerCert = GetSignerCert("Test");
Console.WriteLine("Сертификат: {0}",signerCert.Subject);
// первый способ
Gost2012_256SignatureFormatter gost = new Gost2012_256SignatureFormatter();
gost.SetKey(signerCert.PrivateKey);
byte[] sign = gost.CreateSignature(hashValue);
File.WriteAllBytes(sigFileName1,sign.Reverse().ToArray());
//еще одна подпись
Gost3410_2012_256CryptoServiceProvider cert_key = signerCert.PrivateKey as Gost3410_2012_256CryptoServiceProvider;
sign = cert_key.CreateSignature(hashValue);
File.WriteAllBytes(sigFileName2, sign);
Да, КриптоПро .Net стоит. Но идея не в том, чтобы посчитать хеш-код для файла, а понять, что подписывается в CMS Отредактировано пользователем 29 декабря 2020 г. 22:15:10(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,215  Сказал(а) «Спасибо»: 101 раз Поблагодарили: 285 раз в 265 постах
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close