5

C++ アプリケーションを開発しており、証明書の拇印を確認する必要があります。

このソリューションは、CryptQueryObject() を使用して特定の署名をチェックすることがわかりました。しかし、拇印を取得する方法がまだ見つかりません。

C# では、メソッドGetCertHashStringを使用してハッシュを取得するか (これが必要です)、プロパティX509Certificate.Thumbprintを使用できます。

公開鍵のハッシュ値を取得する必要があることはわかっていますが、公開鍵を取得する方法がわかりません..

C++でそれを行うにはどうすればよいですか? そのための方法はありますか?

4

1 に答える 1

12

それを行う方法を見つけました。

CryptHashCertificateを使用する必要があります

そのように:

DWORD* thumbPrintSize;
BYTE* thumbPrint;   
if (!CryptHashCertificate(0, hashAlg, 0,pCertContext->pbCertEncoded,
     pCertContext->cbCertEncoded, thumbPrint, thumbPrintSize)) {
        return false;
}

ここで、pCertContextは証明書であり、hashAlgはハッシュアルゴリズム(通常はsha-1)です。

于 2012-10-29T19:46:20.197 に答える