5

C++ でWinCrypt APIを使用しようとしています。

私のアプリケーションは、ファイルを暗号化、解読、署名、および検証する必要があります。正しいキーを取得すれば、その方法を知っています。しかし、私の問題は、実際には、それらのキーを生成するのと同じアプリケーションではないということです。

私が持っているのは、PEM形式のファイルの公開鍵と秘密鍵です:

-----BEGIN RSA PRIVATE KEY-----
[Base64 encoded]
-----END RSA PRIVATE KEY-----

と :

-----BEGIN RSA PUBLIC KEY-----
[Base64 encoded]
-----END RSA PUBLIC KEY-----

いくつかの調査の後、次の方法を使用して、公開鍵をインポートする方法を見つけました: hereおよびhere :

  • ファイルの内容を読み取るためのCreateFileReadFile
  • CryptStringToBinaryCRYPT_STRING_BASE64HEADERを使用して PEM 形式から DER 形式に変換します (ヘッダーとフッターを削除し、base64 からデコードします)
  • X509_PUBLIC_KEY_INFOを使用したCryptDecodeObjectEx
  • CryptImportPublicKeyInfo、キーをインポートします

しかし今、私の問題は、秘密鍵で同じことをすることです。どんな助けでも本当に感謝します:)ありがとう。

4

2 に答える 2

10

CryptDecodeObjectExをPKCS_RSA_PRIVATE_KEYと共に使用してからCryptImportKeyを呼び出すことにより、PEM 秘密鍵を CAPI にインポートできます。

CAPI を使用してデータに署名するために、PEM でエンコードされた RSA 秘密鍵を使用する方法を示すサンプルを作成しました。ここにリンクがあります: http://www.idrix.fr/Root/Samples/capi_pem.cpp

これが役立つことを願っています。

于 2012-05-31T03:56:14.043 に答える