Как подписать и проверить XML с несколькими ID
(1 чел.) (1) гость
  • Страница:
  • 1

ТЕМА: Как подписать и проверить XML с несколькими ID

Как подписать и проверить XML с несколькими ID 2 года, 11 мес. назад #2588

  • dev
  • Новый участник
  • Постов: 1
  • Репутация: 0
Как подписать и проверить XML с несколькими ID через NCALayer (signXMLById)?

XML:
<?xml version="1.0" encoding="utf-8"?>
<root>
<person id="person1">
<name>Ivan</name>
</person>
<company id="company1">
<name>Org name</name>
</company>
<signs></signs>
</root>


Подписываемый элемент XML: person
Имя атрибута идентификации элемента XML: id
Верхний элемент для подписи: signs

На выходе получаю следующий XML:
<?xml version="1.0" encoding="utf-8" standalone="no"?><root>
<person id="person1">
<name>Ivan</name>
</person>
<company id="company1">
<name>Org name</name>
</company>
<signs><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#rsa-sha256"/>
<ds:Reference URI="#person1">
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>GDyAfAR0S9NXRv662qvYxdVIOGc0bCJj8/a8tXbs+HE=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
FWRADQ493+vCghhGbaARlok+ZQU1+dS2xgqm8zD0kt/ciTBaT6uCimgm+aGAUEAwfNsVz2Pru0GG
OlALkvfihFR8YIbqjgR4ESoH6w0B/oKZydXcLU8UOONLlaoSM4I8SS9W+xSJKYNHRlPMvYEJiKPD
FTakjdcpggBizv/f8mRbSxO0b4R9u5nTDJWz1RLPQT1vJkhIytFDCSO8w1+ow2Xf4cBAwInXOK6/
PnN1ZkKxKwJDBKOg6xNBcadQM0BGms9SrRCmVVgMxXi/2I1yn+MlU7HA7a7aPKmx006p7ZXD9eOr
/OgyZyankCCHJ+5DdWwUcPNDo5+lJwgFsMWL/Q==
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIHJjCCBQ6gAwIBAgIUSPkSt8OKiUth8vq9OMMomY8OUUAwDQYJKoZIhvcNAQELBQAwgc4xCzAJ
BgNVBAYTAktaMRUwEwYDVQQHDAzQkNCh0KLQkNCd0JAxFTATBgNVBAgMDNCQ0KHQotCQ0J3QkDFM
MEoGA1UECgxD0KDQnNCaIMKr0JzQldCc0JvQldCa0JXQotCi0IbQmiDQotCV0KXQndCY0JrQkNCb
0KvSmiDSmtCr0JfQnNCV0KLCuzFDMEEGA1UEAww60rDQm9Ci0KLQq9KaINCa0KPTmNCb0JDQndCU
0KvQoNCj0KjQqyDQntCg0KLQkNCb0KvSmiAoUlNBKTAeFw0xNjA4MDUxMDIxMjJaFw0xNzA4MDUx
MDIxMjJaMIH7MSowKAYDVQQDDCHQotCe0KXQotCQ0KXQo9Cd0J7QkiDQmtCj0JTQoNCQ0KIxHTAb
BgNVBAQMFNCi0J7QpdCi0JDQpdCj0J3QntCSMRgwFgYDVQQFEw9JSU45MTEwMTEzMDIxMTgxCzAJ
BgNVBAYTAktaMRUwEwYDVQQHDAzQotCQ0JvQk9CQ0KAxLjAsBgNVBAgMJdCQ0JvQnNCQ0KLQmNCd
0KHQmtCQ0K8g0J7QkdCb0JDQodCi0KwxHTAbBgNVBCoMFNCo0KPQpdCg0JDQotCe0JLQmNCnMSEw
HwYJKoZIhvcNAQkBFhJJU0tVRFJBVEBHTUFJTC5DT00wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCbwkSLDqrioGsNzNyBtDGYO9y60jiw2PTG5hu5/ksg2CVRnouQEzrteFREA+A9bTo9
LMjOSM6jY1aE+71nq9+ES9THR2c5Dw5HAwyCUr6TlcXpxtZ3O3kLHVwE0E6hWNGZp+XpTlvLrUY0
jMhl71QnQwJjKsDe5bazfH1KNN8N/ixS0MBmXBdIxAP1DJfx5JHB2aMcTohZaJf5+OBqQzfCQM45
uvbpZgA4YhyRE4qhEmpEiYpuIudRGInejv/JOqDmMG9qts2pnZMhAKmLToQjoNS5W4sJyHsSZuIp
Q1gqVDzZ7mKZER/GyYogJwVKooYdnjDgXageBQSlbtsGo0DBAgMBAAGjggHLMIIBxzAOBgNVHQ8B
Af8EBAMCBsAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCqDDgMDBAEBMA8GA1UdIwQIMAaABFW1tOIw
HQYDVR0OBBYEFOav7UU3NUUpNRTM4X7V5oupYzaVMF4GA1UdIARXMFUwUwYHKoMOAwMCAzBIMCEG
CCsGAQUFBwIBFhVodHRwOi8vcGtpLmdvdi5rei9jcHMwIwYIKwYBBQUHAgIwFwwVaHR0cDovL3Br
aS5nb3Yua3ovY3BzME4GA1UdHwRHMEUwQ6BBoD+GHWh0dHA6Ly9jcmwucGtpLmdvdi5rei9yc2Eu
Y3Jshh5odHRwOi8vY3JsMS5wa2kuZ292Lmt6L3JzYS5jcmwwUgYDVR0uBEswSTBHoEWgQ4YfaHR0
cDovL2NybC5wa2kuZ292Lmt6L2RfcnNhLmNybIYgaHR0cDovL2NybDEucGtpLmdvdi5rei9kX3Jz
YS5jcmwwYgYIKwYBBQUHAQEEVjBUMC4GCCsGAQUFBzAChiJodHRwOi8vcGtpLmdvdi5rei9jZXJ0
L3BraV9yc2EuY2VyMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC5wa2kuZ292Lmt6MA0GCSqGSIb3
DQEBCwUAA4ICAQA/CoCSruaDyitsTPlCnA0VoyCySc5Ldi2qpTrazb3YQNiVAtuq73tcE7BXtfRY
4nemPAF6k62FVWHztZHm8rekF3iNAx61aPKyCSULY1ezPhQ+KFumuhOCOB6nMnU5veggDIxYPZRm
InmNNRVWdjIS4DSL/JvYsItQ2Gs95ogJmCa+W6DfUm9Ol8mw4eVBi974/k3bfOZHzJ9fo3sshmoC
P5KhA3hrYb+JEFU1mrSEL8Fi5dZ01qdnt9bwZfLVLgmuiAMqtVhnJypWALNuJ+cJm1R7yQqkfNTs
y0LwLm8cXP2Gw2p6NwPB8058y35ciO2o1n3HWTAc5QDH13dy01suF59cPi++cWcI6VHj0paZwZ3x
/yl+XhlqsTv/Lez8pWgzRYAhV6CZ41u3qiHf034MAqwxTkZlcD3Hw73qd+5D8Sa7l9nFrAeCx6kC
jg8OSKhXhAgNLDk8siBsSUkDq7UsZybXfl/8DqRh/h9v2cg9ksN1Gy6ww2pAojj29LX1S2S/iar+
QFE5hqrFYb2lJgyBaXfEGr4nwBMPjLwSClxPNWl/3rJZSPB0dp3kgUVlW3XDjqIjwOCV451DZapO
lGeEhQq7RtT2ia9ulevXatf2+IJTrLfIkOHUBtpRwrTMTXgsdRqkBRktFv2NEgH7sszqR3HfmzMF
brMtj2gaFJ4agg==
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature></signs>
</root>


Подпись валидная

Теперь, на полученном XML нужно подписать элемент с тегом "company"
Подписываемый элемент XML: company
Имя атрибута идентификации элемента XML: id
Верхний элемент для подписи: signs

Получаю XML:
<?xml version="1.0" encoding="utf-8" standalone="no"?><root>
<person id="person1">
<name>Ivan</name>
</person>
<company id="company1">
<name>Org name</name>
</company>
<signs><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#rsa-sha256"/>
<ds:Reference URI="#person1">
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>GDyAfAR0S9NXRv662qvYxdVIOGc0bCJj8/a8tXbs+HE=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
FWRADQ493+vCghhGbaARlok+ZQU1+dS2xgqm8zD0kt/ciTBaT6uCimgm+aGAUEAwfNsVz2Pru0GG
OlALkvfihFR8YIbqjgR4ESoH6w0B/oKZydXcLU8UOONLlaoSM4I8SS9W+xSJKYNHRlPMvYEJiKPD
FTakjdcpggBizv/f8mRbSxO0b4R9u5nTDJWz1RLPQT1vJkhIytFDCSO8w1+ow2Xf4cBAwInXOK6/
PnN1ZkKxKwJDBKOg6xNBcadQM0BGms9SrRCmVVgMxXi/2I1yn+MlU7HA7a7aPKmx006p7ZXD9eOr
/OgyZyankCCHJ+5DdWwUcPNDo5+lJwgFsMWL/Q==
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIHJjCCBQ6gAwIBAgIUSPkSt8OKiUth8vq9OMMomY8OUUAwDQYJKoZIhvcNAQELBQAwgc4xCzAJ
BgNVBAYTAktaMRUwEwYDVQQHDAzQkNCh0KLQkNCd0JAxFTATBgNVBAgMDNCQ0KHQotCQ0J3QkDFM
MEoGA1UECgxD0KDQnNCaIMKr0JzQldCc0JvQldCa0JXQotCi0IbQmiDQotCV0KXQndCY0JrQkNCb
0KvSmiDSmtCr0JfQnNCV0KLCuzFDMEEGA1UEAww60rDQm9Ci0KLQq9KaINCa0KPTmNCb0JDQndCU
0KvQoNCj0KjQqyDQntCg0KLQkNCb0KvSmiAoUlNBKTAeFw0xNjA4MDUxMDIxMjJaFw0xNzA4MDUx
MDIxMjJaMIH7MSowKAYDVQQDDCHQotCe0KXQotCQ0KXQo9Cd0J7QkiDQmtCj0JTQoNCQ0KIxHTAb
BgNVBAQMFNCi0J7QpdCi0JDQpdCj0J3QntCSMRgwFgYDVQQFEw9JSU45MTEwMTEzMDIxMTgxCzAJ
BgNVBAYTAktaMRUwEwYDVQQHDAzQotCQ0JvQk9CQ0KAxLjAsBgNVBAgMJdCQ0JvQnNCQ0KLQmNCd
0KHQmtCQ0K8g0J7QkdCb0JDQodCi0KwxHTAbBgNVBCoMFNCo0KPQpdCg0JDQotCe0JLQmNCnMSEw
HwYJKoZIhvcNAQkBFhJJU0tVRFJBVEBHTUFJTC5DT00wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCbwkSLDqrioGsNzNyBtDGYO9y60jiw2PTG5hu5/ksg2CVRnouQEzrteFREA+A9bTo9
LMjOSM6jY1aE+71nq9+ES9THR2c5Dw5HAwyCUr6TlcXpxtZ3O3kLHVwE0E6hWNGZp+XpTlvLrUY0
jMhl71QnQwJjKsDe5bazfH1KNN8N/ixS0MBmXBdIxAP1DJfx5JHB2aMcTohZaJf5+OBqQzfCQM45
uvbpZgA4YhyRE4qhEmpEiYpuIudRGInejv/JOqDmMG9qts2pnZMhAKmLToQjoNS5W4sJyHsSZuIp
Q1gqVDzZ7mKZER/GyYogJwVKooYdnjDgXageBQSlbtsGo0DBAgMBAAGjggHLMIIBxzAOBgNVHQ8B
Af8EBAMCBsAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCqDDgMDBAEBMA8GA1UdIwQIMAaABFW1tOIw
HQYDVR0OBBYEFOav7UU3NUUpNRTM4X7V5oupYzaVMF4GA1UdIARXMFUwUwYHKoMOAwMCAzBIMCEG
CCsGAQUFBwIBFhVodHRwOi8vcGtpLmdvdi5rei9jcHMwIwYIKwYBBQUHAgIwFwwVaHR0cDovL3Br
aS5nb3Yua3ovY3BzME4GA1UdHwRHMEUwQ6BBoD+GHWh0dHA6Ly9jcmwucGtpLmdvdi5rei9yc2Eu
Y3Jshh5odHRwOi8vY3JsMS5wa2kuZ292Lmt6L3JzYS5jcmwwUgYDVR0uBEswSTBHoEWgQ4YfaHR0
cDovL2NybC5wa2kuZ292Lmt6L2RfcnNhLmNybIYgaHR0cDovL2NybDEucGtpLmdvdi5rei9kX3Jz
YS5jcmwwYgYIKwYBBQUHAQEEVjBUMC4GCCsGAQUFBzAChiJodHRwOi8vcGtpLmdvdi5rei9jZXJ0
L3BraV9yc2EuY2VyMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC5wa2kuZ292Lmt6MA0GCSqGSIb3
DQEBCwUAA4ICAQA/CoCSruaDyitsTPlCnA0VoyCySc5Ldi2qpTrazb3YQNiVAtuq73tcE7BXtfRY
4nemPAF6k62FVWHztZHm8rekF3iNAx61aPKyCSULY1ezPhQ+KFumuhOCOB6nMnU5veggDIxYPZRm
InmNNRVWdjIS4DSL/JvYsItQ2Gs95ogJmCa+W6DfUm9Ol8mw4eVBi974/k3bfOZHzJ9fo3sshmoC
P5KhA3hrYb+JEFU1mrSEL8Fi5dZ01qdnt9bwZfLVLgmuiAMqtVhnJypWALNuJ+cJm1R7yQqkfNTs
y0LwLm8cXP2Gw2p6NwPB8058y35ciO2o1n3HWTAc5QDH13dy01suF59cPi++cWcI6VHj0paZwZ3x
/yl+XhlqsTv/Lez8pWgzRYAhV6CZ41u3qiHf034MAqwxTkZlcD3Hw73qd+5D8Sa7l9nFrAeCx6kC
jg8OSKhXhAgNLDk8siBsSUkDq7UsZybXfl/8DqRh/h9v2cg9ksN1Gy6ww2pAojj29LX1S2S/iar+
QFE5hqrFYb2lJgyBaXfEGr4nwBMPjLwSClxPNWl/3rJZSPB0dp3kgUVlW3XDjqIjwOCV451DZapO
lGeEhQq7RtT2ia9ulevXatf2+IJTrLfIkOHUBtpRwrTMTXgsdRqkBRktFv2NEgH7sszqR3HfmzMF
brMtj2gaFJ4agg==
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature><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#rsa-sha256"/>
<ds:Reference URI="#company1">
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>7wRdRIWarKhtuFAUJs/UXi8YY3tSbyAMm+exiXOgFIw=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
kNv1ziYsFITXbLHDvgOv+Q5dK43Qz5G/3/jP5BPxkrnrxf6oiTaFVxq092MwZnwkkuLVrcw6f1lU
cI7e5Xyx0aH/xIhsjXa6hBwWssm0D3bEcBPbH0LYTULDVcO/xx+Eb38mwif+iVtmqTBXPwAfWR1S
xxXris/iBrJ86/2OBetuVTVKSN8jWeLop14hIr7jIMrc1MkyWUsh/+NMnPp/evQ58CSP/RCkbEgA
/6GmHGvdkVbk4T6+8vrhGMAwb4aukAVFZ0bo/I1EckWb5uYVhFa9xctGmwsqVKQUhPrGBd7E2SFY
tabIuf7J1agQbf2Rn/4KcIguF4m92nLg4DlYlw==
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIHJjCCBQ6gAwIBAgIUSPkSt8OKiUth8vq9OMMomY8OUUAwDQYJKoZIhvcNAQELBQAwgc4xCzAJ
BgNVBAYTAktaMRUwEwYDVQQHDAzQkNCh0KLQkNCd0JAxFTATBgNVBAgMDNCQ0KHQotCQ0J3QkDFM
MEoGA1UECgxD0KDQnNCaIMKr0JzQldCc0JvQldCa0JXQotCi0IbQmiDQotCV0KXQndCY0JrQkNCb
0KvSmiDSmtCr0JfQnNCV0KLCuzFDMEEGA1UEAww60rDQm9Ci0KLQq9KaINCa0KPTmNCb0JDQndCU
0KvQoNCj0KjQqyDQntCg0KLQkNCb0KvSmiAoUlNBKTAeFw0xNjA4MDUxMDIxMjJaFw0xNzA4MDUx
MDIxMjJaMIH7MSowKAYDVQQDDCHQotCe0KXQotCQ0KXQo9Cd0J7QkiDQmtCj0JTQoNCQ0KIxHTAb
BgNVBAQMFNCi0J7QpdCi0JDQpdCj0J3QntCSMRgwFgYDVQQFEw9JSU45MTEwMTEzMDIxMTgxCzAJ
BgNVBAYTAktaMRUwEwYDVQQHDAzQotCQ0JvQk9CQ0KAxLjAsBgNVBAgMJdCQ0JvQnNCQ0KLQmNCd
0KHQmtCQ0K8g0J7QkdCb0JDQodCi0KwxHTAbBgNVBCoMFNCo0KPQpdCg0JDQotCe0JLQmNCnMSEw
HwYJKoZIhvcNAQkBFhJJU0tVRFJBVEBHTUFJTC5DT00wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCbwkSLDqrioGsNzNyBtDGYO9y60jiw2PTG5hu5/ksg2CVRnouQEzrteFREA+A9bTo9
LMjOSM6jY1aE+71nq9+ES9THR2c5Dw5HAwyCUr6TlcXpxtZ3O3kLHVwE0E6hWNGZp+XpTlvLrUY0
jMhl71QnQwJjKsDe5bazfH1KNN8N/ixS0MBmXBdIxAP1DJfx5JHB2aMcTohZaJf5+OBqQzfCQM45
uvbpZgA4YhyRE4qhEmpEiYpuIudRGInejv/JOqDmMG9qts2pnZMhAKmLToQjoNS5W4sJyHsSZuIp
Q1gqVDzZ7mKZER/GyYogJwVKooYdnjDgXageBQSlbtsGo0DBAgMBAAGjggHLMIIBxzAOBgNVHQ8B
Af8EBAMCBsAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCqDDgMDBAEBMA8GA1UdIwQIMAaABFW1tOIw
HQYDVR0OBBYEFOav7UU3NUUpNRTM4X7V5oupYzaVMF4GA1UdIARXMFUwUwYHKoMOAwMCAzBIMCEG
CCsGAQUFBwIBFhVodHRwOi8vcGtpLmdvdi5rei9jcHMwIwYIKwYBBQUHAgIwFwwVaHR0cDovL3Br
aS5nb3Yua3ovY3BzME4GA1UdHwRHMEUwQ6BBoD+GHWh0dHA6Ly9jcmwucGtpLmdvdi5rei9yc2Eu
Y3Jshh5odHRwOi8vY3JsMS5wa2kuZ292Lmt6L3JzYS5jcmwwUgYDVR0uBEswSTBHoEWgQ4YfaHR0
cDovL2NybC5wa2kuZ292Lmt6L2RfcnNhLmNybIYgaHR0cDovL2NybDEucGtpLmdvdi5rei9kX3Jz
YS5jcmwwYgYIKwYBBQUHAQEEVjBUMC4GCCsGAQUFBzAChiJodHRwOi8vcGtpLmdvdi5rei9jZXJ0
L3BraV9yc2EuY2VyMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC5wa2kuZ292Lmt6MA0GCSqGSIb3
DQEBCwUAA4ICAQA/CoCSruaDyitsTPlCnA0VoyCySc5Ldi2qpTrazb3YQNiVAtuq73tcE7BXtfRY
4nemPAF6k62FVWHztZHm8rekF3iNAx61aPKyCSULY1ezPhQ+KFumuhOCOB6nMnU5veggDIxYPZRm
InmNNRVWdjIS4DSL/JvYsItQ2Gs95ogJmCa+W6DfUm9Ol8mw4eVBi974/k3bfOZHzJ9fo3sshmoC
P5KhA3hrYb+JEFU1mrSEL8Fi5dZ01qdnt9bwZfLVLgmuiAMqtVhnJypWALNuJ+cJm1R7yQqkfNTs
y0LwLm8cXP2Gw2p6NwPB8058y35ciO2o1n3HWTAc5QDH13dy01suF59cPi++cWcI6VHj0paZwZ3x
/yl+XhlqsTv/Lez8pWgzRYAhV6CZ41u3qiHf034MAqwxTkZlcD3Hw73qd+5D8Sa7l9nFrAeCx6kC
jg8OSKhXhAgNLDk8siBsSUkDq7UsZybXfl/8DqRh/h9v2cg9ksN1Gy6ww2pAojj29LX1S2S/iar+
QFE5hqrFYb2lJgyBaXfEGr4nwBMPjLwSClxPNWl/3rJZSPB0dp3kgUVlW3XDjqIjwOCV451DZapO
lGeEhQq7RtT2ia9ulevXatf2+IJTrLfIkOHUBtpRwrTMTXgsdRqkBRktFv2NEgH7sszqR3HfmzMF
brMtj2gaFJ4agg==
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature></signs>
</root>


При попытке проверить данные возникает ошибка: SIGNATURE_VALIDATION_ERROR
  • Страница:
  • 1
FaLang translation system by Faboba