gpt4 book ai didi

c - 以 DER 格式编写私钥/公钥

转载 作者:太空宇宙 更新时间:2023-11-04 01:48:35 25 4
gpt4 key购买 nike

<分区>

我需要编写一个 C 程序来生成 RSA key ,并以 DER 格式保存 X.509 公钥和 DER 格式的 PKCS#8 私钥。我用过谷歌,但并没有真正找到太多。我到目前为止是这样的:

#include <stdio.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>

void main() {
int ret = 0;
RSA *r = NULL;
BIGNUM *bne = NULL;
BIO *bp_public = NULL, *bp_private = NULL;
int bits = 2048;
unsigned long e = RSA_F4;

// Generate the RSA key
printf("Generating RSA key...\n");
bne = BN_new();
ret = BN_set_word(bne, e);
if(ret != 1) {
goto free_all;
}
r = RSA_new();
ret = RSA_generate_key_ex(r, bits, bne, NULL);
if(ret != 1) {
goto free_all;
}

// Save the public key in PEM format
printf("Writing key files...\n");
bp_public = BIO_new_file("public.pem", "w+");
ret = PEM_write_bio_RSAPublicKey(bp_public, r);
if(ret != 1) {
goto free_all;
}

// Save the private key in PEM format
bp_private = BIO_new_file("private.pem", "w+");
ret = PEM_write_bio_RSAPrivateKey(bp_private, r, NULL, NULL, 0, NULL, NULL);

// Free everything
free_all:
BIO_free_all(bp_public);
BIO_free_all(bp_private);
RSA_free(r);
BN_free(bne);
printf("Done!\n");
}

这显然是以 PEM 格式编写 key 。我还需要能够在代码中将数据实际存储在内存中,而不仅仅是将其直接写入文件,因为我需要用公钥做一些其他事情。

谢谢你的帮助

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com