草庐IT

java - 结合验证 PKCS#7 签名所需的所有任务

我已经为这个问题苦苦思索了大约20个小时,我可能遗漏了一些简单的东西。但是,我已经到了我认为需要帮助的地步。我已经阅读了数十种关于如何解决问题不同部分的解释,但我无法弄清楚如何将它们组合在一起。我有一个DER编码的分离PKCS#7数字签名。签名符合RFC3852(加密消息语法)。对于我的项目,我需要逐步完成验证签名所需的每个步骤,并能够判断验证失败的步骤。我在Java中使用BouncyCaSTLe。据我了解,验证数字签名需要六个基本步骤验证根证书是受信任的证书验证从根证书到签名证书的证书链验证签名者的姓名是否符合您的预期验证证书没有过期验证证书没有出现在CRL上(为简单起见,假设CRL

java - PKCS5Padding 可以使用 AES/GCM 模式吗?

AES/GCM的填充模式是什么?我知道它可以是NoPadding,因为在ECB模式下它可以是PKCS5Padding,在GCM模式下怎么样?在JCE接口(interface)中,我们需要提供“算法/模式/填充”(Reference)。所以我使用下面的代码来获取实例,它在JDK中工作,但在IBMSDK中失败,它说cannotfindproviderforsupportingAES/GCM/PKCS5PaddingCipher.getInstance("AES/GCM/PKCS5Padding");填充的实际用例是什么? 最佳答案 GC

java - AES-256 和 PKCS7Padding 在 Java 中失败

我有几个库,C#、PHP和Android,它们都以相同的方式加密/解密字符串,因此它们彼此兼容,即C#将数据写入数据库并加密,PHP可以成功解密它并返回原始字符串。我现在需要对标准Java应用程序做同样的事情,所以我从我的Android库中获取代码并需要库,但我遇到了异常。据我所知,代码不是特定于Android的,因此应该不是问题。下面是我的加密函数publicstaticStringencrypt(StringplainPasword){Stringpassword="";try{SecretKeySpeckey=newSecretKeySpec("hcxilkqbbhczfeult

java - sun.security.x509.CertAndKeyGen 和 sun.security.pkcs.PKCS10 - 在 JDK8 中缺失。实现建议

在JDK8中,类sun.security.x509.CertAndKeyGen不再存在。还缺少sun.security.pkcs.PKCS10。在JDK7中它们存在。什么可以替代这些类方法? 最佳答案 我想您正在寻找:sun.security.tools.keytool.CertAndKeyGen您会在JRE库下的rt.jar中找到它。记住这个类在J2SE之外,它可能只适用于OpenJDK,例如GNUCompiler不会有的。 关于java-sun.security.x509.CertA

java - 在 Java 中验证 PKCS#7 证书

需要一些有关Java中的加密例程的帮助。给定一个PKCS#7签名,我想根据受信任的商店验证它包含的所有证书。我假设签名中包含的所有证书都以正确的顺序排列以形成有效的证书路径(或链,无论什么),以便最上面的(#0)是签名证书;下一个(#1)是中间证书,用于签署#0;下一个(#2)是另一个中间证书,用于签署#1;等等。最后一个证书(#N)由CA签名。这就是我到目前为止设法破解的内容://Exceptionhandlingskippedforreadability//byte[]signature=...pkcs7=newPKCS7(signature);//`sun.security.pk

java - 在 Java 中将 PKCS#8 私钥转换为 PEM

大家好,我正在尝试将我在java程序中生成的PKCS#8私钥转换为PEM编码文件。Security.addProvider(newBouncyCastleProvider());SecureRandomrand=newSecureRandom();JDKKeyPairGenerator.RSAkeyPairGen=newJDKKeyPairGenerator.RSA();keyPairGen.initialize(2048,rand);KeyPairkeyPair=keyPairGen.generateKeyPair();PEMWriterprivatepemWriter=newPEM

java - 如何使用新的 Bouncy CaSTLe 库从 PKCS10CertificationRequest 获取公钥?

在新版本的BouncyCaSTLe库中,PKCS10CertificationRequest发生了变化。在以前的版本中,可以使用getPublicKey()方法从此类请求中获取PublicKey(请参阅olddoc)。现在这个方法消失了。如何从此类请求中获取PublicKey?有getSubjectPublicKeyInfo().parsePublicKey()但它返回ASN1Primitive。我从SPKACNetscapeCertRequest看到,我仍然可以通过调用getPublicKey()直接读取PublicKey。 最佳答案

java - 使用 BouncyCaSTLe PKCS7 加密和解密 - CMS in java

我想用BouncyCaSTLe对pkcs7格式进行加解密。我有一个硬件token。当我在硬盘驱动器的jks文件中使用key对时,它工作正常但是当我在token中使用key对时它不起作用。这是我的异常(exception):Exceptioninthread"main"org.bouncycastle.cms.CMSException:cannotcreatecipher:Nosuchalgorithm:2.16.840.1.101.3.4.1.2atorg.bouncycastle.cms.jcajce.EnvelopedDataHelper.createCipher(UnknownS

java - 在 64 位机器上访问硬件 PKCS11 token

这就是我想要做的。我有一个带有一些证书的硬件token,我正在编写一个Java应用程序来尝试访问这些证书。我已经将jre6中的SunPKCS11库用于Windows32位机器。这是我如何访问证书的一个小示例:StringconfigName="pkcs.cnf"StringPIN="123456";Providerp=newsun.security.pkcs11.SunPKCS11(configName);Security.addProvider(p);KeyStorekeyStore=KeyStore.getInstance("PKCS11");char[]pin=PIN.toCha

java - keystore 密码应该与 PKCS12 证书密码相同吗?

我正在尝试在java中使用keytool导入PKCS12证书。只有当keystore密码与证书密码相同时,它才能正常工作。keystore也必须使用PKCS12证书密码吗? 最佳答案 来自documentationofkeytool(仅列出与此问题相关的选项):keytool-importkeystore[-srcstorepasssrcstorepass][-deststorepassdeststorepass]{-srcaliassrcalias{-destaliasdestalias}[-srckeypasssrckeypas