我正在使用 XMLDSIG签署配置文件。我希望我的 CA 能够颁发可用于签署 XML 的密钥。然后我想验证 XML 是否是使用我的 CA 颁发的密钥进行签名的。
如何从签名证书中获取签名证书SignedXml
目的?如何沿着证书链回到特定的 CA?
请注意,我的 CA 的公钥将存储在我的可执行文件中,而不是证书存储中。
要将任意证书附加到 XML-DSIG 文件,请添加<X509Data> element。要在 .NET 中执行此操作,请使用:
signedXml.KeyInfo.AddClause(
new KeyInfoX509Data(certificate, X509IncludeOption.WholeChain));
要从 XML 文件中提取证书,请使用:
var certificates = signedXml.KeyInfo.OfType<KeyInfoX509Data>().Single();
然后,您可以使用以下命令验证链:
var chain = new X509Chain();
chain.ChainPolicy.ExtraStore.AddRange(
certificates.Cast<X509Certificate2>().ToArray());
var chainIsOk = chain.Build(signingCertificate);
要找出实际用于签名的证书(以及因此的值)signingCertificate
),您需要找到包含的证书匹配钥匙从返回CheckSignatureReturningKey
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)