如何在Xamarin.Android上签署soap xml消息

时间:2017-03-26 10:55:56

标签: xml xamarin sign

无法在Xamarin.Android上使用X509Certificate2签署soap xml消息,

错误是:缺少System.Security.Cryptography.Xml。

还有其他解决方案吗?

我的代码:

X509Certificate2 certifikat = new X509Certificate2(certificate, certificatePassword);

RSACryptoServiceProvider provider = (RSACryptoServiceProvider)certifikat.PrivateKey;

SignedXml xml = null;
try
{
    xml = new SignedXml(dokument);
    xml.SigningKey = provider;
    xml.SignedInfo.CanonicalizationMethod = SignedXml.XmlDsigExcC14NTransformUrl;


    KeyInfo keyInfo = new KeyInfo();
    KeyInfoX509Data keyInfoData = new KeyInfoX509Data();
    keyInfoData.AddCertificate(certifikat);
    keyInfoData.AddIssuerSerial(certifikat.Issuer, certifikat.GetSerialNumberString());
    keyInfo.AddClause(keyInfoData);

    xml.KeyInfo = keyInfo;


    Reference reference = new Reference("");
    reference.AddTransform(new XmlDsigEnvelopedSignatureTransform(false));
    reference.AddTransform(new XmlDsigExcC14NTransform(false));
    reference.Uri = "#signXmlId";
    xml.AddReference(reference);
    xml.ComputeSignature();

    XmlElement element = xml.GetXml();
    dokument.DocumentElement.AppendChild(element);
}
catch (Exception ex)
{

}

0 个答案:

没有答案