2
签名方法是HMAC-SHA1
,并且我已经有<SignedInfo>
生成。问题是我不确定在HMAC计算中使用什么作为密钥。使用XML中的HMAC-SHA1生成SignatureValue
我注意到有两个<Entropy>
从最初的请求(RST)和响应(RSTR)包含<BinarySecret>
。我从WS-Trust读取,这表明我可以使用来自响应的<ComputeKey>
标记中指定的<BinarySecret>
和PSHA1
中的这两个二进制值生成证明密钥。但是,我永远无法获得与服务提供商样本中相同的签名值。
任何信息都有帮助!
作为一个例子:
- 从RST二进制秘密是
grrlUUfhuNwlvQzQ4bV6TT3wA8ieZPltIf4+H7nIvCE=
- 从RSTR二进制秘密是
YLABh3ZmZyiO5gvVLZe9J4JPd9w59KGeTFwE85XlzxE=
- 正确签名值是
nXJEN8p1nupMA/00TK03VZlADkU=
- 签名值I生成是
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>