В настоящее время я использую libxmlsec в своем программном обеспечении C ++ и пытаюсь загрузить закрытый ключ RSA из памяти. Для этого я искал через API и нашел эту функцию .
Требуется двоичные данные, размер, строка формата и несколько параметров, связанных с обратным вызовом PEM.
Когда я вызываю функцию, она просто зависает, использует 100% процессорного времени и никогда не возвращается. Весьма раздражает, потому что у меня нет возможности выяснить, что не так.
Вот мой код:
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
.
Мой тест закрытый ключ не имеет парольной фразы, поэтому я решил пока не использовать обратные вызовы.
Кто-то уже делал что-то подобное? Ребята, вы видите что-нибудь, что я мог бы изменить / протестировать, чтобы продвинуться в решении этой проблемы?
Я только что обнаружил библиотеку вчера, поэтому я мог упустить что-то очевидное здесь; Я просто не вижу этого.
Большое спасибо за вашу помощь.