summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ec
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/ec')
-rw-r--r--src/lib/libcrypto/ec/ec_mult.c14
-rw-r--r--src/lib/libcrypto/ec/ecp_nistp224.c3
-rw-r--r--src/lib/libcrypto/ec/ecp_nistp256.c7
-rw-r--r--src/lib/libcrypto/ec/ecp_nistp521.c7
-rw-r--r--src/lib/libcrypto/ec/ecp_smpl.c2
5 files changed, 20 insertions, 13 deletions
diff --git a/src/lib/libcrypto/ec/ec_mult.c b/src/lib/libcrypto/ec/ec_mult.c
index c0525c4940..b3bd34d82d 100644
--- a/src/lib/libcrypto/ec/ec_mult.c
+++ b/src/lib/libcrypto/ec/ec_mult.c
@@ -425,11 +425,11 @@ ec_wNAF_mul(const EC_GROUP * group, EC_POINT * r, const BIGNUM * scalar,
425 } 425 }
426 totalnum = num + numblocks; 426 totalnum = num + numblocks;
427 427
428 wsize = malloc(totalnum * sizeof wsize[0]); 428 wsize = reallocarray(NULL, totalnum, sizeof wsize[0]);
429 wNAF_len = malloc(totalnum * sizeof wNAF_len[0]); 429 wNAF_len = reallocarray(NULL, totalnum, sizeof wNAF_len[0]);
430 wNAF = malloc((totalnum + 1) * sizeof wNAF[0]); /* includes space for 430 /* includes space for pivot */
431 * pivot */ 431 wNAF = reallocarray(NULL, (totalnum + 1), sizeof wNAF[0]);
432 val_sub = malloc(totalnum * sizeof val_sub[0]); 432 val_sub = reallocarray(NULL, totalnum, sizeof val_sub[0]);
433 433
434 if (!wsize || !wNAF_len || !wNAF || !val_sub) { 434 if (!wsize || !wNAF_len || !wNAF || !val_sub) {
435 ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); 435 ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE);
@@ -573,7 +573,7 @@ ec_wNAF_mul(const EC_GROUP * group, EC_POINT * r, const BIGNUM * scalar,
573 * to a subarray of 'pre_comp->points' if we already have 573 * to a subarray of 'pre_comp->points' if we already have
574 * precomputation. 574 * precomputation.
575 */ 575 */
576 val = malloc((num_val + 1) * sizeof val[0]); 576 val = reallocarray(NULL, (num_val + 1), sizeof val[0]);
577 if (val == NULL) { 577 if (val == NULL) {
578 ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); 578 ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE);
579 goto err; 579 goto err;
@@ -790,7 +790,7 @@ ec_wNAF_precompute_mult(EC_GROUP * group, BN_CTX * ctx)
790 num = pre_points_per_block * numblocks; /* number of points to 790 num = pre_points_per_block * numblocks; /* number of points to
791 * compute and store */ 791 * compute and store */
792 792
793 points = malloc(sizeof(EC_POINT *) * (num + 1)); 793 points = reallocarray(NULL, sizeof(EC_POINT *), (num + 1));
794 if (!points) { 794 if (!points) {
795 ECerr(EC_F_EC_WNAF_PRECOMPUTE_MULT, ERR_R_MALLOC_FAILURE); 795 ECerr(EC_F_EC_WNAF_PRECOMPUTE_MULT, ERR_R_MALLOC_FAILURE);
796 goto err; 796 goto err;
diff --git a/src/lib/libcrypto/ec/ecp_nistp224.c b/src/lib/libcrypto/ec/ecp_nistp224.c
index 53aced54d5..6e9b9fac3c 100644
--- a/src/lib/libcrypto/ec/ecp_nistp224.c
+++ b/src/lib/libcrypto/ec/ecp_nistp224.c
@@ -1438,7 +1438,8 @@ ec_GFp_nistp224_points_mul(const EC_GROUP * group, EC_POINT * r,
1438 secrets = calloc(num_points, sizeof(felem_bytearray)); 1438 secrets = calloc(num_points, sizeof(felem_bytearray));
1439 pre_comp = calloc(num_points, 17 * 3 * sizeof(felem)); 1439 pre_comp = calloc(num_points, 17 * 3 * sizeof(felem));
1440 if (mixed) 1440 if (mixed)
1441 tmp_felems = malloc((num_points * 17 + 1) * sizeof(felem)); 1441 tmp_felems = reallocarray(NULL,
1442 (num_points * 17 + 1), sizeof(felem));
1442 if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_felems == NULL))) { 1443 if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_felems == NULL))) {
1443 ECerr(EC_F_EC_GFP_NISTP224_POINTS_MUL, ERR_R_MALLOC_FAILURE); 1444 ECerr(EC_F_EC_GFP_NISTP224_POINTS_MUL, ERR_R_MALLOC_FAILURE);
1444 goto err; 1445 goto err;
diff --git a/src/lib/libcrypto/ec/ecp_nistp256.c b/src/lib/libcrypto/ec/ecp_nistp256.c
index df80cc2b8a..b2398e106c 100644
--- a/src/lib/libcrypto/ec/ecp_nistp256.c
+++ b/src/lib/libcrypto/ec/ecp_nistp256.c
@@ -1987,8 +1987,11 @@ ec_GFp_nistp256_points_mul(const EC_GROUP * group, EC_POINT * r,
1987 } 1987 }
1988 secrets = calloc(num_points, sizeof(felem_bytearray)); 1988 secrets = calloc(num_points, sizeof(felem_bytearray));
1989 pre_comp = calloc(num_points, 17 * 3 * sizeof(smallfelem)); 1989 pre_comp = calloc(num_points, 17 * 3 * sizeof(smallfelem));
1990 if (mixed) 1990 if (mixed) {
1991 tmp_smallfelems = malloc((num_points * 17 + 1) * sizeof(smallfelem)); 1991 /* XXX should do more int overflow checking */
1992 tmp_smallfelems = reallocarray(NULL,
1993 (num_points * 17 + 1), sizeof(smallfelem));
1994 }
1992 if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_smallfelems == NULL))) { 1995 if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_smallfelems == NULL))) {
1993 ECerr(EC_F_EC_GFP_NISTP256_POINTS_MUL, ERR_R_MALLOC_FAILURE); 1996 ECerr(EC_F_EC_GFP_NISTP256_POINTS_MUL, ERR_R_MALLOC_FAILURE);
1994 goto err; 1997 goto err;
diff --git a/src/lib/libcrypto/ec/ecp_nistp521.c b/src/lib/libcrypto/ec/ecp_nistp521.c
index 6792c5b71d..083e017cdc 100644
--- a/src/lib/libcrypto/ec/ecp_nistp521.c
+++ b/src/lib/libcrypto/ec/ecp_nistp521.c
@@ -1874,8 +1874,11 @@ ec_GFp_nistp521_points_mul(const EC_GROUP * group, EC_POINT * r,
1874 } 1874 }
1875 secrets = calloc(num_points, sizeof(felem_bytearray)); 1875 secrets = calloc(num_points, sizeof(felem_bytearray));
1876 pre_comp = calloc(num_points, 17 * 3 * sizeof(felem)); 1876 pre_comp = calloc(num_points, 17 * 3 * sizeof(felem));
1877 if (mixed) 1877 if (mixed) {
1878 tmp_felems = malloc((num_points * 17 + 1) * sizeof(felem)); 1878 /* XXX should do more int overflow checking */
1879 tmp_felems = reallocarray(NULL,
1880 (num_points * 17 + 1), sizeof(felem));
1881 }
1879 if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_felems == NULL))) { 1882 if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_felems == NULL))) {
1880 ECerr(EC_F_EC_GFP_NISTP521_POINTS_MUL, ERR_R_MALLOC_FAILURE); 1883 ECerr(EC_F_EC_GFP_NISTP521_POINTS_MUL, ERR_R_MALLOC_FAILURE);
1881 goto err; 1884 goto err;
diff --git a/src/lib/libcrypto/ec/ecp_smpl.c b/src/lib/libcrypto/ec/ecp_smpl.c
index b87410120d..46783a47a8 100644
--- a/src/lib/libcrypto/ec/ecp_smpl.c
+++ b/src/lib/libcrypto/ec/ecp_smpl.c
@@ -1257,7 +1257,7 @@ ec_GFp_simple_points_make_affine(const EC_GROUP * group, size_t num, EC_POINT *
1257 */ 1257 */
1258 pow2 <<= 1; 1258 pow2 <<= 1;
1259 1259
1260 heap = malloc(pow2 * sizeof heap[0]); 1260 heap = reallocarray(NULL, pow2, sizeof heap[0]);
1261 if (heap == NULL) 1261 if (heap == NULL)
1262 goto err; 1262 goto err;
1263 1263