Требуется ли openssl_free_key? - PullRequest
0 голосов
/ 10 июля 2019

Я работаю над устаревшим кодом и обнаружил шифрование ключа openssl, которое выдает E_WARNING с сообщением об ошибке "openssl_free_key () ожидает, что параметр 1 будет ресурсом, задана строка".

При ближайшем рассмотрении я обнаружил, что закрытый ключ действительно является строкой, а не ресурсом.

Поскольку ключ является строкой, а ключ не был сгенерирован "openssl_get_privatekey", требуется ли "openssl_free_key" в конце запроса?

Поиск и просмотр документов PHP не дает точной информации об этой проблеме.

$value = 'something';

if (openssl_pkcs12_read($file, $cart, $pass) === true) {
    $private_key = $cart['pkey'];
} else {
    throw new Exception('Failed to open certificate.');
}

if (isset($private_key)) {
    openssl_sign($value, $signature, $private_key, OPENSSL_ALGO_SHA1);
    openssl_free_key($private_key);
}

1 Ответ

1 голос
/ 14 июля 2019

Документы говорят:

Эта функция освобождает закрытый ключ, созданный openssl_pkey_new ().

PHP Docs

Так что, если ваш ключ - строка: нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...