Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2015(UTC) Сообщений: 21
Поблагодарили: 1 раз в 1 постах
|
Добрый день!
Подскажите, у меня стоит задача подписать xml файл (электронная счет-фактура) сертификатом, который находится в реестре. На компьютере установлен КриптоПро CSP версии 3.6. Вроде в коде я нахожу нужный сертификат, но при вызове signerData.Sign(signer, false); выдается exception The signer's certificate is not valid for signing. В чем может быть проблема?
public void ftest() { CAPICOM.Store store = new CAPICOM.Store(); store.Open(CAPICOM.CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE, "AddressBook");
CAPICOM.Certificate cer = store.Certificates[2]; MessageBox.Show(cer.GetInfo(CAPICOM.CAPICOM_CERT_INFO_TYPE.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME) + " " + cer.ValidToDate.ToString());
store.Close();
CAPICOM.Signer signer = new CAPICOM.Signer(); signer.Certificate = cer; CAPICOM.SignedData signerData = new CAPICOM.SignedData();
signerData.Content = "<xml>test</xml>"; string ss = signerData.Sign(signer, false); } Возможно есть другой способ подписания?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,104   Сказал «Спасибо»: 613 раз Поблагодарили: 2378 раз в 1870 постах
|
Тестовый сертификат используется? Что написано в поле "Использование ключа"? |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,104   Сказал «Спасибо»: 613 раз Поблагодарили: 2378 раз в 1870 постах
|
Зачем используется AddressBook? |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2015(UTC) Сообщений: 21
Поблагодарили: 1 раз в 1 постах
|
Использую рабочий сертификат. Текст в поле "Использование ключа" - Цифровая подпись, Неотрекаемость, Шифрование ключей, Шифрование данных (f0) Поле выделено - желтым значком с восклицательным знаком.
AddressBook нашел методом тыка, сертификат расположен на закладке "Другие пользователи", если смотреть в окне Свойтства браузера \ Сертификаты.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,104   Сказал «Спасибо»: 613 раз Поблагодарили: 2378 раз в 1870 постах
|
При просмотре сертификата - на вкладке Общие: есть закрытый ключ для этого сертификата? Что дает (ошибки есть\лог здесь опубликовать) тестирование этого сертификата через КриптоПРО CSP\Сервис\Протестировать? |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2015(UTC) Сообщений: 21
Поблагодарили: 1 раз в 1 постах
|
Добрый день! Переустановили сертификат и стало подписываться. Но делаю проверку через сайт http://www.gosuslugi.ru/pgu/eds/— электронного документа. ЭП — отсоединенная, в формате PKCS#7 пишет ЭП не верна А проверка — электронного документа. ЭП — в формате PKCS#7 проходит. Код CAPICOM.Store store = new CAPICOM.Store(); store.Open(CAPICOM.CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE, "My"); CAPICOM.Certificate cer = store.Certificates[1]; store.Close(); CAPICOM.Signer signer = new CAPICOM.Signer(); signer.Certificate = cer; CAPICOM.SignedData signerData = new CAPICOM.SignedData(); string str = System.IO.File.ReadAllText("c:\\2\\ON_SFAKT_2AEBB260FA2-67B2-410E-B5C2-4E55D8778EB3_2AE5264DFA7-096F-406B-94C4-614BE2C75B42_20150226_BE791445-2986-4829-A0D2-93975E56FC44.xml", Encoding.Default); signerData.Content = str; string ss = signerData.Sign(signer, false); System.IO.File.WriteAllText("c:\\2\\ON_SFAKT_2AEBB260FA2-67B2-410E-B5C2-4E55D8778EB3_2AE5264DFA7-096F-406B-94C4-614BE2C75B42_20150226_BE791445-2986-4829-A0D2-93975E56FC44.bin", ss); В чем может быть ошибка? Спасибо. Отредактировано пользователем 6 марта 2015 г. 12:14:11(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2015(UTC) Сообщений: 21
Поблагодарили: 1 раз в 1 постах
|
bin файл нельзя загрузить поэтому вставил файл с раширением log
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,104   Сказал «Спасибо»: 613 раз Поблагодарили: 2378 раз в 1870 постах
|
Цитата:string ss = signerData.Sign(signer, false); Редко кто читает документацию Код:SignedData.Sign( _
[ ByVal Signer ], _
[ ByVal bDetached ], _
[ ByVal EncodingType ] _
)
|
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2015(UTC) Сообщений: 21
Поблагодарили: 1 раз в 1 постах
|
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2015(UTC) Сообщений: 21
Поблагодарили: 1 раз в 1 постах
|
нужно ли использовать параметр, как примере signer.Options = CAPICOM.CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN;
или можно без него?
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close