Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/05/2011, 03:42
calamares
 
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 0
Pregunta Cargar clave pública a struct DSA

Hola!
Tengo un problema intentando firmar con DSA. He generado las claves pública y privada. Primero tengo una conexión unicast para la que utilizo las funciones preparadas de OpenSSL de más alto nivel y todo va bien.
Quiero utilizarlo también para firmar paquetes que van a ir por una conexión multicast sobre UDP. Así pues creo que la función que debería usar es PEM_read_DSA_PUBKEY() y la correspondiente para leer la clave privada, pero siempre devuelve NULL en vez de cargar la clave en el struct DSA.
Aquí va el código de una prueba simplificada. Compilo así:
gcc -Wall -g -lm prueba.c -o prueba -lcrypto

¿Alguna idea? Gracias!


#include <stdio.h>
#include <openssl/dsa.h>
#include <openssl/pem.h>
int main() {

printf("Opening public key file (certificate)...");
FILE *DSA_cert_file = fopen("./certs/cert.pem", "r");
if (DSA_cert_file == NULL)
diep("fopen");
printf("Done\n");

DSA *dsa = DSA_new();
printf("DSA created\n");
if((dsa = PEM_read_DSA_PUBKEY(DSA_cert_file, 0, 0, 0)) == NULL)
printf("DSA certificate NULL\n");;
else
printf("DSA certificate read\n");;


return 1;
} //end main