java - 如何将 JKS 证书/ key 转换为 BouncyCaSTLe 证书/ key

标签 java security bouncycastle

在我的 java 应用程序中,我有一个带有自签名证书/ key 的 JKS keystore 。我需要加载它们并将它们转换为 BouncyCaSTLe 类型。

我正在使用 java.security.KeyStore 加载证书/ key ,它为我提供了 java.security.cert.Certificate 和 java.security.Key。

如何将它们转换为 BouncyCaSTLe 使用的格式(org.bouncycaSTLe.asn1.x509.Certificate 等)

如果我使用 Security.addProvider(new BouncyCaSTLeProvider());这会让 KeyStore 返回不同的类型吗???

或者 BC 是否有自己的 KeyStore API(注意: keystore 采用 JKS/SUN 格式)。

谢谢

最佳答案

我明白了,这是一些伪代码。

转换证书:

byte data[] = java.security.cert.Certificate.getEncoded();
org.bouncycastle.asn1.x509.Certificate.getInstance(data);

转换 key :

      byte data[] = java.securty.Key.getEncoded();
      if (isRSA) {
        RSAPrivateKey rsa = RSAPrivateKey.getInstance(data);
        return new RSAPrivateCrtKeyParameters(rsa.getModulus(), rsa.getPublicExponent(),
          rsa.getPrivateExponent(), rsa.getPrime1(), rsa.getPrime2(), rsa.getExponent1(),
          rsa.getExponent2(), rsa.getCoefficient());
      } else {
        return PrivateKeyFactory.createKey(data);
      }

关于java - 如何将 JKS 证书/ key 转换为 BouncyCaSTLe 证书/ key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936196/

相关文章:

java - 小程序代码问题

java - 处理正整数的异常

security - 最好的安全数据传输方法?

php - 什么时候需要在 PHP 中使用 Classes

java - 如何制作一个弹性城堡 ECPublicKey

java - 具有相同公钥的服务器和客户端 SSL 证书

java - 在 JSF Converter 类的 getAsObject() 和 getAsString() 方法中转换什么值

java - Android Studio 3.1 中构建失败,gradle 4.4 类签名者信息与同一包中其他类的签名者信息不匹配

mysql - 在 MariaDB 中禁用 LOCAL INFILE

java - BouncyCaSTLe 1.51 在 Wildfly 8.0 上加载