开发使用 MS CryptoAPI 的 64 位应用程序
我是一名 C++ 开发人员,但在 Windows 开发方面没有很强的背景。
我的主要问题围绕 加密 API。我将使用类似 CryptAcquireContext< 的函数/a>. 在研究有关此 API 的更多信息时,仅将其描述为“Win32 Crypto API”。我想知道是否有“Win64 Crypto API”?
如果没有,如果我开发一个在 Visual Studio 中使用“Win32 Crypto API”的应用程序并编译为 64 位模式。如果我用32位编译会更好吗?
我需要做什么来开发使用 Crypto API 的 64 位应用程序?
如果可能,请报告您在使用加密 API、检索证书、携带签名等开发 64 位应用程序时遇到的任何问题。
非常欢迎文章。
I am a C++ developer, but don't have a strong background in Windows development.
My main question revolves around the use of the Crypto API. I will use functions like CryptAcquireContext.
While researching more about this API, described only as "Win32 Crypto API." I wonder if there is "Win64 Crypto API"?
If not, if I develop an application that makes use of "Win32 Crypto API" in Visual Studio and compile as 64 bit mode. It would be better if I had compiled in 32 bit?
What do I have do to develop a 64 bit application that makes use of the Crypto API?
If possible, report any problems you had developing applications for 64 bit while using the crypto API, retrieve certificates, carry signatures, etc..
Articles are very welcome.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
加密 api 在 64 位下工作正常,只需使用
%ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib\x64
作为库,而不是%ProgramFiles%\Microsoft SDKs\Windows \vX.X\Lib
并且它将正常工作,32 位和 64 位库之间应该没有差异,这不是通过使用正确的数据类型进行调用(特别是指针宽度)来处理的The crypto api works fine in 64 bit, just use
%ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib\x64
as your library instead of%ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib
and it will work fine, there should be no differences between the 32 bit and the 64 bit library that is not handled by using the correct data types for the calls (specifically pointer width)术语“Win32”是为了将其与 .Net 加密 API 区分开来,而不是 64 位 API。您的研究资源可能只是尚未更新以使用“Win64”或“本机”等较新的术语。不过,MSDN 看起来并没有犯这样的错误。
在 64 位应用程序中使用它应该不会有任何问题(CAPICOM 除外,它实际上只是 32 位)。
The term "Win32" is to distinguish it from a .Net cryptography API, not a 64-bit API. Your research resources probably just haven't been updated to use newer terms like "Win64" or "native." It doesn't look like MSDN makes that mistake, though.
There should be no issues using it with a 64-bit application (except CAPICOM, which really is 32-bit only).
加密 API 驻留在 ADVAPI DLL 中。但是您链接到 CAPICOM,它已被弃用,不应使用,并且仅是 32 位。
CryptAcquireContext() 是 ADVAPI,在 64 位和 32 位 Windows 中都存在。
Crypto API resides in ADVAPI DLL. But you link to CAPICOM, which is deprecated, should not be used, and is 32 bit only.
CryptAcquireContext() is ADVAPI which exists in both 64 bit and 32 bit Windows.