diff options
Diffstat (limited to 'src/lib/libcrypto/ec/ecp_nistp521.c')
-rw-r--r-- | src/lib/libcrypto/ec/ecp_nistp521.c | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/src/lib/libcrypto/ec/ecp_nistp521.c b/src/lib/libcrypto/ec/ecp_nistp521.c index 3d38c72396..db2060668c 100644 --- a/src/lib/libcrypto/ec/ecp_nistp521.c +++ b/src/lib/libcrypto/ec/ecp_nistp521.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ecp_nistp521.c,v 1.25 2021/04/20 17:28:18 tb Exp $ */ | 1 | /* $OpenBSD: ecp_nistp521.c,v 1.26 2021/04/20 17:38:02 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Written by Adam Langley (Google) for the OpenSSL project | 3 | * Written by Adam Langley (Google) for the OpenSSL project |
4 | */ | 4 | */ |
@@ -130,7 +130,7 @@ static const limb bottom58bits = 0x3ffffffffffffff; | |||
130 | 130 | ||
131 | /* bin66_to_felem takes a little-endian byte array and converts it into felem | 131 | /* bin66_to_felem takes a little-endian byte array and converts it into felem |
132 | * form. This assumes that the CPU is little-endian. */ | 132 | * form. This assumes that the CPU is little-endian. */ |
133 | static void | 133 | static void |
134 | bin66_to_felem(felem out, const u8 in[66]) | 134 | bin66_to_felem(felem out, const u8 in[66]) |
135 | { | 135 | { |
136 | out[0] = (*((limb *) & in[0])) & bottom58bits; | 136 | out[0] = (*((limb *) & in[0])) & bottom58bits; |
@@ -146,7 +146,7 @@ bin66_to_felem(felem out, const u8 in[66]) | |||
146 | 146 | ||
147 | /* felem_to_bin66 takes an felem and serialises into a little endian, 66 byte | 147 | /* felem_to_bin66 takes an felem and serialises into a little endian, 66 byte |
148 | * array. This assumes that the CPU is little-endian. */ | 148 | * array. This assumes that the CPU is little-endian. */ |
149 | static void | 149 | static void |
150 | felem_to_bin66(u8 out[66], const felem in) | 150 | felem_to_bin66(u8 out[66], const felem in) |
151 | { | 151 | { |
152 | memset(out, 0, 66); | 152 | memset(out, 0, 66); |
@@ -162,7 +162,7 @@ felem_to_bin66(u8 out[66], const felem in) | |||
162 | } | 162 | } |
163 | 163 | ||
164 | /* To preserve endianness when using BN_bn2bin and BN_bin2bn */ | 164 | /* To preserve endianness when using BN_bn2bin and BN_bin2bn */ |
165 | static void | 165 | static void |
166 | flip_endian(u8 * out, const u8 * in, unsigned len) | 166 | flip_endian(u8 * out, const u8 * in, unsigned len) |
167 | { | 167 | { |
168 | unsigned i; | 168 | unsigned i; |
@@ -171,7 +171,7 @@ flip_endian(u8 * out, const u8 * in, unsigned len) | |||
171 | } | 171 | } |
172 | 172 | ||
173 | /* BN_to_felem converts an OpenSSL BIGNUM into an felem */ | 173 | /* BN_to_felem converts an OpenSSL BIGNUM into an felem */ |
174 | static int | 174 | static int |
175 | BN_to_felem(felem out, const BIGNUM * bn) | 175 | BN_to_felem(felem out, const BIGNUM * bn) |
176 | { | 176 | { |
177 | felem_bytearray b_in; | 177 | felem_bytearray b_in; |
@@ -209,7 +209,7 @@ felem_to_BN(BIGNUM * out, const felem in) | |||
209 | /* Field operations | 209 | /* Field operations |
210 | * ---------------- */ | 210 | * ---------------- */ |
211 | 211 | ||
212 | static void | 212 | static void |
213 | felem_one(felem out) | 213 | felem_one(felem out) |
214 | { | 214 | { |
215 | out[0] = 1; | 215 | out[0] = 1; |
@@ -223,7 +223,7 @@ felem_one(felem out) | |||
223 | out[8] = 0; | 223 | out[8] = 0; |
224 | } | 224 | } |
225 | 225 | ||
226 | static void | 226 | static void |
227 | felem_assign(felem out, const felem in) | 227 | felem_assign(felem out, const felem in) |
228 | { | 228 | { |
229 | out[0] = in[0]; | 229 | out[0] = in[0]; |
@@ -238,7 +238,7 @@ felem_assign(felem out, const felem in) | |||
238 | } | 238 | } |
239 | 239 | ||
240 | /* felem_sum64 sets out = out + in. */ | 240 | /* felem_sum64 sets out = out + in. */ |
241 | static void | 241 | static void |
242 | felem_sum64(felem out, const felem in) | 242 | felem_sum64(felem out, const felem in) |
243 | { | 243 | { |
244 | out[0] += in[0]; | 244 | out[0] += in[0]; |
@@ -253,7 +253,7 @@ felem_sum64(felem out, const felem in) | |||
253 | } | 253 | } |
254 | 254 | ||
255 | /* felem_scalar sets out = in * scalar */ | 255 | /* felem_scalar sets out = in * scalar */ |
256 | static void | 256 | static void |
257 | felem_scalar(felem out, const felem in, limb scalar) | 257 | felem_scalar(felem out, const felem in, limb scalar) |
258 | { | 258 | { |
259 | out[0] = in[0] * scalar; | 259 | out[0] = in[0] * scalar; |
@@ -268,7 +268,7 @@ felem_scalar(felem out, const felem in, limb scalar) | |||
268 | } | 268 | } |
269 | 269 | ||
270 | /* felem_scalar64 sets out = out * scalar */ | 270 | /* felem_scalar64 sets out = out * scalar */ |
271 | static void | 271 | static void |
272 | felem_scalar64(felem out, limb scalar) | 272 | felem_scalar64(felem out, limb scalar) |
273 | { | 273 | { |
274 | out[0] *= scalar; | 274 | out[0] *= scalar; |
@@ -283,7 +283,7 @@ felem_scalar64(felem out, limb scalar) | |||
283 | } | 283 | } |
284 | 284 | ||
285 | /* felem_scalar128 sets out = out * scalar */ | 285 | /* felem_scalar128 sets out = out * scalar */ |
286 | static void | 286 | static void |
287 | felem_scalar128(largefelem out, limb scalar) | 287 | felem_scalar128(largefelem out, limb scalar) |
288 | { | 288 | { |
289 | out[0] *= scalar; | 289 | out[0] *= scalar; |
@@ -303,7 +303,7 @@ felem_scalar128(largefelem out, limb scalar) | |||
303 | * On exit: | 303 | * On exit: |
304 | * out[i] < 2^62 | 304 | * out[i] < 2^62 |
305 | */ | 305 | */ |
306 | static void | 306 | static void |
307 | felem_neg(felem out, const felem in) | 307 | felem_neg(felem out, const felem in) |
308 | { | 308 | { |
309 | /* In order to prevent underflow, we subtract from 0 mod p. */ | 309 | /* In order to prevent underflow, we subtract from 0 mod p. */ |
@@ -327,7 +327,7 @@ felem_neg(felem out, const felem in) | |||
327 | * On exit: | 327 | * On exit: |
328 | * out[i] < out[i] + 2^62 | 328 | * out[i] < out[i] + 2^62 |
329 | */ | 329 | */ |
330 | static void | 330 | static void |
331 | felem_diff64(felem out, const felem in) | 331 | felem_diff64(felem out, const felem in) |
332 | { | 332 | { |
333 | /* In order to prevent underflow, we add 0 mod p before subtracting. */ | 333 | /* In order to prevent underflow, we add 0 mod p before subtracting. */ |
@@ -351,7 +351,7 @@ felem_diff64(felem out, const felem in) | |||
351 | * On exit: | 351 | * On exit: |
352 | * out[i] < out[i] + 2^63 | 352 | * out[i] < out[i] + 2^63 |
353 | */ | 353 | */ |
354 | static void | 354 | static void |
355 | felem_diff_128_64(largefelem out, const felem in) | 355 | felem_diff_128_64(largefelem out, const felem in) |
356 | { | 356 | { |
357 | /* In order to prevent underflow, we add 0 mod p before subtracting. */ | 357 | /* In order to prevent underflow, we add 0 mod p before subtracting. */ |
@@ -375,7 +375,7 @@ felem_diff_128_64(largefelem out, const felem in) | |||
375 | * On exit: | 375 | * On exit: |
376 | * out[i] < out[i] + 2^127 - 2^69 | 376 | * out[i] < out[i] + 2^127 - 2^69 |
377 | */ | 377 | */ |
378 | static void | 378 | static void |
379 | felem_diff128(largefelem out, const largefelem in) | 379 | felem_diff128(largefelem out, const largefelem in) |
380 | { | 380 | { |
381 | /* In order to prevent underflow, we add 0 mod p before subtracting. */ | 381 | /* In order to prevent underflow, we add 0 mod p before subtracting. */ |
@@ -399,7 +399,7 @@ felem_diff128(largefelem out, const largefelem in) | |||
399 | * On exit: | 399 | * On exit: |
400 | * out[i] < 17 * max(in[i]) * max(in[i]) | 400 | * out[i] < 17 * max(in[i]) * max(in[i]) |
401 | */ | 401 | */ |
402 | static void | 402 | static void |
403 | felem_square(largefelem out, const felem in) | 403 | felem_square(largefelem out, const felem in) |
404 | { | 404 | { |
405 | felem inx2, inx4; | 405 | felem inx2, inx4; |
@@ -493,7 +493,7 @@ felem_square(largefelem out, const felem in) | |||
493 | * On exit: | 493 | * On exit: |
494 | * out[i] < 17 * max(in1[i]) * max(in2[i]) | 494 | * out[i] < 17 * max(in1[i]) * max(in2[i]) |
495 | */ | 495 | */ |
496 | static void | 496 | static void |
497 | felem_mul(largefelem out, const felem in1, const felem in2) | 497 | felem_mul(largefelem out, const felem in1, const felem in2) |
498 | { | 498 | { |
499 | felem in2x2; | 499 | felem in2x2; |
@@ -608,7 +608,7 @@ static const limb bottom52bits = 0xfffffffffffff; | |||
608 | * On exit: | 608 | * On exit: |
609 | * out[i] < 2^59 + 2^14 | 609 | * out[i] < 2^59 + 2^14 |
610 | */ | 610 | */ |
611 | static void | 611 | static void |
612 | felem_reduce(felem out, const largefelem in) | 612 | felem_reduce(felem out, const largefelem in) |
613 | { | 613 | { |
614 | u64 overflow1, overflow2; | 614 | u64 overflow1, overflow2; |
@@ -680,7 +680,7 @@ felem_reduce(felem out, const largefelem in) | |||
680 | */ | 680 | */ |
681 | } | 681 | } |
682 | 682 | ||
683 | static void | 683 | static void |
684 | felem_square_reduce(felem out, const felem in) | 684 | felem_square_reduce(felem out, const felem in) |
685 | { | 685 | { |
686 | largefelem tmp; | 686 | largefelem tmp; |
@@ -688,7 +688,7 @@ felem_square_reduce(felem out, const felem in) | |||
688 | felem_reduce(out, tmp); | 688 | felem_reduce(out, tmp); |
689 | } | 689 | } |
690 | 690 | ||
691 | static void | 691 | static void |
692 | felem_mul_reduce(felem out, const felem in1, const felem in2) | 692 | felem_mul_reduce(felem out, const felem in1, const felem in2) |
693 | { | 693 | { |
694 | largefelem tmp; | 694 | largefelem tmp; |
@@ -703,7 +703,7 @@ felem_mul_reduce(felem out, const felem in1, const felem in2) | |||
703 | * a^{p-1} = 1 (mod p) | 703 | * a^{p-1} = 1 (mod p) |
704 | * a^{p-2} = a^{-1} (mod p) | 704 | * a^{p-2} = a^{-1} (mod p) |
705 | */ | 705 | */ |
706 | static void | 706 | static void |
707 | felem_inv(felem out, const felem in) | 707 | felem_inv(felem out, const felem in) |
708 | { | 708 | { |
709 | felem ftmp, ftmp2, ftmp3, ftmp4; | 709 | felem ftmp, ftmp2, ftmp3, ftmp4; |
@@ -817,7 +817,7 @@ static const felem kPrime = | |||
817 | * On entry: | 817 | * On entry: |
818 | * in[i] < 2^59 + 2^14 | 818 | * in[i] < 2^59 + 2^14 |
819 | */ | 819 | */ |
820 | static limb | 820 | static limb |
821 | felem_is_zero(const felem in) | 821 | felem_is_zero(const felem in) |
822 | { | 822 | { |
823 | felem ftmp; | 823 | felem ftmp; |
@@ -886,7 +886,7 @@ felem_is_zero(const felem in) | |||
886 | return is_zero; | 886 | return is_zero; |
887 | } | 887 | } |
888 | 888 | ||
889 | static int | 889 | static int |
890 | felem_is_zero_int(const felem in) | 890 | felem_is_zero_int(const felem in) |
891 | { | 891 | { |
892 | return (int) (felem_is_zero(in) & ((limb) 1)); | 892 | return (int) (felem_is_zero(in) & ((limb) 1)); |
@@ -896,7 +896,7 @@ felem_is_zero_int(const felem in) | |||
896 | * On entry: | 896 | * On entry: |
897 | * in[i] < 2^59 + 2^14 | 897 | * in[i] < 2^59 + 2^14 |
898 | */ | 898 | */ |
899 | static void | 899 | static void |
900 | felem_contract(felem out, const felem in) | 900 | felem_contract(felem out, const felem in) |
901 | { | 901 | { |
902 | limb is_p, is_greater, sign; | 902 | limb is_p, is_greater, sign; |
@@ -1153,7 +1153,7 @@ copy_conditional(felem out, const felem in, limb mask) | |||
1153 | * are equal (while not equal to the point at infinity). This case never | 1153 | * are equal (while not equal to the point at infinity). This case never |
1154 | * happens during single point multiplication, so there is no timing leak for | 1154 | * happens during single point multiplication, so there is no timing leak for |
1155 | * ECDH or ECDSA signing. */ | 1155 | * ECDH or ECDSA signing. */ |
1156 | static void | 1156 | static void |
1157 | point_add(felem x3, felem y3, felem z3, | 1157 | point_add(felem x3, felem y3, felem z3, |
1158 | const felem x1, const felem y1, const felem z1, | 1158 | const felem x1, const felem y1, const felem z1, |
1159 | const int mixed, const felem x2, const felem y2, const felem z2) | 1159 | const int mixed, const felem x2, const felem y2, const felem z2) |
@@ -1450,7 +1450,7 @@ static const felem gmul[16][3] = | |||
1450 | 1450 | ||
1451 | /* select_point selects the |idx|th point from a precomputation table and | 1451 | /* select_point selects the |idx|th point from a precomputation table and |
1452 | * copies it to out. */ | 1452 | * copies it to out. */ |
1453 | static void | 1453 | static void |
1454 | select_point(const limb idx, unsigned int size, const felem pre_comp[ /* size */ ][3], | 1454 | select_point(const limb idx, unsigned int size, const felem pre_comp[ /* size */ ][3], |
1455 | felem out[3]) | 1455 | felem out[3]) |
1456 | { | 1456 | { |
@@ -1472,7 +1472,7 @@ select_point(const limb idx, unsigned int size, const felem pre_comp[ /* size */ | |||
1472 | } | 1472 | } |
1473 | 1473 | ||
1474 | /* get_bit returns the |i|th bit in |in| */ | 1474 | /* get_bit returns the |i|th bit in |in| */ |
1475 | static char | 1475 | static char |
1476 | get_bit(const felem_bytearray in, int i) | 1476 | get_bit(const felem_bytearray in, int i) |
1477 | { | 1477 | { |
1478 | if (i < 0) | 1478 | if (i < 0) |
@@ -1485,7 +1485,7 @@ get_bit(const felem_bytearray in, int i) | |||
1485 | * the scalars in scalars[]. If g_scalar is non-NULL, we also add this multiple | 1485 | * the scalars in scalars[]. If g_scalar is non-NULL, we also add this multiple |
1486 | * of the generator, using certain (large) precomputed multiples in g_pre_comp. | 1486 | * of the generator, using certain (large) precomputed multiples in g_pre_comp. |
1487 | * Output point (X, Y, Z) is stored in x_out, y_out, z_out */ | 1487 | * Output point (X, Y, Z) is stored in x_out, y_out, z_out */ |
1488 | static void | 1488 | static void |
1489 | batch_mul(felem x_out, felem y_out, felem z_out, | 1489 | batch_mul(felem x_out, felem y_out, felem z_out, |
1490 | const felem_bytearray scalars[], const unsigned num_points, const u8 * g_scalar, | 1490 | const felem_bytearray scalars[], const unsigned num_points, const u8 * g_scalar, |
1491 | const int mixed, const felem pre_comp[][17][3], const felem g_pre_comp[16][3]) | 1491 | const int mixed, const felem pre_comp[][17][3], const felem g_pre_comp[16][3]) |
@@ -1588,20 +1588,20 @@ EC_GFp_nistp521_method(void) | |||
1588 | .group_get_curve = ec_GFp_simple_group_get_curve, | 1588 | .group_get_curve = ec_GFp_simple_group_get_curve, |
1589 | .group_get_degree = ec_GFp_simple_group_get_degree, | 1589 | .group_get_degree = ec_GFp_simple_group_get_degree, |
1590 | .group_check_discriminant = | 1590 | .group_check_discriminant = |
1591 | ec_GFp_simple_group_check_discriminant, | 1591 | ec_GFp_simple_group_check_discriminant, |
1592 | .point_init = ec_GFp_simple_point_init, | 1592 | .point_init = ec_GFp_simple_point_init, |
1593 | .point_finish = ec_GFp_simple_point_finish, | 1593 | .point_finish = ec_GFp_simple_point_finish, |
1594 | .point_clear_finish = ec_GFp_simple_point_clear_finish, | 1594 | .point_clear_finish = ec_GFp_simple_point_clear_finish, |
1595 | .point_copy = ec_GFp_simple_point_copy, | 1595 | .point_copy = ec_GFp_simple_point_copy, |
1596 | .point_set_to_infinity = ec_GFp_simple_point_set_to_infinity, | 1596 | .point_set_to_infinity = ec_GFp_simple_point_set_to_infinity, |
1597 | .point_set_Jprojective_coordinates = | 1597 | .point_set_Jprojective_coordinates = |
1598 | ec_GFp_simple_set_Jprojective_coordinates, | 1598 | ec_GFp_simple_set_Jprojective_coordinates, |
1599 | .point_get_Jprojective_coordinates = | 1599 | .point_get_Jprojective_coordinates = |
1600 | ec_GFp_simple_get_Jprojective_coordinates, | 1600 | ec_GFp_simple_get_Jprojective_coordinates, |
1601 | .point_set_affine_coordinates = | 1601 | .point_set_affine_coordinates = |
1602 | ec_GFp_simple_point_set_affine_coordinates, | 1602 | ec_GFp_simple_point_set_affine_coordinates, |
1603 | .point_get_affine_coordinates = | 1603 | .point_get_affine_coordinates = |
1604 | ec_GFp_nistp521_point_get_affine_coordinates, | 1604 | ec_GFp_nistp521_point_get_affine_coordinates, |
1605 | .add = ec_GFp_simple_add, | 1605 | .add = ec_GFp_simple_add, |
1606 | .dbl = ec_GFp_simple_dbl, | 1606 | .dbl = ec_GFp_simple_dbl, |
1607 | .invert = ec_GFp_simple_invert, | 1607 | .invert = ec_GFp_simple_invert, |
@@ -1651,7 +1651,7 @@ nistp521_pre_comp_dup(void *src_) | |||
1651 | return src_; | 1651 | return src_; |
1652 | } | 1652 | } |
1653 | 1653 | ||
1654 | static void | 1654 | static void |
1655 | nistp521_pre_comp_free(void *pre_) | 1655 | nistp521_pre_comp_free(void *pre_) |
1656 | { | 1656 | { |
1657 | int i; | 1657 | int i; |
@@ -1667,7 +1667,7 @@ nistp521_pre_comp_free(void *pre_) | |||
1667 | free(pre); | 1667 | free(pre); |
1668 | } | 1668 | } |
1669 | 1669 | ||
1670 | static void | 1670 | static void |
1671 | nistp521_pre_comp_clear_free(void *pre_) | 1671 | nistp521_pre_comp_clear_free(void *pre_) |
1672 | { | 1672 | { |
1673 | int i; | 1673 | int i; |
@@ -1687,7 +1687,7 @@ nistp521_pre_comp_clear_free(void *pre_) | |||
1687 | /* OPENSSL EC_METHOD FUNCTIONS | 1687 | /* OPENSSL EC_METHOD FUNCTIONS |
1688 | */ | 1688 | */ |
1689 | 1689 | ||
1690 | int | 1690 | int |
1691 | ec_GFp_nistp521_group_init(EC_GROUP * group) | 1691 | ec_GFp_nistp521_group_init(EC_GROUP * group) |
1692 | { | 1692 | { |
1693 | int ret; | 1693 | int ret; |
@@ -1696,7 +1696,7 @@ ec_GFp_nistp521_group_init(EC_GROUP * group) | |||
1696 | return ret; | 1696 | return ret; |
1697 | } | 1697 | } |
1698 | 1698 | ||
1699 | int | 1699 | int |
1700 | ec_GFp_nistp521_group_set_curve(EC_GROUP * group, const BIGNUM * p, | 1700 | ec_GFp_nistp521_group_set_curve(EC_GROUP * group, const BIGNUM * p, |
1701 | const BIGNUM * a, const BIGNUM * b, BN_CTX * ctx) | 1701 | const BIGNUM * a, const BIGNUM * b, BN_CTX * ctx) |
1702 | { | 1702 | { |
@@ -1730,7 +1730,7 @@ ec_GFp_nistp521_group_set_curve(EC_GROUP * group, const BIGNUM * p, | |||
1730 | 1730 | ||
1731 | /* Takes the Jacobian coordinates (X, Y, Z) of a point and returns | 1731 | /* Takes the Jacobian coordinates (X, Y, Z) of a point and returns |
1732 | * (X', Y') = (X/Z^2, Y/Z^3) */ | 1732 | * (X', Y') = (X/Z^2, Y/Z^3) */ |
1733 | int | 1733 | int |
1734 | ec_GFp_nistp521_point_get_affine_coordinates(const EC_GROUP * group, | 1734 | ec_GFp_nistp521_point_get_affine_coordinates(const EC_GROUP * group, |
1735 | const EC_POINT * point, BIGNUM * x, BIGNUM * y, BN_CTX * ctx) | 1735 | const EC_POINT * point, BIGNUM * x, BIGNUM * y, BN_CTX * ctx) |
1736 | { | 1736 | { |
@@ -1770,7 +1770,7 @@ ec_GFp_nistp521_point_get_affine_coordinates(const EC_GROUP * group, | |||
1770 | return 1; | 1770 | return 1; |
1771 | } | 1771 | } |
1772 | 1772 | ||
1773 | static void | 1773 | static void |
1774 | make_points_affine(size_t num, felem points[ /* num */ ][3], felem tmp_felems[ /* num+1 */ ]) | 1774 | make_points_affine(size_t num, felem points[ /* num */ ][3], felem tmp_felems[ /* num+1 */ ]) |
1775 | { | 1775 | { |
1776 | /* | 1776 | /* |
@@ -1793,7 +1793,7 @@ make_points_affine(size_t num, felem points[ /* num */ ][3], felem tmp_felems[ / | |||
1793 | 1793 | ||
1794 | /* Computes scalar*generator + \sum scalars[i]*points[i], ignoring NULL values | 1794 | /* Computes scalar*generator + \sum scalars[i]*points[i], ignoring NULL values |
1795 | * Result is stored in r (r can equal one of the inputs). */ | 1795 | * Result is stored in r (r can equal one of the inputs). */ |
1796 | int | 1796 | int |
1797 | ec_GFp_nistp521_points_mul(const EC_GROUP * group, EC_POINT * r, | 1797 | ec_GFp_nistp521_points_mul(const EC_GROUP * group, EC_POINT * r, |
1798 | const BIGNUM * scalar, size_t num, const EC_POINT * points[], | 1798 | const BIGNUM * scalar, size_t num, const EC_POINT * points[], |
1799 | const BIGNUM * scalars[], BN_CTX * ctx) | 1799 | const BIGNUM * scalars[], BN_CTX * ctx) |
@@ -1990,7 +1990,7 @@ ec_GFp_nistp521_points_mul(const EC_GROUP * group, EC_POINT * r, | |||
1990 | return ret; | 1990 | return ret; |
1991 | } | 1991 | } |
1992 | 1992 | ||
1993 | int | 1993 | int |
1994 | ec_GFp_nistp521_precompute_mult(EC_GROUP * group, BN_CTX * ctx) | 1994 | ec_GFp_nistp521_precompute_mult(EC_GROUP * group, BN_CTX * ctx) |
1995 | { | 1995 | { |
1996 | int ret = 0; | 1996 | int ret = 0; |
@@ -2097,7 +2097,7 @@ ec_GFp_nistp521_precompute_mult(EC_GROUP * group, BN_CTX * ctx) | |||
2097 | return ret; | 2097 | return ret; |
2098 | } | 2098 | } |
2099 | 2099 | ||
2100 | int | 2100 | int |
2101 | ec_GFp_nistp521_have_precompute_mult(const EC_GROUP * group) | 2101 | ec_GFp_nistp521_have_precompute_mult(const EC_GROUP * group) |
2102 | { | 2102 | { |
2103 | if (EC_EX_DATA_get_data(group->extra_data, nistp521_pre_comp_dup, | 2103 | if (EC_EX_DATA_get_data(group->extra_data, nistp521_pre_comp_dup, |