Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

35 Страницы«<1314151617>»
Опции
К последнему сообщению К первому непрочитанному
Offline madsen  
#141 Оставлено : 23 марта 2021 г. 9:54:22(UTC)
madsen

Статус: Новичок

Группы: Участники
Зарегистрирован: 22.03.2021(UTC)
Сообщений: 3

Сказал(а) «Спасибо»: 1 раз
В документах по ГИС ЖКХ есть ссылка на примеры подписи xml:
Ssylka na git.png (60kb) загружен 4 раз(а).
В этих примерах есть библиотека Xades:
Ssylka na library .png (27kb) загружен 8 раз(а).

Объект SignatureDescription используется для формирования SignatureValue, который в дальнейшем фигурирует в передаваемой xml.
kod.png (86kb) загружен 4 раз(а).
kod2.png (84kb) загружен 3 раз(а).

Всё это прекрасно работает на .NET Framework, но хотелось проверить, как без изменения этого кода будет работать на .NET Core
Offline Артём Макаров  
#142 Оставлено : 23 марта 2021 г. 10:31:36(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 205

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 54 раз в 53 постах
В core изменилась работа CryptoConfig. Теперь честно через него нельзя получить SignatureDescription, ибо он в нём отсутствует. В core описания SignatureDescription переехали во внутренний закртый класс CryptoHelpers в сборке Xml.

CryptoConfig из старого фреймворка - https://referencesource....nfig.cs,2f2b8dcdee3aa37d

Новый конфиг - https://github.com/dotne...tography/CryptoConfig.cs

Новый конфиг Xml - https://github.com/dotne...phy/Xml/CryptoHelpers.cs

Открывать CryptoHelpers, как и делать по старому CryptoConfig пока не планируем, ибо стараемся сохранить максимальную совместимость с оригинальным core, даже в рамках спорных решений.

Как вариант вам - либо получить CryptoHelpers из сборки System.Security.Cryptography.Xml и пользоваться им, либо написать функцию, которая сама по строке будет возвращать нужный тип описания.

Код:
var assm = Assembly.GetAssembly(typeof(SignedXml));
var type = assm.GetType("System.Security.Cryptography.Xml.CryptoHelpers");
var createFromKnownNameMethod = type.GetMethod(
    "CreateFromKnownName", 
    BindingFlags.Static | BindingFlags.Public);
var descr = createFromKnownNameMethod.Invoke(null, new object[] { SignedXml.XmlDsigGost3410_2012_256Url });
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Артём Макаров за этот пост.
madsen оставлено 23.03.2021(UTC)
Offline madsen  
#143 Оставлено : 23 марта 2021 г. 12:58:12(UTC)
madsen

Статус: Новичок

Группы: Участники
Зарегистрирован: 22.03.2021(UTC)
Сообщений: 3

Сказал(а) «Спасибо»: 1 раз
Да, код рабочий, SignatureDescription таким образом можно получить.

Ещё вопрос по поводу метода SetContainerPassword. Он убран и ему нет альтернативы?
SetContPass.png (171kb) загружен 7 раз(а).
NoSet.png (174kb) загружен 4 раз(а).
Offline Артём Макаров  
#144 Оставлено : 23 марта 2021 г. 13:01:45(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 205

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 54 раз в 53 постах
Данный метод пока не реализовывали. Постараемся в ближайшее время добавить.

В текущей версии указывать пароль на контейнер можно через указание его в CspParameters (KeyPassword).

Отредактировано пользователем 24 марта 2021 г. 10:43:19(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Копатыч  
#145 Оставлено : 24 марта 2021 г. 14:07:23(UTC)
Копатыч

Статус: Новичок

Группы: Участники
Зарегистрирован: 26.05.2020(UTC)
Сообщений: 6

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Коллеги, возникла нестандартная потребность.
У клиента имеется лицензия на CSP 4.0, хочется на неткоре как-то взлететь с этой версией.

Если попробовать поднять приложение и поработать с ним, то натыкаюсь на ошибку:

Цитата:
System.EntryPointNotFoundException: Unable to find an entry point named 'CertAddCertificateLinkToStore' in shared library 'libcapi20'.
at Interop.crypt32.CertAddCertificateLinkToStore(SafeCertStoreHandle hCertStore, SafeCertContextHandle pCertContext, CertStoreAddDisposition dwAddDisposition, IntPtr ppStoreContext)
at Internal.Cryptography.Pal.StorePal.LinkFromCertificateCollection(X509Certificate2Collection certificates)
at Internal.Cryptography.Pal.FindPal..ctor(X509Certificate2Collection findFrom, X509Certificate2Collection copyTo, Boolean validOnly)
at Internal.Cryptography.Pal.FindPal.OpenPal(X509Certificate2Collection findFrom, X509Certificate2Collection copyTo, Boolean validOnly)
at Internal.Cryptography.Pal.FindPal.FindFromCollection(X509Certificate2Collection coll, X509FindType findType, Object findValue, Boolean validOnly)
at System.Security.Cryptography.X509Certificates.X509Certificate2Collection.Find(X509FindType findType, Object findValue, Boolean validOnly)


Подскажите, пожалуйста, в какую сторону копать, чтобы выйти из ситуации?
Offline Артём Макаров  
#146 Оставлено : 24 марта 2021 г. 14:09:26(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 205

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 54 раз в 53 постах
На 4.0 полностью не взлетим, только с 5.0, причём относительно свежей. Вносили доработки и правки в саму CSP для корректной работы некоторых методов.
Техническую поддержку оказываем тут
Наша база знаний
Offline Зорькин Семен  
#147 Оставлено : 29 марта 2021 г. 15:13:11(UTC)
Зорькин Семен

Статус: Новичок

Группы: Участники
Зарегистрирован: 21.09.2018(UTC)
Сообщений: 4
Мужчина

Сказал «Спасибо»: 1 раз
Хочу уточнить, можно ли сейчас проверить открепленную подпись, полученную от cryptopro plugin? Подписывали хэш, подпись в формате cades-bes.
Offline hatewarmobkill  
#148 Оставлено : 29 марта 2021 г. 22:10:08(UTC)
hatewarmobkill

Статус: Новичок

Группы: Участники
Зарегистрирован: 29.03.2021(UTC)
Сообщений: 1
Откуда: Korolyov

Добрый день!
Возникла проблема с итеграцией с libcapi20 на AstraLinux. Сама либа подключается ок. Сертификаты и контейнеры находятся в системе, но возникает ошибка при проверке наличия сертификата в контейнерах.
На Windows интеграция идет с либами crypt32.dll и advapi32.dll - проблемы не возникает.
Системный журнал AstraLinux пишет следующее.

мар 29 17:03:10 f3pos dotnet[1983]: <capi10>CryptAcquireContextW!WideCharToMultiByte error!
мар 29 17:03:10 f3pos dotnet[1983]: <capi10>CryptGetUserKey!() invalid argument(s)!
мар 29 17:03:10 f3pos dotnet[1983]: <capi10>CryptGetUserKey!failed: LastError = 0x57
мар 29 17:03:10 f3pos dotnet[1983]: <capi20>CryptExportPublicKeyInfoEx!failed: LastError = 0x57
мар 29 17:03:10 f3pos dotnet[1983]: <capi20>CryptExportPublicKeyInfo!failed: LastError = 0x57
мар 29 17:03:10 f3pos dotnet[1983]: <capi10>CryptGetUserKey!() invalid argument(s)!
мар 29 17:03:10 f3pos dotnet[1983]: <capi10>CryptGetUserKey!failed: LastError = 0x57
мар 29 17:03:10 f3pos dotnet[1983]: <capi20>CryptExportPublicKeyInfoEx!failed: LastError = 0x57
мар 29 17:03:10 f3pos dotnet[1983]: <capi20>CryptExportPublicKeyInfo!failed: LastError = 0x57

начинается все с вызова метода CryptExportPublicKeyInfo
имплементация:

[DllImport("libcapi20.so", EntryPoint = "CryptExportPublicKeyInfo", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool CryptExportPublicKeyInfo(
[In] IntPtr hProv,
[In] uint dwKeySpec,
[In] uint dwCertEncodingType,
[Out] IntPtr pInfo,
[In, Out] ref uint pcbInfo);

сам кроссплатформенный сервис реализован на .net core 3.1

Отредактировано пользователем 29 марта 2021 г. 22:12:20(UTC)  | Причина: Не указана

Offline OFFOSORG  
#149 Оставлено : 30 марта 2021 г. 11:03:30(UTC)
OFFOSORG

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.03.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Рязань

Сказал(а) «Спасибо»: 2 раз
Здравствуйте!
Подскажите, пожалуйста, способ шифрования подписанного XML с использованием вашего CSP на Core.

Необходимо создать сессионный ключ и зашифровать некоторые данные XML и сам ключ.
Возможно у вас найдется какой-нибудь пример? Это бы очень облегчило жизнь)


Ниже на всякий случай приведу указанные алгоритмы.
Шифрование ключа по ГОСТ 2012-256:
urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2012-256
Шифрование данных:
urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147

Спасибо!
PS: с шифрованием ранее не сталкивался, поэтому если я что не так написал, прошу меня понять и простить)

Upd: Нашел некий пример шифрования на Framework по своей задаче. Классы там более менее те же, (без "CP").
http://www.cryptopro.ru/...&m=111050#post111050
Взаимодействие с контейнером CSP происходит. Значит механизм рабочий.
Но если вдруг пример у кого нибудь есть, поделитесь пожалуйста.
Спасибо!

Отредактировано пользователем 30 марта 2021 г. 12:53:44(UTC)  | Причина: Не указана

Offline Сергей Сивов  
#150 Оставлено : 12 апреля 2021 г. 13:36:58(UTC)
Сергей Сивов

Статус: Новичок

Группы: Участники
Зарегистрирован: 12.04.2021(UTC)
Сообщений: 5
Российская Федерация
Откуда: Нижний Новгород

Прошу помощи по работе с проверкой цифровой подписи.

Установлены Инструменты КриптоПРО. При помощи инструментов КриптоПРО создан сертификат
Алгоритм подписи : ГОСТ Р 34.11/34.10-2001
Алгоритм откр. кл. : ГОСТ Р 34.10-2012 256 бит (512 бит)

При помощи этого сертификата подписан файл File, получена подпись File.p7s

Сертификат экспортирован в файл.
Используя DotnetSampleProject подгружаем Сертификат, файл и файл подписи.
Проверяем подпись - подпись не валидна.

Код:
var hash = HashAlgorithmName.Gost3411_2012_256;
var gostPk = gostCert.GetGost3410_2012_256PublicKey();
var dataValidationResult = gostPk.VerifyData(file, signedFile, hash);

dataValidationResult - false


RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
35 Страницы«<1314151617>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.