diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/ec/ec.h | 10 | ||||
| -rw-r--r-- | src/lib/libcrypto/ec/ec_asn1.c | 8 | ||||
| -rw-r--r-- | src/lib/libcrypto/ec/ec_cvt.c | 8 | ||||
| -rw-r--r-- | src/lib/libcrypto/ec/ec_lcl.h | 5 | ||||
| -rw-r--r-- | src/lib/libcrypto/ec/ec_lib.c | 55 | ||||
| -rw-r--r-- | src/lib/libcrypto/ec/eck_prn.c | 6 |
6 files changed, 51 insertions, 41 deletions
diff --git a/src/lib/libcrypto/ec/ec.h b/src/lib/libcrypto/ec/ec.h index a95d99f6a9..a6ae3e3ac3 100644 --- a/src/lib/libcrypto/ec/ec.h +++ b/src/lib/libcrypto/ec/ec.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec.h,v 1.18 2019/09/29 10:09:09 tb Exp $ */ | 1 | /* $OpenBSD: ec.h,v 1.19 2021/04/20 17:04:13 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Originally written by Bodo Moeller for the OpenSSL project. | 3 | * Originally written by Bodo Moeller for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -280,6 +280,12 @@ unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); | |||
| 280 | size_t EC_GROUP_get_seed_len(const EC_GROUP *); | 280 | size_t EC_GROUP_get_seed_len(const EC_GROUP *); |
| 281 | size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); | 281 | size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); |
| 282 | 282 | ||
| 283 | #if defined(LIBRESSL_INTERNAL) | ||
| 284 | int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, | ||
| 285 | const BIGNUM *b, BN_CTX *ctx); | ||
| 286 | int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, | ||
| 287 | BN_CTX *ctx); | ||
| 288 | #else | ||
| 283 | /** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b | 289 | /** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b |
| 284 | * \param group EC_GROUP object | 290 | * \param group EC_GROUP object |
| 285 | * \param p BIGNUM with the prime number | 291 | * \param p BIGNUM with the prime number |
| @@ -321,6 +327,8 @@ int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, c | |||
| 321 | */ | 327 | */ |
| 322 | int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); | 328 | int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); |
| 323 | #endif | 329 | #endif |
| 330 | #endif | ||
| 331 | |||
| 324 | /** Returns the number of bits needed to represent a field element | 332 | /** Returns the number of bits needed to represent a field element |
| 325 | * \param group EC_GROUP object | 333 | * \param group EC_GROUP object |
| 326 | * \return number of bits needed to represent a field element | 334 | * \return number of bits needed to represent a field element |
diff --git a/src/lib/libcrypto/ec/ec_asn1.c b/src/lib/libcrypto/ec/ec_asn1.c index f69dd023de..65bb007cae 100644 --- a/src/lib/libcrypto/ec/ec_asn1.c +++ b/src/lib/libcrypto/ec/ec_asn1.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_asn1.c,v 1.31 2018/09/01 16:23:15 tb Exp $ */ | 1 | /* $OpenBSD: ec_asn1.c,v 1.32 2021/04/20 17:04:13 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -709,7 +709,7 @@ ec_asn1_group2fieldid(const EC_GROUP * group, X9_62_FIELDID * field) | |||
| 709 | goto err; | 709 | goto err; |
| 710 | } | 710 | } |
| 711 | /* the parameters are specified by the prime number p */ | 711 | /* the parameters are specified by the prime number p */ |
| 712 | if (!EC_GROUP_get_curve_GFp(group, tmp, NULL, NULL, NULL)) { | 712 | if (!EC_GROUP_get_curve(group, tmp, NULL, NULL, NULL)) { |
| 713 | ECerror(ERR_R_EC_LIB); | 713 | ECerror(ERR_R_EC_LIB); |
| 714 | goto err; | 714 | goto err; |
| 715 | } | 715 | } |
| @@ -819,14 +819,14 @@ ec_asn1_group2curve(const EC_GROUP * group, X9_62_CURVE * curve) | |||
| 819 | 819 | ||
| 820 | /* get a and b */ | 820 | /* get a and b */ |
| 821 | if (nid == NID_X9_62_prime_field) { | 821 | if (nid == NID_X9_62_prime_field) { |
| 822 | if (!EC_GROUP_get_curve_GFp(group, NULL, tmp_1, tmp_2, NULL)) { | 822 | if (!EC_GROUP_get_curve(group, NULL, tmp_1, tmp_2, NULL)) { |
| 823 | ECerror(ERR_R_EC_LIB); | 823 | ECerror(ERR_R_EC_LIB); |
| 824 | goto err; | 824 | goto err; |
| 825 | } | 825 | } |
| 826 | } | 826 | } |
| 827 | #ifndef OPENSSL_NO_EC2M | 827 | #ifndef OPENSSL_NO_EC2M |
| 828 | else { /* nid == NID_X9_62_characteristic_two_field */ | 828 | else { /* nid == NID_X9_62_characteristic_two_field */ |
| 829 | if (!EC_GROUP_get_curve_GF2m(group, NULL, tmp_1, tmp_2, NULL)) { | 829 | if (!EC_GROUP_get_curve(group, NULL, tmp_1, tmp_2, NULL)) { |
| 830 | ECerror(ERR_R_EC_LIB); | 830 | ECerror(ERR_R_EC_LIB); |
| 831 | goto err; | 831 | goto err; |
| 832 | } | 832 | } |
diff --git a/src/lib/libcrypto/ec/ec_cvt.c b/src/lib/libcrypto/ec/ec_cvt.c index a0982064b8..05c7dd1bf1 100644 --- a/src/lib/libcrypto/ec/ec_cvt.c +++ b/src/lib/libcrypto/ec/ec_cvt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_cvt.c,v 1.6 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: ec_cvt.c,v 1.7 2021/04/20 17:04:13 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Originally written by Bodo Moeller for the OpenSSL project. | 3 | * Originally written by Bodo Moeller for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -112,7 +112,7 @@ EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, | |||
| 112 | if (ret == NULL) | 112 | if (ret == NULL) |
| 113 | return NULL; | 113 | return NULL; |
| 114 | 114 | ||
| 115 | if (!EC_GROUP_set_curve_GFp(ret, p, a, b, ctx)) { | 115 | if (!EC_GROUP_set_curve(ret, p, a, b, ctx)) { |
| 116 | unsigned long err; | 116 | unsigned long err; |
| 117 | 117 | ||
| 118 | err = ERR_peek_last_error(); | 118 | err = ERR_peek_last_error(); |
| @@ -136,7 +136,7 @@ EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, | |||
| 136 | if (ret == NULL) | 136 | if (ret == NULL) |
| 137 | return NULL; | 137 | return NULL; |
| 138 | 138 | ||
| 139 | if (!EC_GROUP_set_curve_GFp(ret, p, a, b, ctx)) { | 139 | if (!EC_GROUP_set_curve(ret, p, a, b, ctx)) { |
| 140 | EC_GROUP_clear_free(ret); | 140 | EC_GROUP_clear_free(ret); |
| 141 | return NULL; | 141 | return NULL; |
| 142 | } | 142 | } |
| @@ -158,7 +158,7 @@ EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, | |||
| 158 | if (ret == NULL) | 158 | if (ret == NULL) |
| 159 | return NULL; | 159 | return NULL; |
| 160 | 160 | ||
| 161 | if (!EC_GROUP_set_curve_GF2m(ret, p, a, b, ctx)) { | 161 | if (!EC_GROUP_set_curve(ret, p, a, b, ctx)) { |
| 162 | EC_GROUP_clear_free(ret); | 162 | EC_GROUP_clear_free(ret); |
| 163 | return NULL; | 163 | return NULL; |
| 164 | } | 164 | } |
diff --git a/src/lib/libcrypto/ec/ec_lcl.h b/src/lib/libcrypto/ec/ec_lcl.h index 8948e51d69..f689428852 100644 --- a/src/lib/libcrypto/ec/ec_lcl.h +++ b/src/lib/libcrypto/ec/ec_lcl.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_lcl.h,v 1.13 2019/01/19 01:12:48 tb Exp $ */ | 1 | /* $OpenBSD: ec_lcl.h,v 1.14 2021/04/20 17:04:13 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Originally written by Bodo Moeller for the OpenSSL project. | 3 | * Originally written by Bodo Moeller for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -105,8 +105,7 @@ struct ec_method_st { | |||
| 105 | void (*group_clear_finish)(EC_GROUP *); | 105 | void (*group_clear_finish)(EC_GROUP *); |
| 106 | int (*group_copy)(EC_GROUP *, const EC_GROUP *); | 106 | int (*group_copy)(EC_GROUP *, const EC_GROUP *); |
| 107 | 107 | ||
| 108 | /* used by EC_GROUP_set_curve_GFp, EC_GROUP_get_curve_GFp, */ | 108 | /* used by EC_GROUP_{get,set}_curve */ |
| 109 | /* EC_GROUP_set_curve_GF2m, and EC_GROUP_get_curve_GF2m: */ | ||
| 110 | int (*group_set_curve)(EC_GROUP *, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *); | 109 | int (*group_set_curve)(EC_GROUP *, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *); |
| 111 | int (*group_get_curve)(const EC_GROUP *, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *); | 110 | int (*group_get_curve)(const EC_GROUP *, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *); |
| 112 | 111 | ||
diff --git a/src/lib/libcrypto/ec/ec_lib.c b/src/lib/libcrypto/ec/ec_lib.c index 3442c7a324..67db821ec4 100644 --- a/src/lib/libcrypto/ec/ec_lib.c +++ b/src/lib/libcrypto/ec/ec_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_lib.c,v 1.33 2020/12/04 08:55:30 tb Exp $ */ | 1 | /* $OpenBSD: ec_lib.c,v 1.34 2021/04/20 17:04:13 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Originally written by Bodo Moeller for the OpenSSL project. | 3 | * Originally written by Bodo Moeller for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -488,10 +488,9 @@ EC_GROUP_get_seed_len(const EC_GROUP * group) | |||
| 488 | return group->seed_len; | 488 | return group->seed_len; |
| 489 | } | 489 | } |
| 490 | 490 | ||
| 491 | 491 | int | |
| 492 | int | 492 | EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, |
| 493 | EC_GROUP_set_curve_GFp(EC_GROUP * group, const BIGNUM * p, const BIGNUM * a, | 493 | const BIGNUM *b, BN_CTX *ctx) |
| 494 | const BIGNUM * b, BN_CTX * ctx) | ||
| 495 | { | 494 | { |
| 496 | if (group->meth->group_set_curve == 0) { | 495 | if (group->meth->group_set_curve == 0) { |
| 497 | ECerror(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 496 | ECerror(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
| @@ -500,10 +499,9 @@ EC_GROUP_set_curve_GFp(EC_GROUP * group, const BIGNUM * p, const BIGNUM * a, | |||
| 500 | return group->meth->group_set_curve(group, p, a, b, ctx); | 499 | return group->meth->group_set_curve(group, p, a, b, ctx); |
| 501 | } | 500 | } |
| 502 | 501 | ||
| 503 | 502 | int | |
| 504 | int | 503 | EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, |
| 505 | EC_GROUP_get_curve_GFp(const EC_GROUP * group, BIGNUM * p, BIGNUM * a, | 504 | BN_CTX *ctx) |
| 506 | BIGNUM * b, BN_CTX * ctx) | ||
| 507 | { | 505 | { |
| 508 | if (group->meth->group_get_curve == 0) { | 506 | if (group->meth->group_get_curve == 0) { |
| 509 | ECerror(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 507 | ECerror(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
| @@ -512,28 +510,33 @@ EC_GROUP_get_curve_GFp(const EC_GROUP * group, BIGNUM * p, BIGNUM * a, | |||
| 512 | return group->meth->group_get_curve(group, p, a, b, ctx); | 510 | return group->meth->group_get_curve(group, p, a, b, ctx); |
| 513 | } | 511 | } |
| 514 | 512 | ||
| 515 | #ifndef OPENSSL_NO_EC2M | 513 | int |
| 516 | int | 514 | EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, |
| 517 | EC_GROUP_set_curve_GF2m(EC_GROUP * group, const BIGNUM * p, const BIGNUM * a, | 515 | const BIGNUM *b, BN_CTX *ctx) |
| 518 | const BIGNUM * b, BN_CTX * ctx) | ||
| 519 | { | 516 | { |
| 520 | if (group->meth->group_set_curve == 0) { | 517 | return EC_GROUP_set_curve(group, p, a, b, ctx); |
| 521 | ECerror(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | ||
| 522 | return 0; | ||
| 523 | } | ||
| 524 | return group->meth->group_set_curve(group, p, a, b, ctx); | ||
| 525 | } | 518 | } |
| 526 | 519 | ||
| 520 | int | ||
| 521 | EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, | ||
| 522 | BN_CTX *ctx) | ||
| 523 | { | ||
| 524 | return EC_GROUP_get_curve(group, p, a, b, ctx); | ||
| 525 | } | ||
| 527 | 526 | ||
| 528 | int | 527 | #ifndef OPENSSL_NO_EC2M |
| 529 | EC_GROUP_get_curve_GF2m(const EC_GROUP * group, BIGNUM * p, BIGNUM * a, | 528 | int |
| 530 | BIGNUM * b, BN_CTX * ctx) | 529 | EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, |
| 530 | const BIGNUM *b, BN_CTX *ctx) | ||
| 531 | { | 531 | { |
| 532 | if (group->meth->group_get_curve == 0) { | 532 | return EC_GROUP_set_curve(group, p, a, b, ctx); |
| 533 | ECerror(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 533 | } |
| 534 | return 0; | 534 | |
| 535 | } | 535 | int |
| 536 | return group->meth->group_get_curve(group, p, a, b, ctx); | 536 | EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, |
| 537 | BIGNUM *b, BN_CTX *ctx) | ||
| 538 | { | ||
| 539 | return EC_GROUP_get_curve(group, p, a, b, ctx); | ||
| 537 | } | 540 | } |
| 538 | #endif | 541 | #endif |
| 539 | 542 | ||
diff --git a/src/lib/libcrypto/ec/eck_prn.c b/src/lib/libcrypto/ec/eck_prn.c index be57d875e3..b17908d7fa 100644 --- a/src/lib/libcrypto/ec/eck_prn.c +++ b/src/lib/libcrypto/ec/eck_prn.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: eck_prn.c,v 1.15 2018/07/15 16:27:39 tb Exp $ */ | 1 | /* $OpenBSD: eck_prn.c,v 1.16 2021/04/20 17:04:13 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -216,14 +216,14 @@ ECPKParameters_print(BIO * bp, const EC_GROUP * x, int off) | |||
| 216 | } | 216 | } |
| 217 | #ifndef OPENSSL_NO_EC2M | 217 | #ifndef OPENSSL_NO_EC2M |
| 218 | if (is_char_two) { | 218 | if (is_char_two) { |
| 219 | if (!EC_GROUP_get_curve_GF2m(x, p, a, b, ctx)) { | 219 | if (!EC_GROUP_get_curve(x, p, a, b, ctx)) { |
| 220 | reason = ERR_R_EC_LIB; | 220 | reason = ERR_R_EC_LIB; |
| 221 | goto err; | 221 | goto err; |
| 222 | } | 222 | } |
| 223 | } else /* prime field */ | 223 | } else /* prime field */ |
| 224 | #endif | 224 | #endif |
| 225 | { | 225 | { |
| 226 | if (!EC_GROUP_get_curve_GFp(x, p, a, b, ctx)) { | 226 | if (!EC_GROUP_get_curve(x, p, a, b, ctx)) { |
| 227 | reason = ERR_R_EC_LIB; | 227 | reason = ERR_R_EC_LIB; |
| 228 | goto err; | 228 | goto err; |
| 229 | } | 229 | } |
