我正在尝试使用OpenSSL密码库,但它在一个调用中崩溃了,这是我见过的每个示例中的一个主要部分。下面是它的设置:
BIO* bp = BIO_new_mem_buf(_publicKey, -1); // Create a new memory buffer BIO.
RSA* pubKey = PEM_read_bio_RSA_PUBKEY(bp, 0, 0, 0); // And read the RSA key from it.
unsigned char encryptedRandKey[RSA_size(pubKey)];
BIO_free(bp);_publicKey是一个以null结尾的字符串,其中包含一个PEM格式的RSA (带有-----BEGIN XXX-----等)。在RSA_size中访问权限不佳会导致系统崩溃。
即使我删除了BIO_free,也没有关系。
有什么想法吗?谢谢!
发布于 2011-05-16 19:00:02
需要检查PEM_read_bio_RSA_PUBKEY()的返回值,确保返回值不为空。最有可能的情况是,_publicKey的内容不是一个格式正确的键,因此pubKey为NULL。
https://stackoverflow.com/questions/6015449
复制相似问题