2016-06-01 3 views
1

私は、サムプリントのようなデータをエクスポートする簡単なアプリケーションをプログラムしたいという問題があります(Windowsの* .cerファイルをクリックするのと同じように見えます)証明書ファイルのシリアル番号またはそれの拇印、....)。私はこの仕事をC++ \ mfcでやりたいと思っています。誰かが優しく私に助言を与えてくれれば感謝しています。* .cerファイルからデータを取り込んで取り出すクラスやライブラリがありますか?C言語の証明書ファイルからサムプリントをエクスポートするには

+1

StackOverflowはこの種の回避的な質問のために設計されていません。何かをしようとすると、特定の質問が付属しています。 – Caduchon

+0

@Cadchon実際、私は特定の良いライブラリについて知りたいです。 – reza

答えて

1

Windows専用のソリューションをお探しの場合は、Win32 APIを使用します。 CryptQueryObjectCryptMsgGetParamを見てみましょう。 windows documentationに証明書から情報を取得する方法の例は、

あり:

もちろん
WCHAR szFileName[] = L"certificate.cer"; 
DWORD dwEncoding, dwContentType, dwFormatType; 
DWORD dwSignerInfo; 
HCERTSTORE hStore = NULL; 
HCRYPTMSG hMsg = NULL; 

fResult = CryptQueryObject(CERT_QUERY_OBJECT_FILE, 
          szFileName, 
          CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED, 
          CERT_QUERY_FORMAT_FLAG_BINARY, 
          0, 
          &dwEncoding, 
          &dwContentType, 
          &dwFormatType, 
          &hStore, 
          &hMsg, 
          NULL); 


// Get signer information size. 
fResult = CryptMsgGetParam(hMsg, 
          CMSG_SIGNER_INFO_PARAM, 
          0, 
          NULL, 
          &dwSignerInfo); 

// Allocate memory for signer information. 
pSignerInfo = (PCMSG_SIGNER_INFO)LocalAlloc(LPTR, dwSignerInfo); 

// Get Signer Information. 
fResult = CryptMsgGetParam(hMsg, 
          CMSG_SIGNER_INFO_PARAM, 
          0, 
          (PVOID)pSignerInfo, 
          &dwSignerInfo); 

// use pSignerInfo->SerialNumber 

あなたがエラーを処理する必要があり、例としては、上記のリンクでは、より詳細であるが、それはスタートです。より詳細な回答が必要な場合は、後で何をするかについて具体的に説明する必要があります。

+0

実際に私はこのようなものが必要です。 – reza

関連する問題