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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline rkrainov  
#1 Оставлено : 30 декабря 2016 г. 14:09:18(UTC)
rkrainov

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

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

Здравствуйте!
При создании PKCS конверта с данными, при попытке его подписать, запрашивается ПИН. В нашем решении мы не можем предлагать пользователю вводить ПИН каждый раз, когда отчетность уходит в надзирающие органы. Соответственно, необходимо сделать это автоматически. Есть ли возможность ввести ПИН праграммно?

/// <summary>
/// Подписывает массив данных сертификатом
/// </summary>
/// <param name="data">Данные</param>
/// <param name="certificate">Сертификат</param>
/// <returns></returns>
public byte[] SignByteArray(byte[] data, X509Certificate2 certificate)
{
// Создаем объект ContentInfo по сообщению.
// Это необходимо для создания объекта SignedCms.
ContentInfo contentInfo = new ContentInfo(data);

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

// Определяем подписывающего, объектом certificate.
CmsSigner cmsSigner = new CmsSigner(certificate);
cmsSigner.IncludeOption = X509IncludeOption.EndCertOnly;

/*-------------------------------------------------------------------------*/
/*-----В этом месте: либо эксепшн о невведенном ПИНе, либо запрос ПИНа-----*/
/*-------------------------------------------------------------------------*/

signedCms.ComputeSignature(cmsSigner, false);

// Кодируем CMS/PKCS #7 сообщение.
return signedCms.Encode();
}

Отредактировано пользователем 13 февраля 2017 г. 15:51:12(UTC)  | Причина: Не указана

Offline rkrainov  
#2 Оставлено : 13 февраля 2017 г. 15:53:18(UTC)
rkrainov

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

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

Здравствуйте!
Прошло 2 месяца с момента как я задал вопрос на форуме...
Реакции нет. Что мне делать?
Offline khomenko  
#3 Оставлено : 13 февраля 2017 г. 18:02:45(UTC)
Михаил Хоменко

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

Группы: Администраторы, Участники
Зарегистрирован: 28.04.2010(UTC)
Сообщений: 140
Мужчина
Откуда: Крипто-Про

Поблагодарили: 15 раз в 14 постах
Добрый день,

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