summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2015-09-13 14:18:27 +0000
committerjsing <>2015-09-13 14:18:27 +0000
commit25bb75f1bb9ea6f3ef0b29eb231c7010f16152ef (patch)
tree68a9312f6fd013980386412bddd1bd076694a876
parent759e6edbf75708ba15d1423ed0f65a15100fce7f (diff)
downloadopenbsd-25bb75f1bb9ea6f3ef0b29eb231c7010f16152ef.tar.gz
openbsd-25bb75f1bb9ea6f3ef0b29eb231c7010f16152ef.tar.bz2
openbsd-25bb75f1bb9ea6f3ef0b29eb231c7010f16152ef.zip
Remove explicit NULL checks before *_free() calls and tidy some code.
-rw-r--r--src/regress/lib/libcrypto/ecdh/ecdhtest.c50
1 files changed, 22 insertions, 28 deletions
diff --git a/src/regress/lib/libcrypto/ecdh/ecdhtest.c b/src/regress/lib/libcrypto/ecdh/ecdhtest.c
index 100381570c..b46a3d5798 100644
--- a/src/regress/lib/libcrypto/ecdh/ecdhtest.c
+++ b/src/regress/lib/libcrypto/ecdh/ecdhtest.c
@@ -221,18 +221,13 @@ err:
221 221
222 free(abuf); 222 free(abuf);
223 free(bbuf); 223 free(bbuf);
224 if (x_a) 224 BN_free(x_a);
225 BN_free(x_a); 225 BN_free(y_a);
226 if (y_a) 226 BN_free(x_b);
227 BN_free(y_a); 227 BN_free(y_b);
228 if (x_b) 228 EC_KEY_free(b);
229 BN_free(x_b); 229 EC_KEY_free(a);
230 if (y_b) 230
231 BN_free(y_b);
232 if (b)
233 EC_KEY_free(b);
234 if (a)
235 EC_KEY_free(a);
236 return (ret); 231 return (ret);
237} 232}
238 233
@@ -310,11 +305,12 @@ static const unsigned char bp512_Z[] = {
310static EC_KEY * 305static EC_KEY *
311mk_eckey(int nid, const unsigned char *p, size_t plen) 306mk_eckey(int nid, const unsigned char *p, size_t plen)
312{ 307{
313 int ok = 0;
314 EC_KEY *k = NULL; 308 EC_KEY *k = NULL;
315 BIGNUM *priv = NULL; 309 BIGNUM *priv = NULL;
316 EC_POINT *pub = NULL; 310 EC_POINT *pub = NULL;
317 const EC_GROUP *grp; 311 const EC_GROUP *grp;
312 int ok = 0;
313
318 k = EC_KEY_new_by_curve_name(nid); 314 k = EC_KEY_new_by_curve_name(nid);
319 if (!k) 315 if (!k)
320 goto err; 316 goto err;
@@ -333,15 +329,13 @@ mk_eckey(int nid, const unsigned char *p, size_t plen)
333 goto err; 329 goto err;
334 ok = 1; 330 ok = 1;
335err: 331err:
336 if (priv) 332 BN_clear_free(priv);
337 BN_clear_free(priv); 333 EC_POINT_free(pub);
338 if (pub) 334 if (!ok) {
339 EC_POINT_free(pub);
340 if (ok)
341 return k;
342 else if (k)
343 EC_KEY_free(k); 335 EC_KEY_free(k);
344 return NULL; 336 k = NULL;
337 }
338 return (k);
345} 339}
346 340
347/* Known answer test: compute shared secret and check it matches 341/* Known answer test: compute shared secret and check it matches
@@ -380,18 +374,19 @@ ecdh_kat(BIO *out, const char *cname, int nid,
380 if (memcmp(Ztmp, Z, Zlen)) 374 if (memcmp(Ztmp, Z, Zlen))
381 goto err; 375 goto err;
382 rv = 1; 376 rv = 1;
377
383err: 378err:
384 if (key1)
385 EC_KEY_free(key1);
386 if (key2)
387 EC_KEY_free(key2);
388 free(Ztmp);
389 if (rv) 379 if (rv)
390 BIO_puts(out, " ok\n"); 380 BIO_puts(out, " ok\n");
391 else { 381 else {
392 fprintf(stderr, "Error in ECDH routines\n"); 382 fprintf(stderr, "Error in ECDH routines\n");
393 ERR_print_errors_fp(stderr); 383 ERR_print_errors_fp(stderr);
394 } 384 }
385
386 EC_KEY_free(key1);
387 EC_KEY_free(key2);
388 free(Ztmp);
389
395 return rv; 390 return rv;
396} 391}
397 392
@@ -473,8 +468,7 @@ main(int argc, char *argv[])
473 468
474err: 469err:
475 ERR_print_errors_fp(stderr); 470 ERR_print_errors_fp(stderr);
476 if (ctx) 471 BN_CTX_free(ctx);
477 BN_CTX_free(ctx);
478 BIO_free(out); 472 BIO_free(out);
479 CRYPTO_cleanup_all_ex_data(); 473 CRYPTO_cleanup_all_ex_data();
480 ERR_remove_thread_state(NULL); 474 ERR_remove_thread_state(NULL);