2011-01-25 19 views
21

Estoy haciendo esta pregunta porque he pasado la mayor parte del día navegando por los documentos msdn y otras fuentes opacas para obtener instrucciones sencillas y sencillas sobre cómo comenzar con Windows C/C++ Crypto API.Ventana C/C++ Crypto API Ejemplos y consejos

Lo que me gustaría ver es un código de ejemplo, rutas de inclusión típicas, directrices de vinculación, etc., algo realmente útil. Sé que esta es una pregunta imprecisa, pero creo que las respuestas imprecisas son mejores que ninguna.

Voy a rodar la pelota con mis propios escasos resultados ...

+2

¿Te refieres a CryptoAPI clásico como en Win2k y XP, o CNG ("CryptoAPI Next Generation") como en Vista y Win7? Los dos no son lo mismo. – dajames

+1

Hmm, supongo que me refiero a CryptoAPI pero estoy compilando en un sistema Windows 7. –

Respuesta

21
+0

Puede fusionar sus dos respuestas. –

+0

¿Cómo se pueden combinar las respuestas? –

11

La documentación de MSDN son aquí: http://msdn.microsoft.com/en-us/library/aa380252.aspx

Este es el principal archivo de inclusión: #include <wincrypt.h>

Los bits son criptografía incluido como parte de Windows SDK, que normalmente se instala en %PROGRAMFILES(x86)%\Microsoft SDKs\Windows\SDKVERSION (por ejemplo, C:\Program Files\Microsoft SDKs\Windows\v6.0A). Los encabezados generalmente están en %WINDOWSSDK%\Include, y las bibliotecas relacionadas están en %WINDOWSSDK%\Lib.

Debe enlazar a las bibliotecas de criptografía explícitamente. Suponiendo que esté en Visual Studio, puede agregar la referencia haciendo clic con el botón derecho en el proyecto de C++, seleccionando propiedades y seleccionando Propiedades de configuración -> Enlazador en la vista de árbol a la izquierda. A continuación, puede especificar crypt32.lib en el campo de entrada a la derecha.

Alternativamente, (suponiendo que está utilizando msvC++) añadir

#pragma comment(lib, "crypt32.lib") 

a su fuente.

+1

Revisé y amplié significativamente esta respuesta. Verifique para asegurarse de que piensa que los cambios son útiles :) –

+0

¡Ah !, gracias, nunca hubiera pensado en usar la directiva #pragma. –