RSAPrivateKey openssl C ++ ios

时间:2013-07-08 13:10:54

标签: c++ ios objective-c openssl

您好我在iOS应用程序中使用Openssl库我可以编写公共pem但是获取空白私钥。这是我的代码 -

char szModulus = "1162" ; 
char *szExp = "827655" ; 
RSA rsa1 = RSA_new(); 
int ret = BN_hex2bn(&rsa1->n,szModulus) ; 
ret = BN_hex2bn(&rsa1->d,szExp) ; 
FILE *fp; fp = fopen("/Users/ysi/Desktop/privateKey.pem", "wb"); 
PEM_write_RSAPrivateKey(fp, rsa1, NULL, NULL, 0, 0, NULL).

我有模数和指数和参数。上面的代码没有给出任何错误或警告。 请帮我。为什么Pem是空白的。

谢谢

1 个答案:

答案 0 :(得分:0)

你生成了钥匙吗? 在C中,RSA_new()不生成密钥,它只为密钥分配内存。 但我不知道它在Objective-C中是怎么回事。

char szModulus = "1162" ; 
char *szExp = "827655" ; 
RSA* rsa1 = RSA_new(); 
/* added code */ 
BIGNUMBER* exp = BN_new();
BN_set_word(exp, 17);
RSA_generate_key_ex(rsa1, 1024, exp, NULL);
/* until here */
FILE *fp; fp = fopen("/Users/ysi/Desktop/privateKey.pem", "wb"); 
PEM_write_RSAPrivateKey(fp, rsa1, NULL, NULL, 0, 0, NULL).