那么,问题是如何正确地生成RSA * rsa密钥的二进制数据? 我做了
RSA *rsa = RSA_generate_key(2048, 65537, 0, 0);
uchar *pp = (uchar *)malloc(2560);
int bytes = i2d_RSAPublicKey(rsa, &pp);
write(client, pp, bytes);
和接收者执行d2i_RSAPublicKey并且程序崩溃。我做错了什么?
答案 0 :(得分:0)
不要自己使用malloc pp
,而是将其设置为NULL。 i2d_RSAPublicKey
将为您执行malloc并将pp设置为指向新malloced公钥。