Java言語で記述された暗号関連のプログラムのサンプルを紹介します.
パッケージ名は,Blanclux.tools としていますので,コンパイル時にはディレクトリ構成に注意して下さい.
証明書リストを格納するファイル(PKCS#7形式/PEM形式)を読み込み,その内容を表示するプログラム(Javaアプリケーション)です.ソースプログラムは,CertList.java です.
プログラムは,javaコマンドにより以下のよう起動します.
java Blanclux.tools.CertList fileName パラメータ: fileName: 証明書リストファイル名
証明書リスト内の各証明書に関する以下の情報が出力されます.
FIPS PUB 140-2 に規定された乱数性のチェックを行うプログラムです (参照:乱数性の評価).ソースプログラムは,RandFips.java です.
プログラムは,javaコマンドにより以下のよう起動します.
java Blanclux.tools.RandFips [randAlg] パラメータ: randAlg: 乱数生成アルゴリズム名
チェックの対象となる乱数生成アルゴリズムをパラメータ randAlg で指定します.省略した場合は,SHA1PRNG が用いられます.
プログラムでは,乱数性の検査項目に対して,結果と OK/NG が出力されます.
DH (Diffie-Hellman)法を用いた鍵交換を行う機能をテストするプログラム(Javaアプリケーション)です.ソースプログラムは,KeyAgree.java です.
プログラムは,javaコマンドにより以下のよう起動します.
java Blanclux.tools.KeyAgree
DH 法は,鍵交換を行うパーティ A とパーティ B が互いの公開鍵を交換することにより,鍵データを共有するものですが,ここでは,A と B の機能をプログラム内で行い,同一の共通鍵が生成できることを確認しています.
次の処理を行っています.
以下のパラメータが使われます.
これらを変更する場合は,ソースの対応する変数の値を変えてください.