summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Ahern <william@25thandClement.com>2015-12-18 14:14:53 +0800
committerWilliam Ahern <william@25thandClement.com>2015-12-18 14:14:53 +0800
commit73b1a614759da1bc064d3b6cfff221981b04d8b8 (patch)
tree4657110add562408abe1d98deed160f80de1c7d5
parentb105f09ccc6ef4a90b97745f50a46a5910edcdc1 (diff)
downloadluaossl-73b1a614759da1bc064d3b6cfff221981b04d8b8.tar.gz
luaossl-73b1a614759da1bc064d3b6cfff221981b04d8b8.tar.bz2
luaossl-73b1a614759da1bc064d3b6cfff221981b04d8b8.zip
bn_dup only returns on success, so remove error handling from bn_dup calls
-rw-r--r--src/openssl.c60
1 files changed, 26 insertions, 34 deletions
diff --git a/src/openssl.c b/src/openssl.c
index dea175e..5bc42ab 100644
--- a/src/openssl.c
+++ b/src/openssl.c
@@ -1562,7 +1562,7 @@ static BIGNUM *bn_dup(lua_State *L, const BIGNUM *src) {
1562 BIGNUM **ud = prepsimple(L, BIGNUM_CLASS); 1562 BIGNUM **ud = prepsimple(L, BIGNUM_CLASS);
1563 1563
1564 if (!(*ud = BN_dup(src))) 1564 if (!(*ud = BN_dup(src)))
1565 auxL_error(L, auxL_EOPENSSL, "bignum.new"); 1565 auxL_error(L, auxL_EOPENSSL, "bignum");
1566 1566
1567 return *ud; 1567 return *ud;
1568} /* bn_dup() */ 1568} /* bn_dup() */
@@ -2514,76 +2514,66 @@ static int pk_getParameters(lua_State *L) {
2514 void *tmp; 2514 void *tmp;
2515 2515
2516 if (!(tmp = EVP_PKEY_get0(key))) 2516 if (!(tmp = EVP_PKEY_get0(key)))
2517 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters"); 2517 goto sslerr;
2518 2518
2519 lua_newtable(L); 2519 lua_newtable(L);
2520 2520
2521 switch (EVP_PKEY_base_id(key)) { 2521 switch (EVP_PKEY_base_id(key)) {
2522 case EVP_PKEY_RSA: 2522 case EVP_PKEY_RSA:
2523 /* RSA public modulus n */ 2523 /* RSA public modulus n */
2524 if (!bn_dup(L, ((RSA*)tmp)->n)) 2524 bn_dup(L, ((RSA*)tmp)->n);
2525 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2526 lua_setfield(L, -2, "n"); 2525 lua_setfield(L, -2, "n");
2527 2526
2528 /* RSA public exponent e */ 2527 /* RSA public exponent e */
2529 if (!bn_dup(L, ((RSA*)tmp)->e)) 2528 bn_dup(L, ((RSA*)tmp)->e);
2530 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2531 lua_setfield(L, -2, "e"); 2529 lua_setfield(L, -2, "e");
2532 2530
2533 if (public_only) break; 2531 if (public_only)
2532 break;
2534 2533
2535 /* RSA secret exponent d */ 2534 /* RSA secret exponent d */
2536 if (!bn_dup(L, ((RSA*)tmp)->d)) 2535 bn_dup(L, ((RSA*)tmp)->d);
2537 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2538 lua_setfield(L, -2, "d"); 2536 lua_setfield(L, -2, "d");
2539 2537
2540 /* RSA secret prime p */ 2538 /* RSA secret prime p */
2541 if (!bn_dup(L, ((RSA*)tmp)->p)) 2539 bn_dup(L, ((RSA*)tmp)->p);
2542 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2543 lua_setfield(L, -2, "p"); 2540 lua_setfield(L, -2, "p");
2544 2541
2545 /* RSA secret prime q with p < q */ 2542 /* RSA secret prime q with p < q */
2546 if (!bn_dup(L, ((RSA*)tmp)->q)) 2543 bn_dup(L, ((RSA*)tmp)->q);
2547 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2548 lua_setfield(L, -2, "q"); 2544 lua_setfield(L, -2, "q");
2549 2545
2550 /* exponent1 */ 2546 /* exponent1 */
2551 if (!bn_dup(L, ((RSA*)tmp)->dmp1)) 2547 bn_dup(L, ((RSA*)tmp)->dmp1);
2552 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2553 lua_setfield(L, -2, "dmp1"); 2548 lua_setfield(L, -2, "dmp1");
2554 2549
2555 /* exponent2 */ 2550 /* exponent2 */
2556 if (!bn_dup(L, ((RSA*)tmp)->dmq1)) 2551 bn_dup(L, ((RSA*)tmp)->dmq1);
2557 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2558 lua_setfield(L, -2, "dmq1"); 2552 lua_setfield(L, -2, "dmq1");
2559 2553
2560 /* coefficient */ 2554 /* coefficient */
2561 if (!bn_dup(L, ((RSA*)tmp)->iqmp)) 2555 bn_dup(L, ((RSA*)tmp)->iqmp);
2562 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2563 lua_setfield(L, -2, "iqmp"); 2556 lua_setfield(L, -2, "iqmp");
2564 2557
2565 break; 2558 break;
2566 case EVP_PKEY_DH: 2559 case EVP_PKEY_DH:
2567 /* prime */ 2560 /* prime */
2568 if (!bn_dup(L, ((DH*)tmp)->p)) 2561 bn_dup(L, ((DH*)tmp)->p);
2569 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2570 lua_setfield(L, -2, "p"); 2562 lua_setfield(L, -2, "p");
2571 2563
2572 /* generator */ 2564 /* generator */
2573 if (!bn_dup(L, ((DH*)tmp)->g)) 2565 bn_dup(L, ((DH*)tmp)->g);
2574 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2575 lua_setfield(L, -2, "g"); 2566 lua_setfield(L, -2, "g");
2576 2567
2577 /* pub_key */ 2568 /* pub_key */
2578 if (!bn_dup(L, ((DH*)tmp)->pub_key)) 2569 bn_dup(L, ((DH*)tmp)->pub_key);
2579 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2580 lua_setfield(L, -2, "pub_key"); 2570 lua_setfield(L, -2, "pub_key");
2581 2571
2582 if (public_only) break; 2572 if (public_only)
2573 break;
2583 2574
2584 /* priv_key */ 2575 /* priv_key */
2585 if (!bn_dup(L, ((DH*)tmp)->priv_key)) 2576 bn_dup(L, ((DH*)tmp)->priv_key);
2586 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2587 lua_setfield(L, -2, "priv_key"); 2577 lua_setfield(L, -2, "priv_key");
2588 2578
2589 break; 2579 break;
@@ -2594,16 +2584,16 @@ static int pk_getParameters(lua_State *L) {
2594 2584
2595 /* pub_key */ 2585 /* pub_key */
2596 if (!(group = EC_KEY_get0_group(tmp)) || !(public_key = EC_KEY_get0_public_key(tmp))) 2586 if (!(group = EC_KEY_get0_group(tmp)) || !(public_key = EC_KEY_get0_public_key(tmp)))
2597 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters"); 2587 goto sslerr;
2598 if (!bn_dup(L, EC_POINT_point2bn(group, public_key, EC_KEY_get_conv_form(tmp), NULL, getctx(L)))) 2588 bn_dup(L, EC_POINT_point2bn(group, public_key, EC_KEY_get_conv_form(tmp), NULL, getctx(L)));
2599 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2600 lua_setfield(L, -2, "pub_key"); 2589 lua_setfield(L, -2, "pub_key");
2601 2590
2602 if (public_only) break; 2591 if (public_only)
2592 break;
2603 2593
2604 /* priv_key */ 2594 /* priv_key */
2605 if (!bn_dup(L, EC_KEY_get0_private_key(tmp))) 2595 bn_dup(L, EC_KEY_get0_private_key(tmp));
2606 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters"); 2596 goto sslerr;
2607 lua_setfield(L, -2, "priv_key"); 2597 lua_setfield(L, -2, "priv_key");
2608 2598
2609 break; 2599 break;
@@ -2614,6 +2604,8 @@ static int pk_getParameters(lua_State *L) {
2614 } /* switch() */ 2604 } /* switch() */
2615 2605
2616 return 1; 2606 return 1;
2607sslerr:
2608 return auxL_error(L, auxL_EOPENSSL, "pkey:getParameters");
2617} /* pk_getParameters() */ 2609} /* pk_getParameters() */
2618 2610
2619 2611