0

嗨,我在我的 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 是空白的。

谢谢

4

1 回答 1

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).
于 2013-07-08T13:54:35.613 回答