3

署名方法はですHMAC-SHA1、そして私はすでに<SignedInfo>生成しました。問題は、HMAC計算でキーとして何を使用すればよいかわからないことです。

最初のリクエスト(RST)とレスポンス(RSTR)から<Entropy>囲んでいるものが2つあることに気づきました。WS-Trustから読んだところによると、これは、応答のタグで指定されているように、および<BinarySecret>からこれら2つのバイナリ値を使用して証明キーを生成できることを示しています。ただし、サンプルの署名値と同じ署名値をサービスプロバイダーから取得することはできませんでした。<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>
4

1 に答える 1

0

ハッシュ/検証する前に値を base64 でデコードすることを覚えていましたか? ちなみに、hash() を使用すると、キーなしで sha256 でハッシュできます。

于 2011-07-22T15:40:56.807 に答える