From a428ac47501745485837633e28ca2fe32a12a66b Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Mon, 24 Jan 2011 15:04:34 +0000 Subject: [PATCH] check EC public key isn't point at infinity --- crypto/ec/Makefile | 2 +- crypto/ec/ec_key.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/crypto/ec/Makefile b/crypto/ec/Makefile index 51f56936fc..13c1345e3a 100644 --- a/crypto/ec/Makefile +++ b/crypto/ec/Makefile @@ -38,7 +38,7 @@ top: all: lib lib: $(LIBOBJ) - $(AR) $(LIB) $(LIBOBJ) + $(ARX) $(LIB) $(LIBOBJ) $(RANLIB) $(LIB) || echo Never mind. @touch lib diff --git a/crypto/ec/ec_key.c b/crypto/ec/ec_key.c index 12fb0e6d6d..86e6cec06d 100644 --- a/crypto/ec/ec_key.c +++ b/crypto/ec/ec_key.c @@ -304,6 +304,12 @@ int EC_KEY_check_key(const EC_KEY *eckey) ECerr(EC_F_EC_KEY_CHECK_KEY, ERR_R_PASSED_NULL_PARAMETER); return 0; } + + if (EC_POINT_is_at_infinity(eckey->group, eckey->pub_key)) + { + ECerr(EC_F_EC_KEY_CHECK_KEY, EC_R_POINT_AT_INFINITY); + goto err; + } if ((ctx = BN_CTX_new()) == NULL) goto err;