2016-12-12 2 views
2

В старой программе есть строки кода, как показано ниже:Как получить тип EVP_PKEY?

EVP_PKEY *pKey; 
/* 
. 
. 
*/ 
if (pkey->type == EVP_PKEY_RSA) 
    doSomething(); 

Но в новых версиях OpenSSL доступ к внутренней реализации EVP_PKEY запрещено. Я не мог найти никакой функции для замены выше реализации. Есть идеи?

+0

FYI ... есть также «EVP_PKEY_RSA2». Но в man-страницах ['EVP_PKEY_set1_RSA'] (https://www.openssl.org/docs/man1.1.0/crypto/EVP_PKEY_set1_RSA.html). * «... использование альтернативных нестандартных идентификаторов OID теперь редко, поэтому« EVP_PKEY_RSA2 »(и др.) часто не встречаются на практике» *. – jww

ответ

5

Я нашел ответ на OpenSSL Github issue list:

EVP_PKEY_id() возвращает поле типа.

+1

Да, это не самое запоминающееся имя для функции. Кажется, я вспоминаю отчет об ошибке, в котором предлагается «EVP_PKEY_type», который также проверял аргументы, чтобы избежать разыменования NULL. Из этого ничего не вышло. – jww

 Смежные вопросы

  • Нет связанных вопросов^_^