Здравствуйте. Использую xmlsec-1.4.3 от apache. При проверке подписи возникает ошибка, если между тэгами элемента SignedInfo появляются лишние пробелы или пустые строки, ошибка также будет, если убрать символы между тэгами(например, перевод строки). Т.е.
| Код | <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/> <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#gostr3411"/> <ds:DigestValue>UwqP+Mp3VeKAfYTdWNi/ImfPEfb8oFsiNfNFRU0Vlt0=</ds:DigestValue> </ds:Reference> </ds:SignedInfo>
|
правильно, а так
| Код | <ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/> <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#gostr3411"/> <ds:DigestValue>UwqP+Mp3VeKAfYTdWNi/ImfPEfb8oFsiNfNFRU0Vlt0=</ds:DigestValue> </ds:Reference> </ds:SignedInfo>
|
или так
| Код | <ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/> <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#gostr3411"/> <ds:DigestValue>UwqP+Mp3VeKAfYTdWNi/ImfPEfb8oFsiNfNFRU0Vlt0=</ds:DigestValue> </ds:Reference> </ds:SignedInfo>
|
уже неправильно. Как привести подпись к проверяемому виду? В документации не написано, должны быть символы между тэгами или нет. Или есть какой-нибудь настраиваемый параметр, который определяет проверку SignedInfo? Если кто-нибудь сталкивался с этой проблемой, поделитесь решением, пожалуйста. Спасибо |