OpenSSL から DSA を使用して署名しようとしています。公開鍵と秘密鍵を含むファイルがあります。
まず、ユニキャスト接続を行い、すべて問題ありません。その後、マルチキャスト 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;
}