2013年6月26日水曜日

Android用にBouncy CastleのjarをPCにインストールする

Androidアプリ向けの証明書をアレするのにBouncy Castleのjarが必要なわけですが、、、
最新版はここからダウンロードできます。

しかし、現状最新版であるRelease 1.49のbcprov-jdk15on-149.jarを使ってBouncy Castle形式のキーストア(.bks)を作ってみてアプリで使おうとしたところ、、、

wrong version of keystore
というエラーがでます。

どうやら、1.49ではなくて1.46を使うと良いようです。
Release 1.46のリンクは見当たりありませんでしたが、一応、ここからダウンロードできます。


さて、bcprov-jdk15on-146.jarのインストール方法です。
こちらの記事で紹介した方法でJDK6がインストールされているUbuntuを対象としますが、他でも大体同じでしょう。
$ cd /usr/lib/jvm/java-6-oracle/
(JDKのインストールディレクトリで作業を行います。)
$ sudo cp ~/Download/bcprov-jdk15on-146.jar jre/lib/ext/
(ダウンロードしておいたBouncy Castleのjarをjre/lib/ext/ディレクトリにコピーします。)
$ sudo vi jre/lib/security/java.security
(下の方にスクロールしていって、下記のような記述の箇所の一番下に追加します)
#
# List of providers and their preference orders (see above):
#
security.provider.1=sun.security.provider.Sun
~(略)~
security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
(↑の一行を追加して保存。数字の箇所は適当に。。。)


これで、keytoolにて、
-provider org.bouncycastle.jce.provider.BouncyCastleProvider -storetype BKS
といったオプションを付けて使えるようになるはずです。
(たぶんあってるはず。実践方法はまた別途ということで...)