• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Lotus и сервис

P

proteam

Всем привет. Полмесяца уже мучаюсь с сервисом одним. В общем такая история. Дали всдл, я создал конзюмер, создаю запрос, наполняю данными. Но. Мне нужно теперь перед отправкой подписать запрос. Работая через конзюмер я не нашел способ получить соап сообщение перед отправкой. Помогите, друзья
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
видели? И
 
P

proteam

Подписать ЭЦП. Есть апплет с методом который принимает в качестве параметра хмл в виде строки, парсит его и добавляет в хмл элементы с подписью.
[DOUBLEPOST=1442398528,1442398474][/DOUBLEPOST]
видели? И
Там изменение хэдера соап сообщения. А изменить само соап сообщение можно?
 
P

proteam

Вот пример, каким должен быть запрос:
HTML:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
				  xmlns:typ="http://ttt.mmm.fr/SyncChannel/v10/Types">
	<soapenv:Header/>
	<soapenv:Body>
		<typ:SendMessage>
			<request>
				<requestInfo>
					<messageId>4704823d-0abc-4606-8a21-1bec083965f0</messageId>
					<serviceId>SERVICE01</serviceId>
					<messageDate>2014-08-01T00:00:00.000+06:00</messageDate>
					<sender>
						<senderId>PORTAL</senderId>
					</sender>
				</requestInfo>
				<requestData>
					<data>
						<messageId>4704823d-0abc-4606-8a21-1bec083965f0</messageId>
						<messageDate>2014-08-25T17:29:04.564+06:00</messageDate>
						<senderCode>PORTAL</senderCode>
						<iin>810330400387</iin>
						<surname xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
						<name xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
						<patronymic xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
						<birthDate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
						<documentNumber xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
						<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
							<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#gost34310-gost34311"/>
								<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/xmldsig-more#gost34311"/>
									<ds:DigestValue>CyLOqpJc20h6q73J+I545G4We1oMcNOtN3hQQCF6zHg=</ds:DigestValue>
								</ds:Reference>
							</ds:SignedInfo>
							<ds:SignatureValue>
								fEE2nvRwIjbz7+Zswp6VN2UtH4JAGfuanmIflu1vKUewk5gxRBs3fZQkdJ8pj0tM7fo2XNWnnH1A
								bdMc2K2SXg==
							</ds:SignatureValue>
							<ds:KeyInfo>
								<ds:X509Data>
									<ds:X509Certificate>
										MIIGyzCCBnSgAwIBAgIgd32h0nI8xKcclvcVEK2L7nztSMJllua8eafUM1d6BfMwDgYKKwYBBAG1
										EQECAgUAMIIBFDEfMB0GA1UEAwwW0J3Qo9CmINCg0JogKNCT0J7QodCiKTFDMEEGA1UECww60JjQ
										vdGE0YDQsNGB0YLRgNGD0LrRgtGD0YDQsCDQvtGC0LrRgNGL0YLRi9GFINC60LvRjtGH0LXQuTFx
										MG8GA1UECgxo0J3QsNGG0LjQvtC90LDQu9GM0L3Ri9C5INGD0LTQvtGB0YLQvtCy0LXRgNGP0Y7R
										idC40Lkg0YbQtdC90YLRgCDQoNC10YHQv9GD0LHQu9C40LrQuCDQmtCw0LfQsNGF0YHRgtCw0L0x
										FTATBgNVBAcMDNCQ0YHRgtCw0L3QsDEVMBMGA1UECAwM0JDRgdGC0LDQvdCwMQswCQYDVQQGEwJL
										WjAeFw0xNDAxMTAwNTE5MTdaFw0xNTAxMTAwNTE5MTdaMIIB9TEYMBYGA1UEBRMPSUlONzIwNzI1
										NDAyMDg0MRgwFgYDVQQLDA9CSU4wODA1NDAwMTQ4NTQxgf0wgfoGA1UECgyB8tCT0J7QodCj0JTQ
										kNCg0KHQotCS0JXQndCd0J7QlSDQo9Cn0KDQldCW0JTQldCd0JjQlSAi0JrQntCc0JjQotCV0KIg
										0KDQldCT0JjQodCi0KDQkNCm0JjQntCd0J3QntCZINCh0JvQo9CW0JHQqyDQmCDQntCa0JDQl9CQ
										0J3QmNCvINCf0KDQkNCS0J7QktCe0Jkg0J/QntCc0J7QqdCYINCc0JjQndCY0KHQotCV0KDQodCi
										0JLQkCDQrtCh0KLQmNCm0JjQmCDQoNCV0KHQn9Cj0JHQm9CY0JrQmCDQmtCQ0JfQkNCl0KHQotCQ
										0J0iMSYwJAYDVQQDDB3QmtCQ0JvQmNCc0J7QktCQINCS0JXQndCV0KDQkDEZMBcGA1UEBAwQ0JrQ
										kNCb0JjQnNCe0JLQkDEfMB0GA1UEKgwW0JrQkNCc0KvQodCR0JDQldCS0J3QkDEgMB4GCSqGSIb3
										DQEJARYRTlVSQk9MMDA5QE1BSUwuUlUxCzAJBgNVBAYTAktaMRUwEwYDVQQIDAzQkNCh0KLQkNCd
										0JAxFTATBgNVBAcMDNCQ0KHQotCQ0J3QkDBjMA4GCisGAQQBtREBBQgFAANRAAYCAAA6qgAAAEVD
										MQACAACbY1sk7ftUOvAmdFwqA7P5U/1IwCE9rukxJsT03QXOeX7ornLpqkbPW/AJ9JhRb9rTOJEc
										fJXZoeqDTu+Ta1fSo4ICozCCAp8wHQYDVR0OBBYEFCsJEnOzYn0kf6ZwwUEQYOYgsfuXMEIGCCsG
										AQUFBwEBBDYwNDAyBggrBgEFBQcwAoYmaHR0cDovL3BraS5nb3Yua3ovaW5mby9jYWNlcnRfZ29z
										dC5jZXIwDAYDVR0jBAUwA4ABMDALBgNVHQ8EBAMCAMAwZAYDVR0uBF0wWzAroCmgJ4YlaHR0cDov
										L2NybC5wa2kua3ovY3JsL0dvc3QwX2RlbHRhLmNybDAsoCqgKIYmaHR0cDovL2NybDEucGtpLmt6
										L2NybC9Hb3N0MF9kZWx0YS5jcmwwggFIBgNVHSAEggE/MIIBOzCBuwYHKoMOAwMCATCBrzA2Bggr
										BgEFBQcCARYqaHR0cDovL3BraS5nb3Yua3ovaW5mby9wb2xpY3lfc2lnbl9sZWcucGRmMHUGCCsG
										AQUFBwICMGkaZ8Tr/yDv7uTv6PHoIP3r5ery8O7t7fv1IOTu6vPs5e3y7uIg/vDo5Oj35fHq6Owg
										6+j27uwuIM/w5eTt4Oft4Pfl7ejlIC0g8fTl8OAg3evl6vLw7u3t7uPuIM/w4OLo8uXr/PHy4uAw
										ewYHKoMOAwMBATBwMDAGCCsGAQUFBwIBFiRodHRwOi8vcGtpLmdvdi5rei9pbmZvL2NhX3BvbGlj
										eS5wZGYwPAYIKwYBBQUHAgIwMBou0OXj6+Ds5e3yIM3g9uju7eDr/O3u4+4g0+Tu8fLu4uXw//75
										5ePuINbl7fLw4DATBgNVHSUEDDAKBggrBgEFBQcDBDBYBgNVHR8EUTBPMCWgI6Ahhh9odHRwOi8v
										Y3JsLnBraS5rei9jcmwvR29zdDAuY3JsMCagJKAihiBodHRwOi8vY3JsMS5wa2kua3ovY3JsL0dv
										c3QwLmNybDAOBgorBgEEAbURAQICBQADQQBTEzXTkGihlUbbfdZVostXzC3dcrZlObF7yKYVCiWT
										TEuLdmOTFZcAHL1POPRbJw9spEzfJWi2pe9BEAwZxt1W
									</ds:X509Certificate>
								</ds:X509Data>
							</ds:KeyInfo>
						</ds:Signature>
					</data>
				</requestData>
			</request>
		</typ:SendMessage>
	</soapenv:Body>
</soapenv:Envelope>

В WSDL не описана подпись, как мне объяснили, я должен перед отправкой запроса его подписать апплетом, он добавит в xml свои данные и затем это отправить. В общем нужно отредактировать Soap body
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
Так на этот счёт примеров в Интернете как грязи. Сделайте простого агента по любому примеру вместо Domino Web Service Consumer.
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
Там изменение хэдера соап сообщения. А изменить само соап сообщение можно?
не только заголовок получить можно
Вообще посмотрите документацию на link removed. Я думаю, в связке с Rampart вы легко добьётесь того, что вам нужно.

 
Последнее редактирование модератором:
  • Нравится
Реакции: proteam
P

proteam

не только заголовок получить можно
Вообще посмотрите документацию на . Я думаю, в связке с Rampart вы легко добьётесь того, что вам нужно.

Спасибо. Думаю это то что нужно
 
P

proteam

Так на этот счёт примеров в Интернете как грязи. Сделайте простого агента по любому примеру вместо Domino Web Service Consumer.
Опыта по работе с веб сервисами пока нет. Единственное работал только через конзюмер, поэтому хочется сначала попробовать через конзюмер, если уж тут ничего не получится, буду искать другие решения (если есть опыт работы с другими решениями я был бы признателен)

Вот код из класса Stub
Java:
public kz.bee.bip.SyncChannel.v10.Types.Response.SyncSendMessageResponse sendMessage(kz.bee.bip.SyncChannel.v10.Types.Request.SyncSendMessageRequest request) throws kz.bee.bip.common.v10.Types.ErrorInfo, java.rmi.RemoteException {
callHandler = null;
 
		lotus.domino.websvc.client.Call _call = createCall("sendMessage");
		java.lang.Object _resp = _call.invoke(new java.lang.Object[] {request});
		callHandler = _call;
		return (kz.bee.bip.SyncChannel.v10.Types.Response.SyncSendMessageResponse) _call.convert(_resp, kz.bee.bip.SyncChannel.v10.Types.Response.SyncSendMessageResponse.class);
	}

Получается тут мы работает с данными перед вызовом сервиса. _call.invoke(new java.lang.Object[] {request}) - как раз вызывает метод из сервиса и он наполняет соап запрос данными. Я все перепробовал, до invoke() нигде не содержатся данные о запросе. Можно ли как то вызвать метод сервиса, подсунув ему не {request} а свою XML? Конечно, как то глупо звучит.
 
P

proteam

Привет всем.

В общем бросил эту задумку с Конзюмером. Работаю через "Msxml2.XMLHTTP"
Теперь такой вопрос. Иногда выходит ошибка при создании объекта этого класса. Думаю из-за того, что в системе он уже создан.
Код:
Dim xml As String
Dim serviceXML As String
Dim xmlhttp As Variant
Dim DOMDocument As Variant
 
xml = SERVICE_REQUEST_DATA
-------
Set xmlhttp = CreateObject("Msxml2.XMLHTTP")
Set DOMDocument = CreateObject("MSXML2.DOMDocument")
serviceXML = Replace(SERVICE_XML, "#REQUESTDATA#", xml)
-------
DOMDocument.loadXML(serviceXML)
Call xmlhttp.open("POST", me.endPoint, False,"","")
Call xmlhttp.send(DOMDocument.xml)
invoke = xmlhttp.responseText

Кто работал с таким способом отправки на Сервис, как избежать ошибок при создании объекта Msxml2.XMLHTTP?
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
Я уже как-то писал на этом форуме на счёт OLE, правда по другому вопросу - всегда используйте GetObject для первоначальной инициализации OLE объекта и только в случае ошибки (On Error GoTo...) CreateObject.

Про то, что OLE в принципе "зло" писать надо?
 
P

proteam

Я уже как-то писал на этом форуме на счёт OLE, правда по другому вопросу - всегда используйте GetObject для первоначальной инициализации OLE объекта и только в случае ошибки (On Error GoTo...) CreateObject.

Про то, что OLE в принципе "зло" писать надо?
Спасибо))
Зло, не то слово((
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
Работаю через "Msxml2.XMLHTTP"
а зачем?
вот на Zoho всякие коды есть, но нет для КОМы ;)

и это не удивительно - никому не нужен этот кал мамонта (вендор его поддерживает на плаву лишь из условия собственного выживания)
 
X

Xalet

Подписать ЭЦП. Есть апплет с методом который принимает в качестве параметра хмл в виде строки, парсит его и добавляет в хмл элементы с подписью.

А зачем СОАП менять. В аплет подсунуть ХМЛ с данными, которые надо подписать, назад получить подписаный ХМЛ, вытащить из него подпись и отдать её в СОАП пакет в параметре ds:Signature.
 
P

proteam

а зачем?
вот на Zoho всякие коды есть, но нет для КОМы ;)

и это не удивительно - никому не нужен этот кал мамонта (вендор его поддерживает на плаву лишь из условия собственного выживания)
Не видел ваше сообщение, но уже нашел решение через HttpURLConnection))
Просто в тот момент ком показался простым решением, но полчаса использования решительно меня отговорили искать решения на джаве. Теперь буду точно знать, лучше с ком даже не связываться)
[DOUBLEPOST=1444991032,1444990851][/DOUBLEPOST]
А зачем СОАП менять. В аплет подсунуть ХМЛ с данными, которые надо подписать, назад получить подписаный ХМЛ, вытащить из него подпись и отдать её в СОАП пакет в параметре ds:Signature.
Не понял вас. Как это "отдать её в СОАП пакет в параметре ds:Signature"? По сути я также делаю, пихаю в аплет хмл с данными, подписываю, получаю уже ХМЛ с подписью. Но я не могу его запихать в Соап. Там же не описан тег ds:Signature. Поэтому я сейчас отказался от конзюмера, решил делать как просто отправку на УРЛ как пост запрос и дожидаться ответа, которым потом парсим.
[DOUBLEPOST=1444991215][/DOUBLEPOST]ЗЫ:
Насколько подключение джава объектов в LS коде опасно? Есть ли проблемы которые стоит учитывать? Ну там утечка памяти или возможные зависания?
 
P

proteam

Проблема теперь с кодировкой в ответе(((
Java:
public String doSend(String endPoint, String xmlToSend){
try {
URL url = new URL(endPoint);	
StringBuffer sb = null;
BufferedInputStream in;
HttpURLConnection conn = (HttpURLConnection) url.openConnection();		
conn.setDoOutput(true);		
conn.setRequestProperty("Host", endPoint);		
conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");		
conn.setRequestMethod("POST");		
OutputStream outputStream = conn.getOutputStream();
 
BufferedWriter osw = new BufferedWriter(new OutputStreamWriter(outputStream));
 
osw.write(xmlToSend);
osw.flush();
osw.close();		
in = new BufferedInputStream(conn.getInputStream());
 
int x = 0;
 
sb = new StringBuffer();
 
while ((x = in.read()) != -1) {
sb.append((char) x);
}
try {
in.close();
in = null;
 
if (conn != null) {
conn.disconnect();
}
}catch(Exception e){
 
}
 
return sb.toString();
} catch(Exception e) {
		e.printStackTrace();
	}
 
return "";
}
Я отправляю в utf-8, а ответ приходит тоже в utf-8, но по всей видимости при считывании он не в этой кодировке получает данные
 
P

proteam

Вот такая ситуация у меня сейчас.
Есть запрос XML
HTML:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
				  xmlns:typ="http://bip.bee.kz/SyncChannel/v10/Types">
	<soapenv:Header/>
	<soapenv:Body>
		<typ:SendMessage>
<request><requestInfo><messageId>F5B942AF0BE0959B46257ED5002266FB</messageId><serviceId>GBDFL_UniversalServiceSync</serviceId><messageDate>2015-10-05T12:15:45</messageDate><sender><senderId>udp</senderId><password>udp</password></sender></requestInfo><requestData><data><iin>890723351237</iin><messageDate>2015-10-19T18:08:49.443+06:00</messageDate><messageId>F5B942AF0BE0959B46257ED5002266FB</messageId><senderCode>UDP</senderCode><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<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#gost34310-gost34311"/>
<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/xmldsig-more#gost34311"/>
<ds:DigestValue>lC/jdMR3Sd6Sci8BDkqszzk5AJu1TNksD3cVstWigds=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
SgAB1Bzf2EuIofDCwp8qNs+gRey6R/s/NjoPVInJ+NcFt4CdmnpfoeGxuFLVYL4niWlklGgNe1T/
+noZ5KfgIQ==
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIF5jCCBY+gAwIBAgIgd0rYhiY5LCjIUfN3m3ZCUV8dMVq8aDDTwQHBWAAu9bMwDgYKKwYBBAG1
EQECAgUAMIIBFDEfMB0GA1UEAwwW0J3Qo9CmINCg0JogKNCT0J7QodCiKTFDMEEGA1UECww60JjQ
vdGE0YDQsNGB0YLRgNGD0LrRgtGD0YDQsCDQvtGC0LrRgNGL0YLRi9GFINC60LvRjtGH0LXQuTFx
MG8GA1UECgxo0J3QsNGG0LjQvtC90LDQu9GM0L3Ri9C5INGD0LTQvtGB0YLQvtCy0LXRgNGP0Y7R
idC40Lkg0YbQtdC90YLRgCDQoNC10YHQv9GD0LHQu9C40LrQuCDQmtCw0LfQsNGF0YHRgtCw0L0x
FTATBgNVBAcMDNCQ0YHRgtCw0L3QsDEVMBMGA1UECAwM0JDRgdGC0LDQvdCwMQswCQYDVQQGEwJL
WjAeFw0xNTA1MjEwNTUyNDZaFw0xNjA1MjAwNTUyNDZaMIIBEDEYMBYGA1UEBRMPSUlOOTUxNzM1
NDY5ODc1MRgwFgYDVQQLDA9CSU43NTMxNTk4NDYyNDkxJjAkBgNVBAoMHdCi0J7QniDQrtCg0JjQ
lNCY0KfQldCh0JrQmNCZMTYwNAYDVQQDDC3QrtCg0JjQlNCY0KfQldCh0JrQmNCZINCU0JXQmdCh
0KLQktCj0K7QqdCY0JkxHzAdBgNVBAQMFtCu0KDQmNCU0JjQp9CV0KHQmtCY0JkxHjAcBgkqhkiG
9w0BCQEWD1RFU1RAUEtJLkdPVi5LWjELMAkGA1UEBhMCS1oxFTATBgNVBAgMDNCQ0KHQotCQ0J3Q
kDEVMBMGA1UEBwwM0JDQodCi0JDQndCQMGMwDgYKKwYBBAG1EQEFCAUAA1EABgIAADqqAAAARUMx
AAIAACaURHHXZGtftlP4qqcu7SrYRUP9x4tpY1FGDP9hwOGgk1D8i4A0ar/SzTXWfYi9dpCR6mBP
PLpvXohUwMacjKKjggKjMIICnzAdBgNVHQ4EFgQU5W/loImfeHgVra9dJW2noKcMLBMwQgYIKwYB
BQUHAQEENjA0MDIGCCsGAQUFBzAChiZodHRwOi8vcGtpLmdvdi5rei9pbmZvL2NhY2VydF9nb3N0
LmNlcjAMBgNVHSMEBTADgAEwMAsGA1UdDwQEAwIAwDBkBgNVHS4EXTBbMCugKaAnhiVodHRwOi8v
Y3JsLnBraS5rei9jcmwvR29zdDBfZGVsdGEuY3JsMCygKqAohiZodHRwOi8vY3JsMS5wa2kua3ov
Y3JsL0dvc3QwX2RlbHRhLmNybDCCAUgGA1UdIASCAT8wggE7MIG7Bgcqgw4DAwIBMIGvMDYGCCsG
AQUFBwIBFipodHRwOi8vcGtpLmdvdi5rei9pbmZvL3BvbGljeV9zaWduX2xlZy5wZGYwdQYIKwYB
BQUHAgIwaRpnxOv/IO/u5O/o8egg/evl6vLw7u3t+/Ug5O7q8+zl7fLu4iD+8Ojk6Pfl8ero7CDr
6Pbu7C4gz/Dl5O3g5+3g9+Xt6OUgLSDx9OXw4CDd6+Xq8vDu7e3u4+4gz/Dg4ujy5ev88fLi4DB7
Bgcqgw4DAwEBMHAwMAYIKwYBBQUHAgEWJGh0dHA6Ly9wa2kuZ292Lmt6L2luZm8vY2FfcG9saWN5
LnBkZjA8BggrBgEFBQcCAjAwGi7Q5ePr4Ozl7fIgzeD26O7t4Ov87e7j7iDT5O7x8u7i5fD//vnl
4+4g1uXt8vDgMBMGA1UdJQQMMAoGCCsGAQUFBwMEMFgGA1UdHwRRME8wJaAjoCGGH2h0dHA6Ly9j
cmwucGtpLmt6L2NybC9Hb3N0MC5jcmwwJqAkoCKGIGh0dHA6Ly9jcmwxLnBraS5rei9jcmwvR29z
dDAuY3JsMA4GCisGAQQBtREBAgIFAANBACYw9c1QZ8iqClwh+foo9bK8FDEq+UqyWW/QB4vD+FJL
6BAu/DjmU3VN85DbGIz98raqELImhBtvQFv7Kt5a9n0=
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature></data></requestData></request>
		</typ:SendMessage>
	</soapenv:Body>
</soapenv:Envelope>

Как программно из него получить тег data со всем содержимым( Типо такого чтобы было:

HTML:
<data><iin>890723351237</iin><messageDate>2015-10-19T18:08:49.443+06:00</messageDate><messageId>F5B942AF0BE0959B46257ED5002266FB</messageId><senderCode>UDP</senderCode><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<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#gost34310-gost34311"/>
<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/xmldsig-more#gost34311"/>
<ds:DigestValue>lC/jdMR3Sd6Sci8BDkqszzk5AJu1TNksD3cVstWigds=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
SgAB1Bzf2EuIofDCwp8qNs+gRey6R/s/NjoPVInJ+NcFt4CdmnpfoeGxuFLVYL4niWlklGgNe1T/
+noZ5KfgIQ==
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIF5jCCBY+gAwIBAgIgd0rYhiY5LCjIUfN3m3ZCUV8dMVq8aDDTwQHBWAAu9bMwDgYKKwYBBAG1
EQECAgUAMIIBFDEfMB0GA1UEAwwW0J3Qo9CmINCg0JogKNCT0J7QodCiKTFDMEEGA1UECww60JjQ
vdGE0YDQsNGB0YLRgNGD0LrRgtGD0YDQsCDQvtGC0LrRgNGL0YLRi9GFINC60LvRjtGH0LXQuTFx
MG8GA1UECgxo0J3QsNGG0LjQvtC90LDQu9GM0L3Ri9C5INGD0LTQvtGB0YLQvtCy0LXRgNGP0Y7R
idC40Lkg0YbQtdC90YLRgCDQoNC10YHQv9GD0LHQu9C40LrQuCDQmtCw0LfQsNGF0YHRgtCw0L0x
FTATBgNVBAcMDNCQ0YHRgtCw0L3QsDEVMBMGA1UECAwM0JDRgdGC0LDQvdCwMQswCQYDVQQGEwJL
WjAeFw0xNTA1MjEwNTUyNDZaFw0xNjA1MjAwNTUyNDZaMIIBEDEYMBYGA1UEBRMPSUlOOTUxNzM1
NDY5ODc1MRgwFgYDVQQLDA9CSU43NTMxNTk4NDYyNDkxJjAkBgNVBAoMHdCi0J7QniDQrtCg0JjQ
lNCY0KfQldCh0JrQmNCZMTYwNAYDVQQDDC3QrtCg0JjQlNCY0KfQldCh0JrQmNCZINCU0JXQmdCh
0KLQktCj0K7QqdCY0JkxHzAdBgNVBAQMFtCu0KDQmNCU0JjQp9CV0KHQmtCY0JkxHjAcBgkqhkiG
9w0BCQEWD1RFU1RAUEtJLkdPVi5LWjELMAkGA1UEBhMCS1oxFTATBgNVBAgMDNCQ0KHQotCQ0J3Q
kDEVMBMGA1UEBwwM0JDQodCi0JDQndCQMGMwDgYKKwYBBAG1EQEFCAUAA1EABgIAADqqAAAARUMx
AAIAACaURHHXZGtftlP4qqcu7SrYRUP9x4tpY1FGDP9hwOGgk1D8i4A0ar/SzTXWfYi9dpCR6mBP
PLpvXohUwMacjKKjggKjMIICnzAdBgNVHQ4EFgQU5W/loImfeHgVra9dJW2noKcMLBMwQgYIKwYB
BQUHAQEENjA0MDIGCCsGAQUFBzAChiZodHRwOi8vcGtpLmdvdi5rei9pbmZvL2NhY2VydF9nb3N0
LmNlcjAMBgNVHSMEBTADgAEwMAsGA1UdDwQEAwIAwDBkBgNVHS4EXTBbMCugKaAnhiVodHRwOi8v
Y3JsLnBraS5rei9jcmwvR29zdDBfZGVsdGEuY3JsMCygKqAohiZodHRwOi8vY3JsMS5wa2kua3ov
Y3JsL0dvc3QwX2RlbHRhLmNybDCCAUgGA1UdIASCAT8wggE7MIG7Bgcqgw4DAwIBMIGvMDYGCCsG
AQUFBwIBFipodHRwOi8vcGtpLmdvdi5rei9pbmZvL3BvbGljeV9zaWduX2xlZy5wZGYwdQYIKwYB
BQUHAgIwaRpnxOv/IO/u5O/o8egg/evl6vLw7u3t+/Ug5O7q8+zl7fLu4iD+8Ojk6Pfl8ero7CDr
6Pbu7C4gz/Dl5O3g5+3g9+Xt6OUgLSDx9OXw4CDd6+Xq8vDu7e3u4+4gz/Dg4ujy5ev88fLi4DB7
Bgcqgw4DAwEBMHAwMAYIKwYBBQUHAgEWJGh0dHA6Ly9wa2kuZ292Lmt6L2luZm8vY2FfcG9saWN5
LnBkZjA8BggrBgEFBQcCAjAwGi7Q5ePr4Ozl7fIgzeD26O7t4Ov87e7j7iDT5O7x8u7i5fD//vnl
4+4g1uXt8vDgMBMGA1UdJQQMMAoGCCsGAQUFBwMEMFgGA1UdHwRRME8wJaAjoCGGH2h0dHA6Ly9j
cmwucGtpLmt6L2NybC9Hb3N0MC5jcmwwJqAkoCKGIGh0dHA6Ly9jcmwxLnBraS5rei9jcmwvR29z
dDAuY3JsMA4GCisGAQQBtREBAgIFAANBACYw9c1QZ8iqClwh+foo9bK8FDEq+UqyWW/QB4vD+FJL
6BAu/DjmU3VN85DbGIz98raqELImhBtvQFv7Kt5a9n0=
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature></data>
Я стал парсить ХМЛ через дом парсер, но когда получает тег дата, то там только значение нода, а оно пустое, так как содержит дочерние элементы. Мне это нужно для проверки ЭЦП. Пока в голову только мысль с обрезкой пришла. Но не хочется таким способом получать содержимое тега.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!