gpt4 book ai didi

c - PEM_read_RSAPrivateKey : Getting RSA key public modulus and exponent

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

我以这种方式使用 PEM_read_RSAPrivateKey 函数:

void test(void)
{
RSA * privateKey = NULL;
FILE * fp;

if(NULL != (fp= fopen("./my_file.key", "r")) )
{
privateKey=PEM_read_RSAPrivateKey(fp,NULL,NULL,NULL);
if(privateKey==NULL)
{
printf("\n\tCould NOT read RSA private key file");
}
else
{
printf("\n\tRSA structure filled");
}

// This is working OK and privateKey is NOT NULL

}
}

然后,我尝试检索模数和公共(public)指数以将它们填充到个人结构中:

struct
{
unsigned char modulus[256];
unsigned char pub_exp[8];
} s;

但是我尝试(我尝试了很多次)对 privateKey->n 的所有访问都会导致段错误。

例如:

unsigned char modulus [2048];
unsigned char exp[2048];
BN_bn2bin(privateKey->n, modulus); // Segmentation fault results from this call

所以我的问题是:如何将模数或公共(public)指数从 RSA 结构复制到我的结构“s”字段?

有人可以帮忙吗?非常感谢,问候,

西尔文

最佳答案

how to copy modulus or public exponent from RSA structure

int req = BN_num_bytes(rsa->n);
assert(rc > 0);

unsigned char* buff = malloc(req);
assert(buff != NULL);

int rc = BN_bn2bin(rsa->n, buff);
assert(req == rc);

尝试将字节缓冲区复制到固定大小的数组时要小心。有人可能会过来让您将 4096 位模数复制到您的 2048 位数组中。

关于c - PEM_read_RSAPrivateKey : Getting RSA key public modulus and exponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22349891/

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