C# 将509证书信息嵌入到xml文件中

C# 将509证书信息嵌入到xml文件中,c#,C#,我有c#代码来签署一个与本文非常相似的xml: 具体而言,我对本节感兴趣: // embed public key information for signature validation purposes KeyInfo keyInfo = new KeyInfo(); KeyInfoX509Data keyInfoX509Data = new KeyInfoX509Data(certificate, X509IncludeOption.ExcludeRoot); keyInfo.AddCl

我有c#代码来签署一个与本文非常相似的xml:

具体而言,我对本节感兴趣:

// embed public key information for signature validation purposes
KeyInfo keyInfo = new KeyInfo();
KeyInfoX509Data keyInfoX509Data = new KeyInfoX509Data(certificate, X509IncludeOption.ExcludeRoot);
keyInfo.AddClause(keyInfoX509Data);
signedXml.KeyInfo = keyInfo;

我的问题是,这段代码是否在xml文件中嵌入了任何私钥信息?代码的注释暗示它没有,这是好的。我不想在xml文件中嵌入私钥数据。但我对签名还比较陌生,如果我真的包含私钥数据,那就太糟糕了,所以我想我会在这里问一下。我首先尝试在KeyInfoX509Data上检查microsoft文档,但这并没有回答我的问题。

证书通常只保存公钥,但如果证书以PKCS#12格式启动,则可能存在私钥。如果“certificate”是X509Certificate2对象,则始终可以查找属性HasPrivateKey以确定该证书中是否有任何私钥信息