2017-02-27 3 views
0

私はサードパーティの暗号化サービスプロバイダ(CSP)DLLを開発しており、Microsoft Windowsと同じものを統合したいと考えています。この開発の主な目的は、WordやExcelなどのOfficeツールからデジタル署名や署名検証などの暗号機能を呼び出すことです。ここでは次の問題に直面しています。デジタル署名用にMicrosoft Wordからサードパーティの暗号化サービスプロバイダを呼び出す

1)私はCSP DLLを開発し、署名してレジストリエントリに登録しました。これは、cpacquirecontextと他のcrypto APIをロードすることで、テストアプリケーションとしてテストしたときに正常に動作しています。ここでは、テストアプリケーションでCSP名 "XYZ"を指定してテストアプリケーションがdllを正しく識別し、

2)これ以降は、MicrosoftのCSP dll APIをデジタル署名操作のために呼び出す必要があります。このためには、デフォルトのMicrosoft cspをバイパスし、デジタル署名用のcsp dllを呼び出すために、どの設定/構成を実行する必要がありますか。この問題を解決するために親切に私を助けてください。

答えて

1

Officeとデジタル署名操作のために、他のアプリケーションによって使用可能な、あなたのCSPに保管されている証明書を作成するためには、CertAddEncodedCertificateToStoreを使用してWindows "MY" certificate storeでこれらの証明書を登録し、その後にCertSetCertificateContextPropertyを使用して結果CERT_CONTEXTのCERT_KEY_PROV_INFO_PROP_IDプロパティを更新する必要があります。 CSP名と証明書のキーが存在するコンテナを示すために使用します。

このメソッドを使用して、特定のCSPに格納されているすべての証明書を "MY"証明書ストアにロードする小さなコマンドラインプログラムを作成しました。また、「MY」証明書ストアから証明書を削除することもできます。これは、証明書がもはや必要/不要になったときに役立ちます。 ソースコードはhttps://www.idrix.fr/Root/Samples/LoadCertToStore.cppから取得できます。

こちらがお役に立てば幸いです。

+0

ありがとうございます。私はサンプルを試し、あなたに戻ってきます。 – Thirumal

0

私はあなたと同じ状況にあります。
テストアプリケーションとMS Office 2007のと私のCSPの作業罰金が、それはMS Office 2010のでは動作していないと2013
これはMS Officeのの問題です:

のOffice 2010は、Windows 7で特定の証明書をサポートしていません。またはWindows Vista環境にインストールします。具体的には、これらのサポートされていない証明書は、サードパーティの暗号化サービスプロバイダ(CSP)によって格納される秘密キーを使用します。したがって、Office 2010ドキュメントは、Cryptographic API(CAPI)を使用して署名することはできません。

Office 2010の修正プログラムパッケージ(Mso-x-none)hereをダウンロードできます。

MS Office 2013の場合、サービスパック1が必要です。

+0

Hii Thinh 彼を助けることができますか: https://stackoverflow.com/questions/48090891/implementing-custom-cryptographic-service-provider-csp-entry-point-in-dll-file –

関連する問題