4
XAdESテンプレートでxmlに署名する必要があります。私は2つの参照を使用しています。問題は2番目の問題です。Transformを追加すると、この変換を行わないとFalseが返されます(signedXml.CheckSignature()がtrueを返します)。C#XAdESでXML文書に署名する
マイコード:
System.Security.Cryptography.Xml.Reference reference2;
System.Security.Cryptography.Xml.SignedXml signedXml;
...
reference2 = new Reference();
reference2.Type = "http://uri.etsi.org/01903/v1.1.1#SignedProperties";
reference2.Uri = "#SignedPropertiesId";
//reference2.AddTransform(new XmlDsigExcC14NTransform()); IF I COMMENT THIS LINE IT WONT WORK
signedXml.AddReference(reference2);
signedXml.ComputeSignature();
XmlElement xmlDigitalSignature = signedXml.GetXml();
xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));
signedXml.CheckSignature(); //return false if dont use Transform in second REF
signedXml.ComputeSignature();
XmlElement xmlDigitalSignature = signedXml.GetXml();
xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));
署名の第二部。
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>cert...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<ds:Object>
<xds:QualifyingProperties Target="#SignatureId">
<xds:SignedProperties Id="SignedPropertiesId">
<xds:SignedSignatureProperties>
は.NETでこのような問題がありますか?
ありがとうございました。