Статус: Новичок
Группы: Участники
Зарегистрирован: 05.03.2021(UTC) Сообщений: 8 Откуда: Земля
|
Добрый день, Пишу функцию для формирования отсоединённой подписи PKCS#7 по представленному алгоритму: 1. Из XML файл-а (PACK_DATA) вычисляется хэш по алгоритму ГОСТ Р 34.11-94. 2. Полученный хэш кодируется в Base64. 3. Base64 данные переводятся в текст в кодировке UTF-16LE. 4. Из полученного текста создается отсоединенная подпись PKCS#7. Сделал по аналогии с примером simple.zip\CMS\cs\AddSignDetached.cs Код:
string Crypto(string way, string CertThumb)
{
XmlDocument xmlDoc = new XmlDocument();
X509Store store = new X509Store("my", StoreLocation.CurrentUser);
X509Certificate2 cert = null;
xmlDoc.Load(way);
store.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 certs in store.Certificates.Find(X509FindType.FindByThumbprint, CertThumb, true))
{
cert = certs;
}
store.Close();
///-------------CryptoPro-----------------///
// ГОСТ Р.34-11 с отсоединенной подписью
byte[] bytes = Encoding.Default.GetBytes(xmlDoc.OuterXml);
Gost3411 gost3411 = new Gost3411CryptoServiceProvider();
byte[] result = gost3411.ComputeHash(bytes);
string resultStr = Convert.ToBase64String(result);
result = Convert.FromBase64String(resultStr);
ContentInfo contentInfo = new ContentInfo(result);
SignedCms signedCms = new SignedCms(contentInfo, true);
CmsSigner signer = new CmsSigner(cert);
//sha1RSA 1.3.14.3.2.26 GOST 1.2.643.2.2.9 Gost(2010)"1.2.643.2.2.19"
signer.DigestAlgorithm = new Oid("1.2.643.2.2.9");
signedCms.ComputeSignature(signer); //Ошибка тут
result = signedCms.Encode();
return result.ToString();
}
Ловлю ошибку: System.Security.Cryptography.CryptographicException: "'1.2.643.2.2.9' is not a known hash algorithm." Не могу понять, как исправить или понять конкретно в чём проблема(в сертификате или не та версия CryptoPro .net) При попытке поставить OID sha1RSA ошибка проходит, но выходит другая (System.Security.Cryptography.CryptographicException: "Could not determine signature algorithm for the signer certificate."). Стоит: ex-Sharpei версии 1.4.7132.03 Microsoft Visual Studio Community 2019 Версия 16.9.1 Отредактировано пользователем 23 марта 2021 г. 14:39:52(UTC)
| Причина: Выделить код
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,193 Сказал(а) «Спасибо»: 100 раз Поблагодарили: 274 раз в 254 постах
|
Добрый день! переустановите КриптоПро .NET 1. uninstall 2. reboot 3. install 4. reboot |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 05.03.2021(UTC) Сообщений: 8 Откуда: Земля
|
Переустановил, не помогло, подгружал в проект эти библиотеки: CryptoPro.Sharpei.Base.dll CryptoPro.Sharpei.ServiceModel.dll CryptoPro.Sharpei.ServiceModel45.dll CryptoPro.Sharpei.Xml.dll Есть предположение что не корректно работаю с CryptoPro .Net или версия .Net Framework забыл добавить версия .Net Framework 4.8.03752. Отредактировано пользователем 24 марта 2021 г. 10:03:01(UTC)
| Причина: Догадки
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,193 Сказал(а) «Спасибо»: 100 раз Поблагодарили: 274 раз в 254 постах
|
а версия КриптоПро CSP какая установлена? используйте CSP 5.0 R2 |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 05.03.2021(UTC) Сообщений: 8 Откуда: Земля
|
КриптоПро 4.0.9963 (5-ку пока не пробовал), Откатил .netFramework в проекте на 4.6 ошибка сменилась на: System.Security.Cryptography.CryptographicException: "Отказано в доступе." (в данный момент разбираюсь с ней, и хочу посмотреть приведет ли она опять к ошибке с OID)
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,193 Сказал(а) «Спасибо»: 100 раз Поблагодарили: 274 раз в 254 постах
|
Автор: MrTvink КриптоПро 4.0.9963 (5-ку пока не пробовал), Откатил .netFramework в проекте на 4.6 ошибка сменилась на: System.Security.Cryptography.CryptographicException: "Отказано в доступе." (в данный момент разбираюсь с ней, и хочу посмотреть приведет ли она опять к ошибке с OID)
скорее всего истек срок действия ЗК. попробуйте протестировать ее в панели КриптоПро CSP |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 05.03.2021(UTC) Сообщений: 8 Откуда: Земля
|
Результат теста сертификата: Код:Проверка завершилась с ошибкой
Контейнер закрытого ключа пользователя
имя 2021 - Реестр
уникальное имя REGISTRY\\2021 - Реестр
FQCN \\.\REGISTRY\2021 - Реестр
проверка целостности контейнера успешно
Ключ обмена доступен
длина ключа 512 бит
экспорт открытого ключа успешно
вычисление открытого ключа успешно
импорт открытого ключа успешно
подпись Ошибка 0x80090010: Отказано в доступе.
создание ключа обмена успешно
экспорт ключа разрешен
алгоритм ГОСТ Р 34.10-2001 DH
ГОСТ Р 34.10 256 бит, параметры обмена по умолчанию
ГОСТ Р 34.11-94, параметры по умолчанию
ГОСТ 28147-89, параметры по умолчанию
сертификат в контейнере соответствует закрытому ключу
поставщик ОГРН=1167746447461, ИНН=007733284010, C=RU, L=Москва, OU=Удостоверяющий центр, O=ФГУП ГНИВЦ ФНС России, CN=GNIVC FNS RUS
действителен с 4 марта 2021 г. 14:26:52
действителен по 4 марта 2022 г. 14:36:52
серийный номер 706C 9E00 E1AC AA9E 482E 1847 EE26 C230
Срок действия закрытого ключа 4 июня 2022 г. 14:18:43
Использование ключа обмена разрешено до окончания срока действия закрытого ключа.
Ключ подписи отсутствует //На том где все корректно так же
загрузка ключей успешно
Версия контейнера 2
Расширения контейнера
некритическое Расширение контейнера КриптоПро CSP. Срок действия ключа обмена
действителен по 4 июня 2022 г. 14:18:43
Проверил на нескольких рабочих местах на одном он работает корректно и даёт подписать тест в Browser CryptoPro plugin (и в тестировании CryptoPro Csp происходит всё корректно), не могу понять почему. Может ли что то блокировать работу сертификата (В КриптоПро CSP выключена безопасность)
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,193 Сказал(а) «Спасибо»: 100 раз Поблагодарили: 274 раз в 254 постах
|
проверьте что есть права на запись HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\Users\ SID-пользователя \Keys - ключи пользователя ОС |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 05.03.2021(UTC) Сообщений: 8 Откуда: Земля
|
Да, есть. И в КриптоПро CSP -> Безопасность -> Усиленный контроль. Отключён Bezymjannyjj.png (23kb) загружен 11 раз(а).
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,193 Сказал(а) «Спасибо»: 100 раз Поблагодарили: 274 раз в 254 постах
|
там должна быть подпапка в духе 2021 - Реестр посмотрите права там. если что попробуйте перенести на другой считыватель. к примеру HDIMAGE (директория) если у вас CSP 5.0 |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close