Reputation: 11
I get an error,
Malformed reference element
when I use only numbers, if the Id has any letters, it works perfectly.
Example:
Id="01500843090020001000000122024073010080819774"
returns Malformed reference element, but with Id="X1500843090020001000000122024073010080819774"
it works.
documento.LoadXml(xml);
var docXml = new SignedXml (documento);
docXml.SigningKey = certificado.GetRSAPrivateKey();
docXml.SignedInfo.CanonicalizationMethod = SignedXml.XmlDsigExcC14NTransformUrl;
var reference = new System.Security.Cryptography.Xml.Reference { Uri = string.Format("#{0}", id) };
reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
reference.AddTransform(new XmlDsigExcC14NTransform());
docXml.AddReference(reference);
var keyInfo = new System.Security.Cryptography.Xml.KeyInfo();
keyInfo.AddClause(new KeyInfoX509Data(certificado));
docXml.KeyInfo = keyInfo;
docXml.ComputeSignature();
Upvotes: 1
Views: 40