正确的实例化类的方法,这样我就可以验证证书中的路径链

亚历克斯

我有3D派对库(用于Kalkan提供程序的SDK)。我相信该库的一部分会检查证书路径。问题是我应该传递两个参数来正确实例化类,以便可以使用所需的一种方法。

这是代码:

final PKIXCertPathReviewer checker = new PKIXCertPathReviewer(cp, params);
boolean test = checker.isValidCertPath();

这是构造函数的一部分:

public PKIXCertPathReviewer(CertPath certPath, PKIXParameters params)

关于任务有点。我已经通过客户证书签署了文件。我想验证客户证书中的路径。因此,我具有客户端的X509Certificate证书实例,一个中间证书和一个根证书。最后两个是磁盘上cer格式的文件。据我了解,我应该将所有这三个证书结合在一起。如果有人向我展示了如何创建这些cpparams,那将非常有帮助。提前致谢。

亚历克斯

这是更好的解决方案:

Provider p = ProviderUtil.loadKalkanProvider();
X509Certificate ca = X509Util.loadX509Certificate("/tmp/ca/root_ca_rsa.cer", p);
X509Certificate nca = X509Util.loadX509Certificate("/tmp/ca/root_nca_rsa.cer", p);
X509Certificate cert = X509Util.loadX509Certificate("/tmp/cert/user.cer", p);
X509CRL crl = X509Util.loadX509CRL("/tmp/ca/rsa.crl", p);
X509CRL rcrl = X509Util.loadX509CRL("/tmp/ca/root_rsa.crl", p);
ArrayList<X509Extension> list = new ArrayList<X509Extension>();
list.add(nca);
list.add(cert);
list.add(crl);
list.add(rcrl);
CollectionCertStoreParameters certStoreParameters = new CollectionCertStoreParameters(list);
CertStore certStore = CertStore.getInstance("Collection", certStoreParameters, p);
CertPathBuilder builder = CertPathBuilder.getInstance("PKIX", p);
// проверка до корневого CA, можно сократить до промежуточного NCA
TrustAnchor anchor = new TrustAnchor(ca, null);
Set<TrustAnchor> anchors = new HashSet<TrustAnchor>();
anchors.add(anchor);
X509CertSelector selector = new X509CertSelector();
// задаем параметры для селектора конечного сертификата или можно указать полное соответствие сертификата
//selector.setSerialNumber(cert.getSerialNumber());
//selector.setIssuer(cert.getIssuerX500Principal());
selector.setCertificate(cert);
PKIXBuilderParameters builderParameters = new PKIXBuilderParameters(anchors, selector);
// если не добавляли список CRL, то надо отключить проверку
//builderParameters.setRevocationEnabled(false);
builderParameters.addCertStore(certStore);
builderParameters.setSigProvider(p.getName());
PKIXCertPathBuilderResult builderResult = (PKIXCertPathBuilderResult) builder.build(builderParameters);
System.out.println(builderResult);
// можем закодировать и сохранить полученный путь в форматах PkiPath/PKCS7/PEM
//builderResult.getCertPath().getEncoded("PkiPath");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Applescript的文件路径中获取所有文件夹-这样我就可以对其进行标记

来自分类Dev

在Applescript的文件路径中获取所有文件夹-这样我就可以对其进行标记

来自分类Dev

如何从xampp安装链接到php,这样我就可以使用php命令而不是完整路径了?

来自分类Dev

在src文件夹中获取txt文件的路径,这样我就可以将其读取到数组中

来自分类Dev

工厂课程,这样我就可以改变我的其他客户

来自分类Dev

工厂课程,这样我就可以改变我的其他客户

来自分类Dev

将db列设置为可选或不必需,这样我就可以创建记录

来自分类Dev

Fabric:处理异常,这样我就可以在try块中捕获它

来自分类Dev

使用厨师创建用户,这样我就可以进入框内

来自分类Dev

在rgb()中使用命名的r颜色,这样我就可以添加alpha值

来自分类Dev

使ajax调用重复功能,这样我就可以再次调用它n

来自分类Dev

不使用绝对路径就可以解决“没有这样的文件或目录”吗?

来自分类Dev

Windows 7随机关闭。在哪里可以找到相关日志?这样我就可以识别错误

来自分类Dev

将数据从Python程序保存到“工作区”,这样我就可以绘图而不必再次运行该程序

来自分类Dev

尝试将随机生成的密码存储为字符串,这样我就可以将其保存到文件(Java)

来自分类Dev

通过单击链接登录到Google Apps(这样我就可以在帐户之间切换)

来自分类Dev

使用history.js来检测是否支持HTML4,这样我就可以绕过ajax

来自分类Dev

C#接口无法实例化,所以为什么不指定具体类型就可以使用IEnumerable

来自分类Dev

为什么我没有正确的密码就可以登录?为什么 password_verify 总是返回 true?

来自分类Dev

在我的XSL文件中包含一个C#(.cs)文件,这样我就可以使用智能感知了吗?

来自分类Dev

为什么在解构变量后不能调用方法,但如果我直接访问该字段就可以?

来自分类Dev

如何在mariadb中编写基于组的中位数和模式计算函数?这样我就可以在查询本身中使用它

来自分类Dev

在一个变量中对多个观察进行分类,这样我就可以将它们归类在新的专栏中。如何使代码更短?在R中

来自分类Dev

使用char * array存储条形图的条形,这样我就可以动态创建它并以字符串形式返回

来自分类Dev

这样就可以从任何目录调用作曲家

来自分类Dev

AI弹丸瞄准,发射火箭/子弹等。这样它就可以拦截目标

来自分类Dev

如何在Android中延迟startactivity()。这样就可以使用截击数据

来自分类Dev

为什么抽象类可以这样实例化?

来自分类Dev

在PHP中实例化类的正确方法

Related 相关文章

  1. 1

    在Applescript的文件路径中获取所有文件夹-这样我就可以对其进行标记

  2. 2

    在Applescript的文件路径中获取所有文件夹-这样我就可以对其进行标记

  3. 3

    如何从xampp安装链接到php,这样我就可以使用php命令而不是完整路径了?

  4. 4

    在src文件夹中获取txt文件的路径,这样我就可以将其读取到数组中

  5. 5

    工厂课程,这样我就可以改变我的其他客户

  6. 6

    工厂课程,这样我就可以改变我的其他客户

  7. 7

    将db列设置为可选或不必需,这样我就可以创建记录

  8. 8

    Fabric:处理异常,这样我就可以在try块中捕获它

  9. 9

    使用厨师创建用户,这样我就可以进入框内

  10. 10

    在rgb()中使用命名的r颜色,这样我就可以添加alpha值

  11. 11

    使ajax调用重复功能,这样我就可以再次调用它n

  12. 12

    不使用绝对路径就可以解决“没有这样的文件或目录”吗?

  13. 13

    Windows 7随机关闭。在哪里可以找到相关日志?这样我就可以识别错误

  14. 14

    将数据从Python程序保存到“工作区”,这样我就可以绘图而不必再次运行该程序

  15. 15

    尝试将随机生成的密码存储为字符串,这样我就可以将其保存到文件(Java)

  16. 16

    通过单击链接登录到Google Apps(这样我就可以在帐户之间切换)

  17. 17

    使用history.js来检测是否支持HTML4,这样我就可以绕过ajax

  18. 18

    C#接口无法实例化,所以为什么不指定具体类型就可以使用IEnumerable

  19. 19

    为什么我没有正确的密码就可以登录?为什么 password_verify 总是返回 true?

  20. 20

    在我的XSL文件中包含一个C#(.cs)文件,这样我就可以使用智能感知了吗?

  21. 21

    为什么在解构变量后不能调用方法,但如果我直接访问该字段就可以?

  22. 22

    如何在mariadb中编写基于组的中位数和模式计算函数?这样我就可以在查询本身中使用它

  23. 23

    在一个变量中对多个观察进行分类,这样我就可以将它们归类在新的专栏中。如何使代码更短?在R中

  24. 24

    使用char * array存储条形图的条形,这样我就可以动态创建它并以字符串形式返回

  25. 25

    这样就可以从任何目录调用作曲家

  26. 26

    AI弹丸瞄准,发射火箭/子弹等。这样它就可以拦截目标

  27. 27

    如何在Android中延迟startactivity()。这样就可以使用截击数据

  28. 28

    为什么抽象类可以这样实例化?

  29. 29

    在PHP中实例化类的正确方法

热门标签

归档