gpt4 book ai didi

c - 如何读取/写入 RSA 结构中的公钥

转载 作者:行者123 更新时间:2023-11-30 17:46:45 25 4
gpt4 key购买 nike

使用 C,我可以使用 PEM_write_RSAPublicKey() 生成 RSA 公钥并将其写入 PEM 文件,

但我想将多个公钥写入单个文件(例如known_hosts 或authorized_hosts),而不是为每个文件创建一个单独的PEM 文件

我知道如何编码/解码base64

但是如何从 RSA 结构中获取公钥(我可以对它进行 Base64 编码),然后从文件中读取相同的 key 并将其放回 RSA 结构中进行加密/解密

最佳答案

如果使用“a+”打开,PEM_write_RSAPublicKey() 将附加到文件,但没有指示哪些 key 适用于哪个客户端。我不需要 PEM 格式,只想将每个公钥写入文件中的一行。

我发现公钥是 DER 格式,我可以使用以下方法从 RSA 结构中获取该公钥:

len = i2d_RSAPublicKey(rsap, 0);
buf1 = buf2 = (unsigned char *)malloc(len + 1);
rc = i2d_RSAPublicKey(rsap, (unsigned char **)&buf2);

然后我对 buf1 进行 Base64 编码并将其写入我的文件。从文件中读取它后,将其放回到 RSA 结构中正好相反:

rsap = d2i_RSAPublicKey(NULL, (const unsigned char **)&buf1, (long)len);

关于c - 如何读取/写入 RSA 结构中的公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19165774/

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