MSCryptoAPIを使用する64ビットアプリケーションの開発
-
29-10-2019 - |
質問
私はC ++開発者ですが、Windows開発の経験が豊富ではありません。
私の主な質問は、 Crypto API 。 CryptAcquireContext <のような関数を使用します/ a>。 このAPIについてさらに調査している間、「Win32CryptoAPI」としてのみ説明されています。 「Win64CryptoAPI」があるのだろうか?
そうでない場合は、VisualStudioで「Win32CryptoAPI」を使用するアプリケーションを開発し、64ビットモードでコンパイルするとします。 32ビットでコンパイルしたほうがいいですか?
Crypto APIを利用する64ビットアプリケーションを開発するにはどうすればよいですか?
可能であれば、暗号化APIの使用中に64ビット用のアプリケーションを開発した際の問題を報告し、証明書を取得し、署名を保持します。
解決
暗号化APIは64ビットで正常に動作します。%ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib\x64
の代わりに%ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib
をライブラリとして使用するだけで正常に動作します。正しいデータを使用して処理されない、32ビットと64ビットのライブラリに違いはありません。呼び出しのタイプ(具体的にはポインター幅)
他のヒント
「Win32」という用語は、64ビットAPIではなく.Net暗号化APIと区別するためのものです。あなたの研究リソースは、おそらく「Win64」や「ネイティブ」などの新しい用語を使用するように更新されていません。ただし、MSDNがその間違いを犯しているようには見えません。
64ビットアプリケーションでの使用に問題はないはずです(実際には32ビットのみであるCAPICOMを除く)。
CryptoAPIはADVAPIDLLにあります。ただし、非推奨であり、使用すべきではなく、32ビットのみであるCAPICOMにリンクします。
CryptAcquireContext()は、64ビットと32ビットの両方のWindowsに存在するADVAPIです。