History

avformat/tls_openssl: don't expose deprecated EC_KEY outside of its function

Timo Rothenpieler committed 1 year ago

Commit 40ce64e1 parent 5339db21 file · +9 −11Browse files

Unified · Split

libavformat/tls_openssl.c+9−11
@@ -235,7 +235,7 @@ end: · 234 unmodified lines
235 return ret;235 return ret;
236}236}
237 237
238static int openssl_gen_private_key(EVP_PKEY **pkey, EC_KEY **eckey)238static int openssl_gen_private_key(EVP_PKEY **pkey)
239{239{
240 int ret = 0;240 int ret = 0;
241 241
@@ -250,6 +250,7 @@ static int openssl_gen_private_key(EVP_PKEY **pkey, EC_KEY **eckey) · 8 unmodified lines
250 */250 */
251#if OPENSSL_VERSION_NUMBER < 0x30000000L /* OpenSSL 3.0 */251#if OPENSSL_VERSION_NUMBER < 0x30000000L /* OpenSSL 3.0 */
252 EC_GROUP *ecgroup = NULL;252 EC_GROUP *ecgroup = NULL;
253 EC_KEY *eckey = NULL;
253 int curve = NID_X9_62_prime256v1;254 int curve = NID_X9_62_prime256v1;
254#else255#else
255 const char *curve = SN_X9_62_prime256v1;256 const char *curve = SN_X9_62_prime256v1;
@@ -260,8 +261,8 @@ static int openssl_gen_private_key(EVP_PKEY **pkey, EC_KEY **eckey) · 4 unmodified lines
260 if (!*pkey)261 if (!*pkey)
261 return AVERROR(ENOMEM);262 return AVERROR(ENOMEM);
262 263
263 *eckey = EC_KEY_new();264 eckey = EC_KEY_new();
264 if (!*eckey) {265 if (!eckey) {
265 EVP_PKEY_free(*pkey);266 EVP_PKEY_free(*pkey);
266 *pkey = NULL;267 *pkey = NULL;
267 return AVERROR(ENOMEM);268 return AVERROR(ENOMEM);
@@ -273,17 +274,17 @@ static int openssl_gen_private_key(EVP_PKEY **pkey, EC_KEY **eckey) · 5 unmodified lines
273 goto einval_end;274 goto einval_end;
274 }275 }
275 276
276 if (EC_KEY_set_group(*eckey, ecgroup) != 1) {277 if (EC_KEY_set_group(eckey, ecgroup) != 1) {
277 av_log(NULL, AV_LOG_ERROR, "TLS: Generate private key, EC_KEY_set_group failed, %s\n", ERR_error_string(ERR_get_error(), NULL));278 av_log(NULL, AV_LOG_ERROR, "TLS: Generate private key, EC_KEY_set_group failed, %s\n", ERR_error_string(ERR_get_error(), NULL));
278 goto einval_end;279 goto einval_end;
279 }280 }
280 281
281 if (EC_KEY_generate_key(*eckey) != 1) {282 if (EC_KEY_generate_key(eckey) != 1) {
282 av_log(NULL, AV_LOG_ERROR, "TLS: Generate private key, EC_KEY_generate_key failed, %s\n", ERR_error_string(ERR_get_error(), NULL));283 av_log(NULL, AV_LOG_ERROR, "TLS: Generate private key, EC_KEY_generate_key failed, %s\n", ERR_error_string(ERR_get_error(), NULL));
283 goto einval_end;284 goto einval_end;
284 }285 }
285 286
286 if (EVP_PKEY_set1_EC_KEY(*pkey, *eckey) != 1) {287 if (EVP_PKEY_set1_EC_KEY(*pkey, eckey) != 1) {
287 av_log(NULL, AV_LOG_ERROR, "TLS: Generate private key, EVP_PKEY_set1_EC_KEY failed, %s\n", ERR_error_string(ERR_get_error(), NULL));288 av_log(NULL, AV_LOG_ERROR, "TLS: Generate private key, EVP_PKEY_set1_EC_KEY failed, %s\n", ERR_error_string(ERR_get_error(), NULL));
288 goto einval_end;289 goto einval_end;
289 }290 }
@@ -298,13 +299,12 @@ static int openssl_gen_private_key(EVP_PKEY **pkey, EC_KEY **eckey) · 8 unmodified lines
298 299
299einval_end:300einval_end:
300 ret = AVERROR(EINVAL);301 ret = AVERROR(EINVAL);
301 EC_KEY_free(*eckey);
302 EVP_PKEY_free(*pkey);302 EVP_PKEY_free(*pkey);
303 *eckey = NULL;
304 *pkey = NULL;303 *pkey = NULL;
305end:304end:
306#if OPENSSL_VERSION_NUMBER < 0x30000000L /* OpenSSL 3.0 */305#if OPENSSL_VERSION_NUMBER < 0x30000000L /* OpenSSL 3.0 */
307 EC_GROUP_free(ecgroup);306 EC_GROUP_free(ecgroup);
307 EC_KEY_free(eckey);
308#endif308#endif
309 return ret;309 return ret;
310}310}
@@ -395,11 +395,10 @@ int ff_ssl_gen_key_cert(char *key_buf, size_t key_sz, char *cert_buf, size_t cer · 84 unmodified lines
395{395{
396 int ret = 0;396 int ret = 0;
397 EVP_PKEY *pkey = NULL;397 EVP_PKEY *pkey = NULL;
398 EC_KEY *ec_key = NULL;
399 X509 *cert = NULL;398 X509 *cert = NULL;
400 char *key_tem = NULL, *cert_tem = NULL;399 char *key_tem = NULL, *cert_tem = NULL;
401 400
402 ret = openssl_gen_private_key(&pkey, &ec_key);401 ret = openssl_gen_private_key(&pkey);
403 if (ret < 0) goto error;402 if (ret < 0) goto error;
404 403
405 ret = openssl_gen_certificate(pkey, &cert, fingerprint);404 ret = openssl_gen_certificate(pkey, &cert, fingerprint);
@@ -415,7 +414,6 @@ int ff_ssl_gen_key_cert(char *key_buf, size_t key_sz, char *cert_buf, size_t cer · 9 unmodified lines
415 av_free(cert_tem);414 av_free(cert_tem);
416error:415error:
417 X509_free(cert);416 X509_free(cert);
418 EC_KEY_free(ec_key);
419 EVP_PKEY_free(pkey);417 EVP_PKEY_free(pkey);
420 return ret;418 return ret;
421}419}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t