Desarrollo de aplicaciones de 64 bits que utilizan MS CryptoAPI
-
29-10-2019 - |
Pregunta
Soy un desarrollador de C ++, pero no tengo una sólida experiencia en el desarrollo de Windows.
Mi pregunta principal gira en torno al uso de API de cifrado . Usaré funciones como CryptAcquireContext . Mientras investiga más sobre esta API, se describe solo como "API de cifrado de Win32". Me pregunto si existe una "API de cifrado de Win64".
Si no es así, si desarrollo una aplicación que hace uso de "Win32 Crypto API" en Visual Studio y la compilo en modo de 64 bits. ¿Sería mejor si lo hubiera compilado en 32 bits?
¿Qué tengo que hacer para desarrollar una aplicación de 64 bits que utilice la API de cifrado?
Si es posible, informe cualquier problema que haya tenido al desarrollar aplicaciones de 64 bits mientras usaba la API de cifrado, recuperar certificados, llevar firmas, etc.
Los artículos son bienvenidos.
Solución
La API de cifrado funciona bien en 64 bits, solo use %ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib\x64
como su biblioteca en lugar de %ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib
y funcionará bien, no debería haber diferencias entre la biblioteca de 32 bits y la de 64 bits que no se maneja usando los datos correctostipos para las llamadas (específicamente el ancho del puntero)
Otros consejos
El término "Win32" es para distinguirlo de una API de criptografía .Net, no de una API de 64 bits.Es probable que sus recursos de investigación no se hayan actualizado para utilizar términos más nuevos como "Win64" o "nativo".Sin embargo, no parece que MSDN haya cometido ese error.
No debería haber problemas al usarlo con una aplicación de 64 bits (excepto CAPICOM, que en realidad es solo de 32 bits).
Crypto API reside en ADVAPI DLL.Pero enlaza a CAPICOM, que está obsoleto, no debe usarse y es solo de 32 bits.
CryptAcquireContext () es ADVAPI que existe en Windows de 64 y 32 bits.