bouncycaSTLe - 创建 BKS keystore 时出现 keytool 错误 : providerpath is not a legal command

标签 bouncycastle keystore keytool

我正在尝试使用 keytool(在 Mac OS X 上使用终端应用程序)创建一个“bks” keystore 。我正在按照以下说明进行操作:
keytool error: java.security.KeyStoreException: BKS not found

这是我的用法:

keytool -genkeypair -v -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 -keypass android -keystore /Users/djames/dropbox/bc146keystore/debug.keystore -storepass android -storetype BKS -providerclass org.bouncycastle.jce.provider.BouncyCastleProvider –providerpath /Users/djames/dropbox/bc146keystore/bcprov-jdk16-146.jar -dname "CN=Android Debug, OU=Android, O=Android, L=Whitefish, S=MT, C=US"

我收到以下错误:

keytool error: java.lang.RuntimeException: Usage error, ?providerpath is not a legal command
java.lang.RuntimeException: Usage error, ?providerpath is not a legal command
    at sun.security.tools.KeyTool.parseArgs(KeyTool.java:375)

我在无数网络帖子(包括上面的帖子)中看到了推荐的 -provider path 选项,当我运行 keytool -help 时,它确认语法是合法的:

keytool usage:  ...   
-genkeypair  [-v] [-protected]
         [-alias <alias>]
         [-keyalg <keyalg>] [-keysize <keysize>]
         [-sigalg <sigalg>] [-dname <dname>]
         [-validity <valDays>] [-keypass <keypass>]
         [-keystore <keystore>] [-storepass <storepass>]
         [-storetype <storetype>] [-providername <name>]
         [-providerclass <provider_class_name> [-providerarg <arg>]] ...
         [-providerpath <pathlist>]

我还尝试了以下替代方案(根据 http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html ):

  1. 删除 keytool 命令的 -providerpath 选项,
  2. bcprov-jdk16-146.jar 放入 {$JAVA_HOME/lib/ext} 文件夹
  3. security.provider.3=org.bouncycaSTLe.jce.provider.BouncyCaSTLeProvider 添加到 java.security 文件。

但还是失败了。

关于我可以做些什么来成功创建 BKS keystore ,有什么想法吗?

最佳答案

很多年过去了,但我也在尝试。

答案是您的参数顺序错误。 -providerpath 需要位于 -providerclass 参数之前。

我希望这对将来寻找解决方案的人有所帮助。

关于bouncycaSTLe - 创建 BKS keystore 时出现 keytool 错误 : providerpath is not a legal command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12015512/

相关文章:

java - 为什么保存并重新加载 KeyStore 后 Key.getAlgorithm 返回不同的结果

ssl - Jboss 使用自签名证书而不是导入的受信任证书

java - Keytool 错误 : Keystore was tampered with. .. 特殊字符

JAVA 在将其添加到 keystore 后要求信任 SSL 证书

java - 无法找到到所请求目标的有效证书路径 - 即使在导入证书后也会出错

java - Jasypt 使用 Bouncy CaSTLe 的 EncryptionOperationNotPossibleException

java - 对 Java Security 和 BouncyCaSTLe API 感到茫然和困惑

java - keytool 在 Ubuntu : incorrect magic 中不工作

java.lang.ClassNotFoundException : org. bouncycaSTLe.asn1.ASN1Encodable

java - 使用 KeyStore.getEntry() 时出现 UnsupportedOperationException?