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 を取得するにはどうすればよいですか?