bouncycastleライブラリのインストール

Javaでbouncycastleライブラリを利用する機会があったのでそのメモ書き。

ソフトウェアの入手

以下のHPからcrypto-xxx.tar.gzをダウンロード
bouncycastle.org

インストール

crypto145/jars 以下にあるjdk1.6用のjarファイルをすべてJREJDKの $JAVA_HOME/jre/lib/ext/ の下にコピーする。
次に、$JAVA_HOME/jre/lib/security/java.security に下記の内容を追加する。

security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider                            

テスト

以下の内容で BcTest.java というファイルを作成する。

import java.security.Provider;
import java.security.Security;
public class BcTest {
  public static void main( String[] args ) throws Exception {
    Provider provider = Security.getProvider ( "BC" );
    System.out.println ( provider.getInfo() );
  }
}

正しく設定ができていれば、このプログラムをコンパイルして実行すると、

BouncyCastle Security Provider v1.45

というメッセージが出力されるはず。

うまくいかない場合

Exception in thread "main" java.lang.NullPointerException
	at BcTest.main(BcTest.java:6)

設定に間違いがない(と思われる)のに上記のようなエラーが出力された場合、
プログラムの実行時に利用した java コマンドとbouncycastleライブラリのインストール先の対応が取れていない可能性がある。

その場合、

$ $JAVA_HOME/jre/bin/java BcTest

として実行してみる。これで実行できたなら普段利用している java コマンドとbouncycastleのインストール先の対応が取れていないので、修正する必要がある。