Further improve/fix ec_GFp_simple_points_make_affine (ecp_smpl.c) and
authorBodo Moeller <bodo@openssl.org>
Wed, 13 Aug 2014 15:37:19 +0000 (17:37 +0200)
committerBodo Moeller <bodo@openssl.org>
Wed, 13 Aug 2014 15:56:18 +0000 (17:56 +0200)
group_order_tests (ectest.c).  Also fix the EC_POINTs_mul documentation (ec.h).

Reviewed-by: emilia@openssl.org
Conflicts:
crypto/ec/ectest.c

crypto/ec/ec.h
crypto/ec/ecp_smpl.c

index ec911f2637048f18d811cab552bf4884a6f3a1da..b721a047c3e17f882d113a101b6231a1e7cd7a77 100644 (file)
@@ -609,7 +609,7 @@ int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN
 int EC_POINT_make_affine(const EC_GROUP *, EC_POINT *, BN_CTX *);
 int EC_POINTs_make_affine(const EC_GROUP *, size_t num, EC_POINT *[], BN_CTX *);
 
-/** Computes r = generator * n sum_{i=0}^num p[i] * m[i]
+/** Computes r = generator * n sum_{i=0}^{num-1} p[i] * m[i]
  *  \param  group  underlying EC_GROUP object
  *  \param  r      EC_POINT object for the result
  *  \param  n      BIGNUM with the multiplier for the group generator (optional)
index b2390882b96df0143c9b0bae1f66571201fec600..1dc35d72a0823a960b3fe22be02f56478ebcdc58 100644 (file)
@@ -1676,8 +1676,8 @@ int ec_GFp_simple_points_make_affine(const EC_GROUP *group, size_t num, EC_POINT
                {
                for (i = 0; i < num; i++)
                        {
-                       if (prod_Z[i] != NULL)
-                               BN_clear_free(prod_Z[i]);
+                       if (prod_Z[i] == NULL) break;
+                       BN_clear_free(prod_Z[i]);
                        }
                OPENSSL_free(prod_Z);
                }