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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline smartchaos  
#1 Оставлено : 25 декабря 2013 г. 9:34:55(UTC)
smartchaos

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Как создать усовершенствованную ЭЦП без диалога выбора сертификата (в silent-режиме)?
Offline Андрей Писарев  
#2 Оставлено : 25 декабря 2013 г. 10:27:22(UTC)
Андрей *

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

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

Сказал «Спасибо»: 550 раз
Поблагодарили: 2212 раз в 1727 постах
Автор: smartchaos Перейти к цитате
Как создать усовершенствованную ЭЦП без диалога выбора сертификата (в silent-режиме)?


Указать необходимую для создания подписи информацию - программно.

Техническую поддержку оказываем тут
Наша база знаний
Offline smartchaos  
#3 Оставлено : 25 декабря 2013 г. 10:34:03(UTC)
smartchaos

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Я создаю усовершенствованную функцию с помощью следующего кода:

TSPRequest request = new TSPCOM.TSPRequest();
TSPCOM.TSPStamp stamp;
CAPICOM.HashedData hash = new CAPICOM.HashedData();
CAPICOM.Utilities utils = new Utilities();


hash.Algorithm = (CAPICOM.CAPICOM_HASH_ALGORITHM)CAPICOM.CAPICOM_HASH_ALGORITHM.CAPICOM_HASH_ALGORITHM_SHA_256;
hash.Hash(message.ToString());

request.Hash = (HashedData)hash;

request.UseNonce = true;
request.PolicyID = string.Empty;
request.CertReq = true;

request.TSAAddress = "http://www.cryptopro.ru/tsp/tsp.srf";

request.TSAAuthType = TSPCOM.TSPCOM_AUTH_TYPE.TSPCOM_AUTH_TYPE_ANONYMOUS;
request.TSAUserName = string.Empty;
request.TSAPassword = string.Empty;

string encodedStamp = string.Empty;

stamp = request.Send(false);
encodedStamp = utils.Base64Encode(stamp.Export());


CAdESCOM.CPAttribute atribute = new CPAttribute();
atribute.OID.Name = CAPICOM.CAPICOM_OID.CAPICOM_OID_TIME_STAMP_SIGNING_EKU;//пробовал и такой тип CAPICOM_OID_TIME_STAMPING_EKU;
//atr.OID.Value = "1.2.3.4.5";
atribute.Value = encodedStamp;
var signer = new CAdESCOM.CPSigner();
signer.UnauthenticatedAttributes.Add(atribute);
var signedData = new CAdESCOM.CadesSignedData();
signedData.Content = message.ToString();

var addedImprovedSign = signedData.SignCades(signer, CAdESCOM.CADESCOM_CADES_TYPE.CADESCOM_CADES_BES,
true, CAdESCOM.CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);

Как мне указать сертификат которым делается подпись в silent-режиме?
Offline Новожилова Елена  
#4 Оставлено : 25 декабря 2013 г. 10:42:56(UTC)
Новожилова Елена

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

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

Поблагодарили: 99 раз в 95 постах
Заполнить свойство signer.Certificate
thanks 1 пользователь поблагодарил Новожилова Елена за этот пост.
smartchaos оставлено 25.12.2013(UTC)
Offline smartchaos  
#5 Оставлено : 25 декабря 2013 г. 11:04:11(UTC)
smartchaos

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
При заполнении этого свойства
signer.Certificate = certificate as ICertificate;
возникает следующая ошибка
Exception from HRESULT: 0x80880210
Эта ошибка означает что у этого сертификата нет ассоциированого приватного ключа но это не так, я использовал этот сертификат в режиме выбора и он работал.
Я ищу сертификаты следующим образом:
var certificates = store.Certificates;
var certificate = (certificates as ICertificates2).Find(CAPICOM_CERTIFICATE_FIND_TYPE.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprintString);
if (certificate == null)
{
throw new Exception("Сертификат не найден");
}
Может это не правильно?
Offline smartchaos  
#6 Оставлено : 25 декабря 2013 г. 11:09:31(UTC)
smartchaos

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Сам разобрался надо было signer.Certificate = certificate[1];
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.