1

keytoolを使用して(Mac OS Xのターミナルアプリを使用して)「bks」キーストアを作成しようとしています。次の指示に従っています:
keytool エラー: java.security.KeyStoreException: BKS が見つかりません

これは私の使用法です:

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 無数の Web 投稿 (上記のものを含む) で推奨されているオプションを見てきました。実行する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. コマンドの-providerpathオプションを削除し、keytool
  2. フォルダbcprov-jdk16-146.jar内に配置する{$JAVA_HOME/lib/ext}
  3. security.provider.3=org.bouncycastle.jce.provider.BouncyCastleProviderjava.security ファイルに追加します。

しかし、それでも失敗しました。

BKS キーストアの作成を成功させるために別の方法でできることについて何かアイデアはありますか?

4

4 に答える 4

4

それから何年も経ちますが、私もこれを試みています。

答えは、パラメーターの順序が間違っていることです。-providerpath は、-providerclass パラメーターのに指定する必要があります。

将来誰かが解決策を探すのに役立つことを願っています。

于 2015-06-25T10:25:15.467 に答える
2

Keytool で成功することはありませんでした。これは、代わりに問題を解決するために行ったことです。Android プログラムが Eclipse で初めて実行されるときに、Eclipse (Indigo、SR2) によって自動的に作成されたデフォルトの debug.keytool (JKS タイプのキーストア) のコピーを作成しました。 Portecle (http://portecle.sourceforge.net/) を使用して、これを BKS タイプのキーストアに変換しました。ここがトリッキーな部分です。オリジナルの代わりに BKS バージョンの debug.keytool を使用すると、Eclipse で「java.io.IOException: Invalid keystore format」という「Android のパッケージ化エラー」が表示されます。アンドロイド プログラムを実行します。ただし、Eclipse が作成したデフォルトのディレクトリに元の JKS バージョンの debug.keytool を残しておけば、Android プログラムで debug.keytool の BKS バージョンを使用できます。s /resources/raw サブフォルダーを作成し、Android にそれを開いて認識させます。ジム

于 2012-08-27T02:15:45.787 に答える