X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fec%2Fec_check.c;h=aa3532235577118dc3147e824a0ceea48ccdaec3;hb=8a41fa6f9e969c6b58c2bda42631cc238afaf27c;hp=d3f534999e067cdf641ab2dd7764b2902ba641b7;hpb=0f113f3ee4d629ef9a4a30911b22b224772085e5;p=oweals%2Fopenssl.git diff --git a/crypto/ec/ec_check.c b/crypto/ec/ec_check.c index d3f534999e..aa35322355 100644 --- a/crypto/ec/ec_check.c +++ b/crypto/ec/ec_check.c @@ -1,4 +1,3 @@ -/* crypto/ec/ec_check.c */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * @@ -59,7 +58,7 @@ int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx) { int ret = 0; - BIGNUM *order; + const BIGNUM *order; BN_CTX *new_ctx = NULL; EC_POINT *point = NULL; @@ -85,7 +84,7 @@ int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx) ECerr(EC_F_EC_GROUP_CHECK, EC_R_UNDEFINED_GENERATOR); goto err; } - if (!EC_POINT_is_on_curve(group, group->generator, ctx)) { + if (EC_POINT_is_on_curve(group, group->generator, ctx) <= 0) { ECerr(EC_F_EC_GROUP_CHECK, EC_R_POINT_IS_NOT_ON_CURVE); goto err; } @@ -93,7 +92,8 @@ int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx) /* check the order of the generator */ if ((point = EC_POINT_new(group)) == NULL) goto err; - if (!EC_GROUP_get_order(group, order, ctx)) + order = EC_GROUP_get0_order(group); + if (order == NULL) goto err; if (BN_is_zero(order)) { ECerr(EC_F_EC_GROUP_CHECK, EC_R_UNDEFINED_ORDER); @@ -112,9 +112,7 @@ int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx) err: if (ctx != NULL) BN_CTX_end(ctx); - if (new_ctx != NULL) - BN_CTX_free(new_ctx); - if (point) - EC_POINT_free(point); + BN_CTX_free(new_ctx); + EC_POINT_free(point); return ret; }