diff options
| author | tb <> | 2024-11-08 21:53:54 +0000 | 
|---|---|---|
| committer | tb <> | 2024-11-08 21:53:54 +0000 | 
| commit | 7281f3e87eb42fbf94d5b91ca42b7be6eeb0a1db (patch) | |
| tree | e4cb79362b711009831afc5fc78139b3f59f2f3c | |
| parent | 4731737024462e7a5c8a0822c1ac3bcefe15327b (diff) | |
| download | openbsd-7281f3e87eb42fbf94d5b91ca42b7be6eeb0a1db.tar.gz openbsd-7281f3e87eb42fbf94d5b91ca42b7be6eeb0a1db.tar.bz2 openbsd-7281f3e87eb42fbf94d5b91ca42b7be6eeb0a1db.zip | |
Clean up EC_KEY_new_by_curve_name()
Use a better variable name, simpler error handling. This could be
simplified further if we decide to have an ec_key_set0_group() that
avoids a copy.
ok beck jsing
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/ec/ec_key.c | 34 | 
1 files changed, 20 insertions, 14 deletions
| diff --git a/src/lib/libcrypto/ec/ec_key.c b/src/lib/libcrypto/ec/ec_key.c index 21c22823f9..c8f4c15bb5 100644 --- a/src/lib/libcrypto/ec/ec_key.c +++ b/src/lib/libcrypto/ec/ec_key.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_key.c,v 1.42 2024/11/05 08:56:57 tb Exp $ */ | 1 | /* $OpenBSD: ec_key.c,v 1.43 2024/11/08 21:53:54 tb Exp $ */ | 
| 2 | /* | 2 | /* | 
| 3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. | 
| 4 | */ | 4 | */ | 
| @@ -80,20 +80,26 @@ LCRYPTO_ALIAS(EC_KEY_new); | |||
| 80 | EC_KEY * | 80 | EC_KEY * | 
| 81 | EC_KEY_new_by_curve_name(int nid) | 81 | EC_KEY_new_by_curve_name(int nid) | 
| 82 | { | 82 | { | 
| 83 | EC_KEY *ret = EC_KEY_new(); | 83 | EC_KEY *ec_key; | 
| 84 | if (ret == NULL) | 84 | |
| 85 | return NULL; | 85 | if ((ec_key = EC_KEY_new()) == NULL) | 
| 86 | ret->group = EC_GROUP_new_by_curve_name(nid); | 86 | goto err; | 
| 87 | if (ret->group == NULL) { | 87 | |
| 88 | EC_KEY_free(ret); | 88 | if ((ec_key->group = EC_GROUP_new_by_curve_name(nid)) == NULL) | 
| 89 | return NULL; | 89 | goto err; | 
| 90 | } | 90 | |
| 91 | if (ret->meth->set_group != NULL && | 91 | /* XXX - do we want an ec_key_set0_group()? */ | 
| 92 | ret->meth->set_group(ret, ret->group) == 0) { | 92 | if (ec_key->meth->set_group != NULL) { | 
| 93 | EC_KEY_free(ret); | 93 | if (!ec_key->meth->set_group(ec_key, ec_key->group)) | 
| 94 | return NULL; | 94 | goto err; | 
| 95 | } | 95 | } | 
| 96 | return ret; | 96 | |
| 97 | return ec_key; | ||
| 98 | |||
| 99 | err: | ||
| 100 | EC_KEY_free(ec_key); | ||
| 101 | |||
| 102 | return NULL; | ||
| 97 | } | 103 | } | 
| 98 | LCRYPTO_ALIAS(EC_KEY_new_by_curve_name); | 104 | LCRYPTO_ALIAS(EC_KEY_new_by_curve_name); | 
| 99 | 105 | ||
