我有
形式的公钥not safe
firebook
staff everyone localaccounts _appserverusr admin _appserveradm _lpadmin com.apple.sharepoint.group.1 _appstore _lpoperator _developer com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh-disabled
/usr/bin/pbcopy
failed
是使用OpenSSL创建的。我尝试将其加载到内存中,如下所示:
-----BEGIN PUBLIC KEY-----
MIIB...
-----END PUBLIC KEY-----
每当它到达RSA * rsa = ...行时程序崩溃。我已经看到了另一篇文章,并且(正如你所看到的)我已经尝试了解决方案而且它没有用。
我已尝试使用BIO版本,程序不会崩溃,但我确实收到错误"没有启动行"。
关于可能导致这种情况的任何想法?
答案 0 :(得分:1)
DataFieldBase dataField = null;
第二个参数不能为NULL。这导致你的崩溃。另外,它是一个指针指向(双间接)。另请参阅PEM_read_RSA_PUBKEY
man pages。
也许你应该使用类似的东西:
RSA* rsa = PEM_read_RSA_PUBKEY(file, nullptr, nullptr, nullptr);
数据可能格式错误,可能导致意外崩溃。如果您提供真实数据,那么我们通常可以对其进行交叉检查。在缺乏真实数据的情况下,我们无法真正说出来。
您可能还想访问How to generate RSA private key using openssl?。它显示了几种RSA输出格式。它还向您展示了如何使用C ++管理OpenSSL资源。