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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline two_oceans  
#11 Оставлено : 2 апреля 2021 г. 13:33:35(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Вообще в NET не особо углубляюсь, но насколько понимаю, возможно смешивание библиотек.

Суть в том, что для своих библиотек NET использует управляемую память - автоматически выделяет/освобождает, а вот с внешними библиотеками надо использовать неуправляемую память и вручную выделять/освобождать. Мне где-то попадался пример как создавать запросы на сертификат подобным образом, обращаясь к CryptoApi прямо из NET (без классов криптографии), найду - отпишу. Для самой простой подписи этого и хватит. С усовершенствованной посложнее.
Далее для COM библиотек нужно еще и инициализировать систему COM.
Offline LONG11  
#12 Оставлено : 2 апреля 2021 г. 13:46:14(UTC)
LONG11

Статус: Активный участник

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

Сказал(а) «Спасибо»: 24 раз
Автор: two_oceans Перейти к цитате
Вообще в NET не особо углубляюсь, но насколько понимаю, возможно смешивание библиотек.

Суть в том, что для своих библиотек NET использует управляемую память - автоматически выделяет/освобождает, а вот с внешними библиотеками надо использовать неуправляемую память и вручную выделять/освобождать. Мне где-то попадался пример как создавать запросы на сертификат подобным образом, обращаясь к CryptoApi прямо из NET (без классов криптографии), найду - отпишу. Для самой простой подписи этого и хватит. С усовершенствованной посложнее.
Далее для COM библиотек нужно еще и инициализировать систему COM.


С обращением из Net к неуправляемой памяти и прочей маршализации структур - проблем нет особо. Благодаря форуму из NET научился работать с CryptoApi.
Другое дело, что плаваю вообще в понятии "усовершенствованная подпись", то есть понятно, что это заверенное время и проверка действительности всех сертификатов в цепочке. Но не понятно, как этим пользоваться из WinCryptoApi применительно к ГОСТ. Как я понимаю, решение КриптоПро ЭЦП и реализовано, чтобы помочь встраиванию в прикладные системы усовершенствованную подпись. И реализовано это как COM (CadesCom) для подключения как плагином, так и различным языкам (хоть VBA, VBS, ...Net). А также есть реализация в виде библиотек для языка С/С++. И в этом примере (выше) для С я (как я понял) используется для подписания как раз контекст сертификата WinCryptoApi и казалось бы проблема решена.

Но...мне не хватает знаний понять: 1) вообще прав ли я в своих рассуждениях; 2) можно ли подключить эту неуправляемую dll к С# и как объявлять вызовы и структуру...

Так как использование COM требует и контекста сертификата в типах Capi/Cades COM, а в примере языка С мне показалось, что контекст родной WinCryptoApi.

PS:
Нашел, что почитать умное.

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

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