签名方法为HMAC-SHA1
,我已生成<SignedInfo>
。问题是我不确定在HMAC计算中使用什么作为关键。
我注意到有两个<Entropy>
在初始请求(RST)和响应(RSTR)中包含<BinarySecret>
。我从WS-Trust读到,这表明我可以使用来自响应的<BinarySecret>
标记中指定的PSHA1
和<ComputeKey>
这两个二进制值生成证明密钥。但是,我永远无法获得与服务提供商样本中的签名值相同的签名值。
任何信息都会有所帮助!
举个例子:
grrlUUfhuNwlvQzQ4bV6TT3wA8ieZPltIf4+H7nIvCE=
YLABh3ZmZyiO5gvVLZe9J4JPd9w59KGeTFwE85XlzxE=
nXJEN8p1nupMA/00TK03VZlADkU=
bEGpeRFsznafFRf86g281zKV3Ro=
<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>
答案 0 :(得分:0)
您是否记得在散列/验证之前对base64进行解码? 顺便使用hash(),你可以在没有键的情况下使用sha256进行哈希。