Ventana C/C++ Crypto API Ejemplos y consejos
windows cryptoapi (3)
Aquí hay un montón de ejemplos que he encontrado ...
- Ejemplo de programa C: listado de los certificados en una tienda
- Ejemplo de programa C: usando CryptAcquireContext
- Ejemplo de programa C: enumeración de proveedores de CSP y tipos de proveedores
- Ejemplo de código C para abrir tiendas de certificados
- Ejemplo de programa C: envío y recepción de un mensaje firmado y cifrado
- Ejemplo del programa C: firmar un hash y verificar la firma del hash
MSDN tiene estos ejemplos dispersos alrededor de los docs
Este website proporciona una buena visión general de los conceptos, junto con ejemplos multiplataforma
Estoy haciendo esta pregunta porque pasé la mejor parte del día recorriendo los documentos msdn y otras fuentes opacas en busca de directrices sencillas y sencillas sobre cómo comenzar con la API de cifrado C / C ++ de Windows.
Lo que me gustaría ver es un código de ejemplo, rutas típicas de inclusión, pautas de enlace, etc., algo realmente útil. Sé que esta es una pregunta imprecisa pero creo que las respuestas imprecisas son mejor ninguna.
Voy a hacer rodar la pelota con mis propios escasos resultados ...
Los documentos msdn están aquí: docs
Este es el archivo de inclusión principal: #include <wincrypt.h>
Los bits de criptografía se incluyen como parte del SDK de Windows , que normalmente se instala en %PROGRAMFILES(x86)%/Microsoft SDKs/Windows/SDKVERSION
(por ejemplo, C:/Program Files/Microsoft SDKs/Windows/v6.0A
). Las cabeceras suelen estar 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 las propiedades y seleccionando Propiedades de configuración -> Enlace 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és usando msvc ++) agrega
#pragma comment(lib, "crypt32.lib")
a su fuente
También hay un largo ejemplo de " Cifrado utilizando la API de cifrado de Win32 " en el Proyecto de código.