Мне нужно подключиться к веб-сервису, который имеет безопасность wsse и должен генерировать все хэши и токены вручную, потому что у savon пока нет этой функции.
То, что сводит меня с ума, этоподпись.
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="#_0">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>......</DigestValue>
</Reference>
</SignedInfo>
Это ссылочная часть:
<u:Timestamp u:Id="_0">
<u:Created>2012-01-04T08:21:22.143Z</u:Created>
<u:Expires>2012-01-04T08:26:22.143Z</u:Expires>
</u:Timestamp>
Насколько я понимаю, мне нужно канонизировать ссылочный элемент (метку времени), а затем получить хеш с SHA-1, а затем закодируйте его в base64.
Вопрос в том, какую часть метки времени мне нужно канонизировать?Я пытался использовать весь элемент, затем использовать и отдельно, но я никогда не получал правильное DigestValue.