0

XmlDsigC14NTransform に問題があります。http://www.di-mgt.com.au/xmldsig2.html (正規化された SignedInfo 要素を構成し、その SignatureValue を計算する部分)から例を繰り返そうとして いますが、私のコードは xml から空白を失い、正しい 16 進ダンプを取得できません。

私のC#コード:

 XmlDocument signedInfoXml = new XmlDocument();
 signedInfoXml.Load(@"C:\temp\new_sign.txt");

 XmlDsigC14NTransform xmlTransform = new XmlDsigC14NTransform();
 xmlTransform.LoadInput(signedInfoXml);
 MemoryStream memoryStream = (MemoryStream)xmlTransform.GetOutput();
 return  BitConverter.ToString(memoryStream.ToArray()).Replace("-"," ");

ソース Xml (ファイル C:\temp\new_sign.txt から):

<SignedInfo  xmlns="http://www.w3.org/2000/09/xmldsig#">
      <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
      <Reference URI="">
        <Transforms>
          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
        </Transforms>
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <DigestValue>UWuYTYug10J1k5hKfonxthgrAR8=</DigestValue>
      </Reference>
    </SignedInfo>

空白を xml に保存し、サンプル ( http://www.di-mgt.com.au/xmldsig2.html )のように正規化された xml を取得するにはどうすればよいですか?

4

1 に答える 1