diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libcrypto/Symbols.list | 1 | ||||
-rw-r--r-- | src/lib/libcrypto/evp/evp.h | 5 | ||||
-rw-r--r-- | src/lib/libcrypto/evp/p_lib.c | 31 |
3 files changed, 24 insertions, 13 deletions
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list index 885d5fb111..39ef6bf430 100644 --- a/src/lib/libcrypto/Symbols.list +++ b/src/lib/libcrypto/Symbols.list | |||
@@ -1388,6 +1388,7 @@ EVP_PKEY_free | |||
1388 | EVP_PKEY_get0 | 1388 | EVP_PKEY_get0 |
1389 | EVP_PKEY_get0_DH | 1389 | EVP_PKEY_get0_DH |
1390 | EVP_PKEY_get0_DSA | 1390 | EVP_PKEY_get0_DSA |
1391 | EVP_PKEY_get0_EC_KEY | ||
1391 | EVP_PKEY_get0_RSA | 1392 | EVP_PKEY_get0_RSA |
1392 | EVP_PKEY_get0_asn1 | 1393 | EVP_PKEY_get0_asn1 |
1393 | EVP_PKEY_get1_DH | 1394 | EVP_PKEY_get1_DH |
diff --git a/src/lib/libcrypto/evp/evp.h b/src/lib/libcrypto/evp/evp.h index aec6fa4249..e12e771cc5 100644 --- a/src/lib/libcrypto/evp/evp.h +++ b/src/lib/libcrypto/evp/evp.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: evp.h,v 1.57 2018/02/17 16:54:08 jsing Exp $ */ | 1 | /* $OpenBSD: evp.h,v 1.58 2018/02/20 18:05:28 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -893,8 +893,9 @@ int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); | |||
893 | #endif | 893 | #endif |
894 | #ifndef OPENSSL_NO_EC | 894 | #ifndef OPENSSL_NO_EC |
895 | struct ec_key_st; | 895 | struct ec_key_st; |
896 | int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); | 896 | struct ec_key_st *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey); |
897 | struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); | 897 | struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); |
898 | int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); | ||
898 | #endif | 899 | #endif |
899 | #ifndef OPENSSL_NO_GOST | 900 | #ifndef OPENSSL_NO_GOST |
900 | struct gost_key_st; | 901 | struct gost_key_st; |
diff --git a/src/lib/libcrypto/evp/p_lib.c b/src/lib/libcrypto/evp/p_lib.c index 3cd1bf3b34..811fe0c86d 100644 --- a/src/lib/libcrypto/evp/p_lib.c +++ b/src/lib/libcrypto/evp/p_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p_lib.c,v 1.19 2018/02/17 13:47:36 tb Exp $ */ | 1 | /* $OpenBSD: p_lib.c,v 1.20 2018/02/20 18:05:28 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -311,7 +311,7 @@ int | |||
311 | EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key) | 311 | EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key) |
312 | { | 312 | { |
313 | int ret = EVP_PKEY_assign_RSA(pkey, key); | 313 | int ret = EVP_PKEY_assign_RSA(pkey, key); |
314 | if (ret) | 314 | if (ret != 0) |
315 | RSA_up_ref(key); | 315 | RSA_up_ref(key); |
316 | return ret; | 316 | return ret; |
317 | } | 317 | } |
@@ -343,21 +343,21 @@ int | |||
343 | EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key) | 343 | EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key) |
344 | { | 344 | { |
345 | int ret = EVP_PKEY_assign_DSA(pkey, key); | 345 | int ret = EVP_PKEY_assign_DSA(pkey, key); |
346 | if (ret) | 346 | if (ret != 0) |
347 | DSA_up_ref(key); | 347 | DSA_up_ref(key); |
348 | return ret; | 348 | return ret; |
349 | } | 349 | } |
350 | #endif | 350 | #endif |
351 | 351 | ||
352 | #ifndef OPENSSL_NO_EC | 352 | #ifndef OPENSSL_NO_EC |
353 | 353 | EC_KEY * | |
354 | int | 354 | EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey) |
355 | EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, EC_KEY *key) | ||
356 | { | 355 | { |
357 | int ret = EVP_PKEY_assign_EC_KEY(pkey, key); | 356 | if (pkey->type != EVP_PKEY_EC) { |
358 | if (ret) | 357 | EVPerror(EVP_R_EXPECTING_A_EC_KEY); |
359 | EC_KEY_up_ref(key); | 358 | return NULL; |
360 | return ret; | 359 | } |
360 | return pkey->pkey.ec; | ||
361 | } | 361 | } |
362 | 362 | ||
363 | EC_KEY * | 363 | EC_KEY * |
@@ -370,6 +370,15 @@ EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey) | |||
370 | EC_KEY_up_ref(pkey->pkey.ec); | 370 | EC_KEY_up_ref(pkey->pkey.ec); |
371 | return pkey->pkey.ec; | 371 | return pkey->pkey.ec; |
372 | } | 372 | } |
373 | |||
374 | int | ||
375 | EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, EC_KEY *key) | ||
376 | { | ||
377 | int ret = EVP_PKEY_assign_EC_KEY(pkey, key); | ||
378 | if (ret != 0) | ||
379 | EC_KEY_up_ref(key); | ||
380 | return ret; | ||
381 | } | ||
373 | #endif | 382 | #endif |
374 | 383 | ||
375 | 384 | ||
@@ -399,7 +408,7 @@ int | |||
399 | EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key) | 408 | EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key) |
400 | { | 409 | { |
401 | int ret = EVP_PKEY_assign_DH(pkey, key); | 410 | int ret = EVP_PKEY_assign_DH(pkey, key); |
402 | if (ret) | 411 | if (ret != 0) |
403 | DH_up_ref(key); | 412 | DH_up_ref(key); |
404 | return ret; | 413 | return ret; |
405 | } | 414 | } |