【问题标题】:How does one generate cryptographic signatures PKCS#7 in Java?如何在 Java 中生成加密签名 PKCS#7?
【发布时间】:2013-05-27 10:16:35
【问题描述】:

我正在尝试用 Java (JDK 1.7) 开发一个模块,以将数字签名应用于具有 PKCS #7 加密信封的数字文档。

我正在使用 java 类 KeyStore (java.security.KeyStore),我拥有一个文件 keystore.ks,并且我有凭据(密码)。

我首先尝试在里面打印证书,代码如下:

 public static void main(String[] args) throws Exception {

      String keystoreFilename = PATH_TO_KEYSTORE;
      char[] password = KEYSTORE_PASSWORD.toCharArray();

      FileInputStream fIn = new FileInputStream(keystoreFilename);

      KeyStore keystore = KeyStore.getInstance(KEYSTORETYPE);


      Provider temp = keystore.getProvider();

      System.out.println(temp.getName());

      KeyStore keystore = KeyStore.getInstance(KEYSTORETYPE);
      FileInputStream input = new FileInputStream(PATH_TO_KEYSTORE);
      try {
           keystore.load(input, KEYSTORE_PASSWORD.toCharArray());
      } catch (IOException e) {
           System.out.println("ERROR:"+e.getMessage());
      } finally {
           if (input != null) {
                input.close();
           }
       }

      Certificate cert = keystore.getCertificate(KEY_ALIAS_IN_KEYSTORE);

      System.out.println(cert);
 }

此代码返回以下内容:

error: "Invalid keystore format" (KEYSTORETYPE = "JKS")

当我尝试承担其中包含的证书的负载时。

谁能告诉我怎么了?

【问题讨论】:

    标签: java security cryptography keystore


    【解决方案1】:

    您的 KEYSTORETYPE 似乎与用于创建文件 keystore.ks 的类型不匹配

    标准中提供了几种不同的类型,以及其他提供商提供的其他类型。

    标准是“jks”,也很常见的是“pkcs12”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      • 2018-05-03
      • 1970-01-01
      相关资源
      最近更新 更多