小编cal*_*res的帖子

DSA使用OpenSSL签名

我正在尝试使用OpenSSL中的DSA进行签名.我有包含公钥和私钥的文件.

首先,我建立一个单播连接,一切都很好.之后,我需要一个多播UDP连接,我想签署数据包.我正在尝试使用函数PEM_read_DSA_PUBKEY()来从我的证书加载我的公钥,但它不起作用.它总是返回NULL而不是DSA结构.

这里有一个简单的代码版本.我像这样编译:

gcc -Wall -g -lm prueba.c -o prueba -lcrypto
Run Code Online (Sandbox Code Playgroud)

任何的想法?谢谢!

#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;
}
Run Code Online (Sandbox Code Playgroud)

c load openssl key dsa

7
推荐指数
1
解决办法
2026
查看次数

标签 统计

c ×1

dsa ×1

key ×1

load ×1

openssl ×1