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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline trinekat  
#1 Оставлено : 4 октября 2019 г. 14:46:52(UTC)
trinekat

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

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

Приложение работало нормально, однако после замены личного сертификата начались проблемы. Пришлось так же обновить КриптоПро CSP до версии 4.0.9944.
Может кто-то может предположить в чем проблема?

Цитата:
Ошибка при создании XML файла. System.Security.Cryptography.CryptographicException: Нет доступа к карте. Введен неправильный PIN-код.

в System.Security.Cryptography.Pkcs.SignedCms.Sign(CmsSigner signer, Boolean silent)
в System.Security.Cryptography.Pkcs.SignedCms.ComputeSignature(CmsSigner signer, Boolean silent)
в System.Security.Cryptography.Pkcs.SignedCms.ComputeSignature(CmsSigner signer)
в OrdersXMLSenderSingle.Program.SignMsg(Byte[] msg, X509Certificate2 signerCert) в ~\Program.cs:строка 716
в OrdersXMLSenderSingle.Program.SignDetachedResource(String path) в ~\Program.cs:строка 658
в OrdersXMLSenderSingle.Program.CreateXMLFile() в ~\Program.cs:строка 619
в OrdersXMLSenderSingle.Program.GetDataXML() в ~\Program.cs:строка 291



Код метода подписи сообщения секретным ключом:

Код:
static public byte[] SignMsg(Byte[] msg, X509Certificate2 signerCert)
        {
            // Создаем объект ContentInfo по сообщению. Это необходимо для создания объекта SignedCms.
            ContentInfo contentInfo = new ContentInfo(msg);

            // Создаем объект SignedCms по только что созданному объекту ContentInfo. SubjectIdentifierType установлен по умолчанию в IssuerAndSerialNumber.
            // Свойство Detached устанавливаем явно в true, таким образом сообщение будет отделено от подписи.
            SignedCms signedCms = new SignedCms(contentInfo, true);

            // Определяем подписывающего, объектом CmsSigner.
            CmsSigner cmsSigner = new CmsSigner(signerCert);
            
            // Подписываем CMS/PKCS #7 сообение.
            signedCms.ComputeSignature(cmsSigner);
           
            return signedCms.Encode();
        }



Offline Андрей Писарев  
#2 Оставлено : 4 октября 2019 г. 15:04:29(UTC)
Андрей *

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

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

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

Режим работы - служба, пароль есть на контейнере?
Техническую поддержку оказываем тут
Наша база знаний
Offline trinekat  
#3 Оставлено : 7 октября 2019 г. 9:25:03(UTC)
trinekat

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

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

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

Есть пароль на контейнере закрытого ключа.
Уточните про режим работы, что имеете ввиду?

Это маленькая программка, запускается автоматически через планировщик заданий.
Offline trinekat  
#4 Оставлено : 8 октября 2019 г. 9:00:11(UTC)
trinekat

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

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

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