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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline alex.master  
#1 Оставлено : 24 декабря 2024 г. 15:21:59(UTC)
alex.master

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

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

Здравствуйте.

Суть проблемы Windows Server 2019. Установлены КриптоПро CSP 5, КриптоПро.net сервер, КриптоПро .Net клиент.
Сертификат КриптоПро с закрытым ключом установлен в LocalMachine, контейнер - в реестр с паролем.
При попытке зашифровать/расшифровать файл кода на c# получаем ошибку:


System.Security.Cryptography.CryptographicException
----Source: System.Security
----Message---------
Unknown error "-1073741275".

При попытке расшифровать файл, зашифрованный открытым ключом сертификата, инструментами КриптоПро
получаем:
"
"Cannot find the certificate and private key to use for decryption.
Код ошибки 0x8009200C".

После установки сертификата в CurrentUser, всё расшифровывается. Т.е. если от в LocalMachine, то ошибка, если в CurrentUser, то нет.
Права на контейнер и сертификат для этого пользователя выданы все.


Падает на вызове envelopedCms.Decrypt(). Ошибка та же - Unknown error "-1073741275".


Буду очень признателен за помощь в этом вопросе.

Отредактировано пользователем 25 декабря 2024 г. 17:10:52(UTC)  | Причина: Не указана

Offline alex.master  
#2 Оставлено : 14 января 2025 г. 15:16:09(UTC)
alex.master

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

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

Добрый день.

Код здесь тривиальный:
public static byte[] DecryptSignedCmsMessage(byte[] encData, X509Certificate2 ourCertificate)
{
var extraOurStore = new X509Certificate2Collection(ourCertificate);

// Создаем объект для декодирования и расшифрования.
EnvelopedCms envelopedCms = new EnvelopedCms();

// Декодируем сообщение.
m_logger.Trace("Декодируем сообщение...");
envelopedCms.Decode(encData);
m_logger.Trace("Сообщение декодировано успешно.");

// Расшифровываем сообщение
m_logger.Trace("Расшифровываем сообщение...");
envelopedCms.Decrypt(envelopedCms.RecipientInfos[0]), extraOurStore); // Здесь получаем UnknownError.
m_logger.Trace("Сообщение расшифровано успешно.");

return envelopedCms.ContentInfo.Content;
}

На тестовом сервере с тестовым сертификатом все работает.
На продакшн сервере получаем ошибку.
Offline Андрей *  
#3 Оставлено : 14 января 2025 г. 15:41:33(UTC)
Андрей *

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

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

Сказал «Спасибо»: 551 раз
Поблагодарили: 2235 раз в 1743 постах
Здравствуйте.

Зачем используется extraOurStore?

Вызов envelopedCms.Decrypt(); - успешно завершается, если убрать?
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.