我正在尝试使用 keytool(在 Mac OS X 上使用终端应用程序)创建一个“bks”密钥库。我按照以下说明进行操作:
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):
- 删除命令的
-providerpath
选项,keytool
- 把
bcprov-jdk16-146.jar
里面的{$JAVA_HOME/lib/ext}
文件夹 - 添加
security.provider.3=org.bouncycastle.jce.provider.BouncyCastleProvider
到 java.security 文件。
但它仍然失败了。
关于我可以做些什么来成功创建 BKS 密钥库的任何想法?