6.CSP(Cryptographic Service Provider)のカスタマイズ

 CSP(Cryptographic Service Provider)は、すでにインストールされているもの以外に、独自のCSPを作成しインストールすることができます。
 まずは、CSPを開発するための環境を整備し、SDKとサンプルのCSPをインストールします。

6.1 サンプルのインストール

6.1.1 SDK(開発キット)の入手

 CSPの開発キットは、Microsoft社の開発者向けダウンロードサイトで入手できます。キーワードを“CSPDK”として検索し、開発キット cspdk.exe を入手してください。
 開発キット cspdk.exe は以下のようなディレクトリ構成になっています。入手した開発キットは、適当なフォルダーに展開してください。
    ファイル
  • readme.txt
  • cspSign.exe
  • CSPの署名生成ツール(テスト用)
  • csp.dll
  • サンプルのCSP
  • csp.sig
  • サンプルのCSPの署名ファイル
  • testcsp.exe
  • サンプルのCSPを使うテストプログラム
  • cspinstl.exe
  • サンプルのCSPをインストールするプログラム
    ディレクトリ
  • \csp
  • サンプルの CSP のソースコード
  • \testcsp
  • テストプログラム testcsp.exe のソースコード
  • \cspinstall
  • インストールプログラム cspinstl.exe のソースコード
  • \sdkinc
  • C言語のヘッダファイル
  • \doc
  • Wiondows2000 ログインに関するドキュメント
  • OSごとのディレクトリ
  • advapi32.dl_(圧縮された advapi32.dll)

6.1.2 CSPの開発環境について

 CSPは、Microsoft社による署名がなければ利用することができません。そのために、開発用にCSPに署名するツールと、署名されたCSPを利用できるようにするために置換するDLL(advapi32.dll)が用意されています。置換するDLLはOSごとに以下のように用意されています。
  • Windows2000
  • WindowsNT4.0
  • WindoesMe
  • Windows98
  • WindowsCE
ここでは、Windwes2000でのインストール方法を説明します。なお、Windows2000用のDLLは、英語版でなければ機能しないようですので注意してください。(それ以外のOSの場合は日本語環境でも機能するものもあるようですが当方では確認していません。)

6.1.3 開発環境の準備

 CSP(Cryptographic Service Provider)は、Microsoft社の署名が必要です。この署名がなければWindowsで利用することができません。そのために、開発用に仮の署名を行うことで、その署名を信頼してWindowsで利用できるよう開発用の環境を変更します。
 仮の署名を信頼するには、advapi32.dllをCSPDKに含まれているDLLに変更します。このことで、"cpaSign.exe"で署名したCSPを機能させることができます。テスト終了後には、DLLをMicrosoft社に送付して祖姪してもらいます。署名されたDLLは、適当なWindowsOSで信頼され機能します。
 まずは、開発用にサンプル CSP が機能する環境を以下の手順で準備します。

1.圧縮された advapi32.dl_ を展開
> expand advapi32.dl_ advapi32.dll
2.%systemroot%\system32 の advapi32.dll をバックアップ  例)名前を変更します
> rename advapi32.dll advapi32.bak
3.展開した advapi32.dll を %systemroot%\system32 にコピー
 Windows2000では、Windowsの起動中にadvapi32.dllを置換できませんのでご注意ください。

4.Windowsを再起動

(記載の会社名および製品名は、各社の登録商標および商標です。)