签名方法是HMAC-SHA1
,我已经<SignedInfo>
生成了。问题是我不确定在 HMAC 计算中使用什么作为键。
我注意到有两个<Entropy>
包含<BinarySecret>
初始请求(RST)和响应(RSTR)。我从 WS-Trust 中读到,这表明我可以使用来自<BinarySecret>
和的这两个二进制值生成一个证明密钥,正如响应中的标记中PSHA1
所指定的那样。<ComputeKey>
但是,我永远无法从服务提供商处获得与样本中的签名值相同的签名值。
任何信息都会有所帮助!
举个例子:
- RST 的二进制秘密是
grrlUUfhuNwlvQzQ4bV6TT3wA8ieZPltIf4+H7nIvCE=
- RSTR 的二进制秘密是
YLABh3ZmZyiO5gvVLZe9J4JPd9w59KGeTFwE85XlzxE=
- 正确的签名值为
nXJEN8p1nupMA/00TK03VZlADkU=
- 我生成的签名值是
bEGpeRFsznafFRf86g281zKV3Ro=
- SignInfo的内容如下
<SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-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>CwMGnFZklO7XsDfFguzl0tw7iHM=</DigestValue> </Reference> </SignedInfo>