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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Neznaika  
#1 Оставлено : 13 апреля 2009 г. 12:07:39(UTC)
Neznaika

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

Группы: Участники
Зарегистрирован: 13.04.2009(UTC)
Сообщений: 5
Откуда: MSK

Добрый день!

Задача стоит так: нужно передавать подписанный XML с компьютера 1 на компьютер 2, включая в XML сертификат и публичный ключ, так, чтобы компьютер 2 после приема файла мог проверить подпись и сертификат, причем ключ и сертификат должены быть извлечены из полученного XML.
Подписывается все стандартным образом. Однако, если в коде присутствует строка:
Код:

           keyInfo.AddClause(new GostKeyValue((Gost3410)Key)); // <<<<<-----  именно эта строка

	// Добавляем KeyInfo в SignedXml.
	signedXml.KeyInfo = keyInfo;
	signedXml.ComputeSignature();
	XmlElement xmlDigitalSignature = signedXml.GetXml();


То затем при проверке подписи, в строке
Код:

signedXml.LoadXml((XmlElement)nodeList[0]);


Получаем Exception:
Код:

System.Security.Cryptography.CryptographicException was caught
  Message="Input string does not contain a valid encoding of the 'Gost3410' 'PublicKey' parameter."
  Source="CryptoPro.Sharpei.Base"
  StackTrace:
       at CryptoPro.Sharpei.Gost3410.SearchForTextByLocalTag(String ltag, SecurityElement elem, Boolean canZero)
       at CryptoPro.Sharpei.Gost3410.ParamsFromXmlString(String xmlString)
       at CryptoPro.Sharpei.Gost3410.FromXmlString(String xmlString)
       at CryptoPro.Sharpei.Xml.GostKeyValue.LoadXml(XmlElement value)
       at System.Security.Cryptography.Xml.KeyInfo.LoadXml(XmlElement value)
       at System.Security.Cryptography.Xml.Signature.LoadXml(XmlElement value)
       at System.Security.Cryptography.Xml.SignedXml.LoadXml(XmlElement value)


Аналогичный код для RCA:
Код:

keyInfo.AddClause(new RSAKeyValue((RSA)Key));

при аналогичной проверке, ошибок не вызывает.

Как же можно указать этот самый encoding parameter для свойства PublicKey?
Offline Челпанов А.  
#2 Оставлено : 13 апреля 2009 г. 19:22:58(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Тест повторили - это ошибка в КриптоПро Sharpei, исправим.
P.S. Не понял зачем передавать одновременно и сертификат и открытый ключ? Почему не хватает передачи сертификата?
С уважением, Александр.
Offline Челпанов А.  
#3 Оставлено : 16 апреля 2009 г. 0:13:03(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Исправили. Версия 1.0.3392.3.
С уважением, Александр.
Offline Neznaika  
#4 Оставлено : 16 апреля 2009 г. 11:50:41(UTC)
Neznaika

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

Группы: Участники
Зарегистрирован: 13.04.2009(UTC)
Сообщений: 5
Откуда: MSK

Действительно заработало.

Большое спасибо за оперативность!

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