Я пытаюсь подписать, используя DSA из OpenSSL.У меня есть файлы, содержащие открытый и закрытый ключи.
Прежде всего, я устанавливаю одноадресное соединение, и все в порядке.После этого мне нужно многоадресное UDP-соединение, и я хочу подписать пакеты.Я пытаюсь использовать функцию PEM_read_DSA_PUBKEY()
для загрузки моего открытого ключа из моего сертификата, но он не работает.Он возвращает всегда NULL
вместо структуры DSA.
Здесь у вас есть упрощенная версия кода.Я собираю так:
gcc -Wall -g -lm prueba.c -o prueba -lcrypto
Есть идеи?Спасибо!
#include <stdio.h>
#include <openssl/dsa.h>
#include <openssl/pem.h>
int main()
{
FILE *DSA_cert_file = fopen("./certs/cert.pem", "r");
if (DSA_cert_file == NULL)
return 1;
printf("Certificate read\n");
DSA *dsa = DSA_new();
if((dsa = PEM_read_DSA_PUBKEY(DSA_cert_file, 0, 0, 0)) == NULL)
return 1;
printf("DSA public key read\n");
return 0;
}