我目前在我的 C++ 软件中使用libxmlsec,并尝试从内存中加载 RSA 私钥。为此,我搜索了 API 并找到了这个函数。
它采用二进制数据、大小、格式字符串和几个 PEM 回调相关参数。
当我调用该函数时,它只是卡住了,使用了 100% 的 CPU 时间并且永远不会返回。很烦人,因为我无法找出问题所在。
这是我的代码:
d_xmlsec_dsig_context->signKey =
xmlSecCryptoAppKeyLoadMemory(
reinterpret_cast<const xmlSecByte*>(data),
static_cast<xmlSecSize>(datalen),
xmlSecKeyDataFormatBinary,
NULL,
NULL,
NULL
);
data
是const char*
指向我的 RSA 密钥的原始字节(使用i2d_RSAPrivateKey()
, 来自OpenSSL)datalen
和data
.
我的测试私钥没有密码,所以我决定暂时不使用回调。
有人已经做过类似的事情了吗?你们有没有看到我可以改变/测试以解决这个问题?
我昨天才发现图书馆,所以我可能会错过一些明显的东西;我只是看不到它。
非常感谢您的帮助。