java pkcs_用Java验证PKCS#7证书
在
Java中需要一些加密例程的帮助.
鉴于PKCS#7签名,我想验证它对可信商店包含的所有证书.我假设签名中包含的所有证书都以正确的顺序形成有效的证书路径(或链,无论如何),以便这样做
> topmost(#0)是签名证书;
>下一个(#1)是一个中间证书,用于签署#0;
>下一个(#2)是另一个中间证书,用于签署#1;
>依此类推.
最后一个证书(#N)由CA签名.
这就是我到目前为止所做的事情:
// Exception handling skipped for readability
//byte[] signature = ...
pkcs7 = new PKCS7(signature); // `sun.security.pkcs.PKCS7;`
// *** Checking some PKCS#7 parameters here
X509Certificate prevCert = null; // Previous certificate we've found
X509Certificate[] certs = pkcs7.getCertificates(); // `java.security.cert.X509Certificate`
for (int i = 0; i < certs.length; i++) {
// *** Checking certificate validity period here
if (cert != null) {
// Verify previous certificate in chain against this one
prevCert.verify(certs[i].getPublicKey());
}
prevCert = certs[i];
}
//String keyStorePath = ...
KeyStore keyStore = KeyStore.getInstance("JKS"); // `java.security.KeyStore`
keyStore.load(new FileInputStream(keyStorePath), null);
// Get trusted VeriSign class 1 certificate
Certificate caCert = keyStore.getCertificate("verisignclass1ca"); // `java.security.cert.Certificate`
// Verify last certificate against trusted certificate
cert.verify(caCert.getPublicKey());
所以问题是 – 如何使用像CertPath和朋友这样的标准Java类来完成这项工作?我有一种强烈的感觉,我正在重新发明一辆自行车.或者,如果某人有BouncyCastle库的示例,那也没关系.
红利问题:如何针对受信任的商店验证证书,以便自动选择根证书?
java pkcs_用Java验证PKCS#7证书相关推荐
- java 验证码透明背景_Java中的证书透明度验证
java 验证码透明背景 因此,我有一个幼稚的想法,即除了证书有效性检查(在Java中)之外,将证书透明性验证作为每个请求的一部分也很容易. 牺牲了整个周末的一半时间,我可以证明这并不是一件小事. 但 ...
- java数字签名(签名生成,用证书验证签名)
部分签名原理 http://blog.csdn.net/lijiecong/archive/2010/12/24/6096289.aspx (转载序:网上找的好文章,一篇就把我找了几天的所有东西都概括 ...
- java pkcs_在 Python 3 (PKCS#1)中,如何正确使用来自 Java (PKCS#8) 的 RSA 私钥,进行数据解密?...
问题描述 在使用 Python 访问由 Java 写的服务器的时候,服务器返回的资源是通过 RSA 加密的,我有 Java 中生成的 RSA 私钥字符串.但是在解密的时候,出现问题. 后面了解到(看了 ...
- Java加密与解密的艺术~数字证书~证书管理openssl
OpenSSL功能远胜于KeyTool,可用于根证书,服务器证书和客户证书的管理 这里使用的是Win32OpenSSL_Light-1_0_1e.exe http://www.slproweb.com ...
- java 庖丁解牛api_Java 微信支付 APIv3 平台证书的命令行下载工具
Certificate Downloader Certificate Downloader 是 Java 微信支付 APIv3 平台证书的命令行下载工具.该工具可从 https://api.mch.w ...
- HIDL示例-JAVA服务创建-Client验证-Android10.0 HwBinder通信原理(四)
摘要:本节主要来讲解Android10.0 JAVA层的HIDL服务创建和JAVA层的Client验证 阅读本文大约需要花费15分钟. 文章首发微信公众号:IngresGe 专注于Android系统级 ...
- 两步验证杀手锏:Java 接入 Google 身份验证器实战
转载自 两步验证杀手锏:Java 接入 Google 身份验证器实战 什么是两步验证? 大家应该对两步验证都熟悉吧?如苹果有自带的两步验证策略,防止用户账号密码被盗而锁定手机进行敲诈,这种例子屡见 ...
- 针对Java中的XSD验证XML
有许多工具可用于根据XSD 验证XML文档 . 其中包括操作系统脚本和工具,例如xmllint ,XML编辑器和IDE,甚至是在线验证器. 由于前面提到的方法的局限性或问题,我发现拥有自己的易于使用的 ...
- 如何在Java中针对XSD验证XML
Java XML Validation API can be used to validate XML against XSD in java program. javax.xml.validatio ...
最新文章
- IDC评述网:7月上旬国内域名解析服务商Top10
- java el表达式 if else_jsp EL表达式和JSTL标签if-else if-else用法
- Android基础_1 四大基本组件介绍与生命周期
- hust1346(两个线段的最近距离和最小距离)
- 大白菜pe解锁bitlocker_微PE工具箱 v2.1 官方版,最好用的 Win10PE 系统
- java常见的内存溢出
- Android 功耗优化(4)---android 7.0低电耗Doze模式
- centos7更改默认的python版本,安装python3.6.4
- OKR教练:为何落地OKR需要复盘?
- Linux系统下如何显示隐藏文件
- java取拼音首字母
- FTDI的LibMPSSE编译流程
- EasyRecovery15手机电脑全功能数据恢复软件
- 手撕十大排序算法①——思路讲解
- php 砸金蛋抽奖,jQuery抽奖砸金蛋代码
- html正片叠底 透明度,css3正片叠底(示例代码)
- stata一开始处理wind数据——批量处理标签和标题
- 被通知一个月离职,我修改了项目中的所有注释……
- php敏感函数,PHP中的敏感函数
- 学生计算机组装与维修总结,学生计算机组装与维修总结.docx