小编Jac*_*cob的帖子

C#如何验证Root-CA-Cert证书(x509)链?

假设我有三个证书(Base64格式)

Root
 |
 --- CA
     |
     --- Cert (client/signing/whatever)
Run Code Online (Sandbox Code Playgroud)

如何在C#中验证证书和证书路径/链?(所有这三个证书可能都不在我的计算机证书库中)

编辑:BouncyCastle具有验证功能.但我试图不使用任何第三方库.

    byte[] b1 = Convert.FromBase64String(x509Str1);
    byte[] b2 = Convert.FromBase64String(x509Str2);
    X509Certificate cer1 = 
        new X509CertificateParser().ReadCertificate(b1);
    X509Certificate cer2 =
        new X509CertificateParser().ReadCertificate(b2);
    cer1.Verify(cer2.GetPublicKey());
Run Code Online (Sandbox Code Playgroud)

如果cer1未由cert2(CA或root)签名,则会出现异常.这正是我想要的.

c# cryptography x509certificate x509

19
推荐指数
1
解决办法
3万
查看次数

JDK 64位还是32位?

我的电脑使用的是Windows 7 64位.但是我的jsp Web应用程序部署的服务器是32位.

我是否需要在我的PC上安装32位JDK/JRE才能开发?我正在使用Eclipse.

非常感谢你.

java

12
推荐指数
2
解决办法
9404
查看次数

C#XPathSelectElement和xml,属性为xmlns ="http://www.w3.org/2000/09/xmldsig#"帮助

我需要读取一个属性为xmlns ="http://www.w3.org/2000/09/xmldsig#"的xml元素.XPathSelectElement给出错误"对象引用未设置为对象的实例".

这是示例代码.

var xml = "<root><tagA>Tag A</tagA><tagB>Tag B</tagB></root>";
XDocument xd = XDocument.Parse(xml);
var str = xd.XPathSelectElement("/root/tagB").ToString(SaveOptions.DisableFormatting);
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)

上面代码的结果是:

<tagB>Tag B</tagB>
Run Code Online (Sandbox Code Playgroud)

如果我把属性,

var xml = "<root><tagA>Tag A</tagA><tagB xmlns=\"http://www.w3.org/2000/09/xmldsig#\">Tag B</tagB></root>";
Run Code Online (Sandbox Code Playgroud)

我收到了错误.

Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?任何人都可以帮助我.(我知道我可以通过其他方法获得.我只是想知道我在这里缺少什么)

非常感谢你.

c# xml linq xpath xml-namespaces

3
推荐指数
1
解决办法
3360
查看次数

标签 统计

c# ×2

cryptography ×1

java ×1

linq ×1

x509 ×1

x509certificate ×1

xml ×1

xml-namespaces ×1

xpath ×1