Подписание GOST .net (C#) KalkanCryptCOM
(1 чел.) (1) гость
  • Страница:
  • 1
  • ...
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

ТЕМА: Подписание GOST .net (C#) KalkanCryptCOM

Re: Подписание GOST .net (C#) KalkanCryptCOM 2 года назад #3298

  • Ибрагимов
  • Осваиваюсь на форуме
  • Постов: 23
  • Репутация: 0
stogzhan написал:
Можете достать из xml-ки отдельную xml-ky с тэгом data. Подписать ее как целостную xml-ку. И обратно вставить в первоначальную xml-ку в то же самое место. При верификации та же самая процедура: достаете часть xml-ки с тэгом data и проверяете только эту часть.
Подписать первоначальную xml-ку так, как вы хотите, невозможно.


ясно спасибо, теперь все понял

Re: Подписание GOST .net (C#) KalkanCryptCOM 1 год, 11 мес. назад #3347

  • Chellfree
  • Новый участник
  • Постов: 2
  • Репутация: 0
stogzhan написал:
Вы неправильно подписываете.
Если Вы подписываете тэг, то подпись помещаете в другой тэг. Если Вы подписываете весь xml, то подпись помещается по умолчанию.


    // signNodeId - идентификатор тэга, который необходимо подписать.
    // Не указывается, если необходимо подписать все содержимое документа;
    signNodeId := #0; //'871fd3f8-ca08-46dd-9ec4-b3896c223918';
    // parentSignNode - идентификатор тэга, в который необходимо поместить значение подписи;
    parentSignNode := #0; //'Header';
    // parentNameSpace -  пространство имен тэга, в который необходимо поместить значение подписи.
    // Если пространство имен есть,  но не будет указано - то тег не найдется
    parentNameSpace := #0; //'http://schemas.xmlsoap.org/soap/envelope/';


Добрый день!
Подскажите пожалуйста, а если мне нужно подписать весь XML но при этом подпись поместить под определенный тэг, правильно ли будет следующее:

string alias = "";
int flags = 0;
string signNodeId = "";
string parentSignNode = "SignatureText";
string parentNameSpace = "";
string outSign = "";

Kalkan.SignXML(alias, flags, signNodeId, parentSignNode, parentNameSpace, inData, out outSign);

Исходный xml:
<?xml version="1.0" encoding="UTF-8"?>
<PaymentCategories xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<RequestId>c2db1e16-de8c-4db5-ba36-263546519170</RequestId>
	<SignatureText></SignatureText>
	<PaymentCategory>
		<Iin>871202301475</Iin>
		<LastName>Иванов</LastName>
		<FirstName>Иван</FirstName>
		<SecondName>Иванович</SecondName>
		<BirthDate>1987-12-02T00:00:00</BirthDate>
		<Category_Code>12</Category_Code>
		<BeginDate>2017-08-01T00:00:00</BeginDate>
		<EndDate xsi:nil="true"/>
	</PaymentCategory>
</PaymentCategories>



Результат (хэш вырезал для того чтобы не загромождать пример):
<?xml version="1.0" encoding="UTF-8"?>
<PaymentCategories xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<RequestId>c2db1e16-de8c-4db5-ba36-263546519170</RequestId>
	<SignatureText>
		<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="1">
			<ds:SignedInfo>
				<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
				<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
				<ds:Reference URI="">
					<ds:Transforms>
						<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
						<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
					</ds:Transforms>
					<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
					<ds:DigestValue>ucqQy9dJK6uAdiKoFszb2TZRXyAKWpSEol9ANGLzEXU=</ds:DigestValue>
				</ds:Reference>
			</ds:SignedInfo>
			<ds:SignatureValue></ds:SignatureValue>
			<ds:KeyInfo>
				<ds:X509Data>
					<ds:X509Certificate></ds:X509Certificate>
				</ds:X509Data>
			</ds:KeyInfo>
		</ds:Signature>
	</SignatureText>
	<PaymentCategory>
		<Iin>871202301475</Iin>
		<LastName>Иванов</LastName>
		<FirstName>Иван</FirstName>
		<SecondName>Иванович</SecondName>
		<BirthDate>1987-12-02T00:00:00</BirthDate>
		<Category_Code>12</Category_Code>
		<BeginDate>2017-08-01T00:00:00</BeginDate>
		<EndDate xsi:nil="true"/>
	</PaymentCategory>
</PaymentCategories>



В итоге интересует правильно ли все или есть другие варианты?

Re: Подписание GOST .net (C#) KalkanCryptCOM 1 год, 11 мес. назад #3348

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Добрый день!

Нет, это неправильно.
Модератор

Re: Подписание GOST .net (C#) KalkanCryptCOM 1 год, 11 мес. назад #3349

  • Chellfree
  • Новый участник
  • Постов: 2
  • Репутация: 0
Подскажите как тогда быть в такой ситуации чтобы подписать XML но подпись положить под определенный тэг?

Re: Подписание GOST .net (C#) KalkanCryptCOM 1 год, 11 мес. назад #3350

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
К какой ИС Вы формируете запрос? Обычно. они предоставляют инструкцию по формированию запроса и парсингу ответа.
Модератор
Изменено: 1 год, 11 мес. назад от Murat Seisenov.
  • Страница:
  • 1
  • ...
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
FaLang translation system by Faboba