デジタル署名を扱う関数のテスト方法

デジタル署名を扱う関数

CryptGenerateSignature関数:デジタル署名を生成する
CryptVerifySignature関数:デジタル署名を検証する
 普段は使うことはない関数。webAPIでデジタル署名を要求するものがあるらしいので、そういったときに利用する関数と思われる。
 CryptGenerateSignatureには引数としてRSAプライベートキー、CryptVerifySignatureにはRSAパブリックキーが必要。「公開鍵暗号方式」において、それぞれ「秘密鍵」「公開鍵」に対応する。公開鍵暗号方式については割愛。形式に従ったキーが必要なので、試しに使ってみるのにもひと手間が必要。

テストに使用するキーの生成方法(windows)

 キーを生成するには、「ssh-keygen」コマンドが便利。Windows10ならおそらくデフォルトで利用できる。
 コマンドプロンプトで「ssh-keygen」を入力し、出てくるメッセージにもすべてEnterを押す。すると、現在のユーザーのフォルダ(C:\Users\[ユーザー名])に「.ssh」フォルダが作成される。その中の「id_rsa」がプライベートキー、「id_rsa.pub」がパブリックキーになる。プライベートキーは、そのままCryptGenerateSignature関数の入力に使うことができる。ただし、パブリックキーは形式が違うので、FileMakerが使えるように変換する必要がある。そのままプロンプトでsshフォルダに移動(cd .ssh)し、「ssh-keygen -f id_rsa.pub -e -m pem > id_rsa.pem」と入力すると、指定の形式のパブリックキーファイル「 id_rsa.pem」が作成される。これはCryptVerifySignature関数の入力に使える。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です