【WBF】アダプタープラグインの開発準備

# アダプタープラグインとは？
Windows Biometric Framework(以下WBF)では、下記の3種類の"アダプタープラグイン"と呼ばれるDLLを用いて生体認証を行います。

- センサーアダプター(主に生体認証デバイスの制御)
- エンジンアダプター(主にセンサーがキャプチャしたデータを用いた生体認証処理)
- ストレージアダプター(主に生体データの管理)

生体認証デバイスのドライバーをインストールすると、必ず上記の3つのアダプタープラグインもインストールされますが、プライベートプールを設定する事により、独自のアダプタープラグインに差し替えて使用する事も可能です。

これらのアダプタープラグインはデジタル署名されている必要があるのですが、勉強のために正式な証明書を購入するのは無理・・・というわけで、テスト証明書を利用してアダプタープラグインを作成してみたいと思います。

以降はVisual Studio 2022がインストールされている事を前提に話を進めます。

# テスト証明書の準備
(1) [Developer Command Prompt for VS2022]を管理者権限で起動します。

(2) 作業フォルダ(ファイルが出力されても問題ないフォルダ)に移動し、下記のコマンドを実行します。
`makecert –r -pe -ss PrivateCertStore -n CN=Contoso.com(Test) ContosoTest.cer`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/e68b79c2-488d-39c2-f98a-9b595d0e15a4.png)

(3) [certmgr.msc]を起動し、[PrivateCertStore]に作成した証明書が追加されている事を確認します。
![証明書.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/f8c209a9-b35e-3759-9075-6d1cd90e5cf7.png)

(4) 下記のコマンドを実行します。
`certmgr /add ContosoTest.cer /s /r localMachine root`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/a73c961d-e95e-d3d3-2e99-e38ee1c1340a.png)

(5) [certmgr.msc]で、[信頼されたルート証明機関]に作成した証明書が追加されている事を確認します。
![信頼されたルート証明機関.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/07451645-b944-f918-9a87-b5b322fe5c21.png)

(6) 下記のコマンドを実行します。
`certmgr /add ContosoTest.cer /s /r localMachine trustedpublisher`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/e2aabe09-cf84-8ed5-3b92-d3cdf98130be.png)

(7) [certmgr.msc]で、[信頼された発行元]に作成した証明書が追加されている事を確認します。
![信頼された発行元.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/1b68d6d1-b067-1a58-27e0-05481a8caa00.png)

# 実行環境の準備
開発環境と実行環境が異なる場合は、実行環境へもテスト証明書のインストールが必要です。

(1) 実行環境の作業フォルダに、開発環境で作成したContosoTest.cerを置きます。

(2) ContosoTest.cerを右クリックし、[証明書のインストール]を選択します。

(3) [証明書のインポートウィザード]が起動するので、保存場所で[ローカルコンピューター]を選択して、[次へ]を押します。
![証明書のインポートウィザード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/7056be23-6470-b34b-7b7c-d7816c18cbd0.png)

(4) [証明書をすべて次のストアに配置する]で[信頼されたルート証明機関]を選び、[次へ]を押します。
![証明書のインポートウィザード_証明書ストアの選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/8402881a-9300-0127-7cc7-5c92d636f727.png)

(5) [完了]を押します。
![証明書のインポートウィザード_完了.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/b7d82571-6156-4a6d-997f-e1633d64d8ac.png)

(6) インポート完了のメッセージが出るので、[OK]を押します。
![証明書のインポートウィザード_インポート完了.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/abf2922c-1d02-1b4c-e5f8-5a1fff77f953.png)

(7) 同様にして、[信頼された発行元]にもインストールします。
![証明書のインポートウィザード_信頼された発行元.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/d1edd3c3-3cca-d8f1-1442-94b0fa49ac7a.png)

(8) [certmgr.msc]で、[信頼されたルート証明機関]、[信頼された発行元]に作成した証明書が追加されている事を確認します。

# Windowsをテストモードに変更
テスト証明書でデジタル署名を施したアダプタープラグインを読み込むには、Windowsがテストモードになっている必要があります。
実行環境において、管理者権限で起動したコマンドプロンプトから下記コマンドを実行します。
`bcdedit \set testsigning on`
![bcdedit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/694a363e-8bb2-174b-b1f1-3f9a4c7a1ce4.png)

PCを再起動し、画面右下に「テストモード」の表示があればOKです。
![テストモード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608900/238389c1-e751-b98f-4cfd-fe2c127df0f3.png)

これで、テスト証明書を使用してアダプタープラグインを開発・実行できるようになりました。
続いてアダプタープラグインを作成します。
Next -> https://qiita.com/Leeya/items/6d11668aae231a180564