我正在尝试使用OpenSSL中的DSA进行签名。我有包含公钥和私钥的文件。
首先,我建立了一个单播连接,一切都很好。之后,我需要一个多播UDP连接,并想要对数据包进行签名。我尝试使用函数
下面是代码的简化版本。我像这样编译:
有什么想法吗?谢谢!
首先,我建立了一个单播连接,一切都很好。之后,我需要一个多播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;
}