summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2011-01-24 15:07:47 +0000
committerDr. Stephen Henson <steve@openssl.org>2011-01-24 15:07:47 +0000
commitd184c7b2718bd0c5c32f24ba24cf03a8ce8a588e (patch)
treebcbd85127818caac00ac742e4712ec7f06ee2595
parent913488c066998bfecaf5254f3dc60fc62cd1c6ac (diff)
check EC public key isn't point at infinity
-rw-r--r--crypto/ec/ec_key.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/crypto/ec/ec_key.c b/crypto/ec/ec_key.c
index 12fb0e6d6d..522802c07a 100644
--- a/crypto/ec/ec_key.c
+++ b/crypto/ec/ec_key.c
@@ -304,7 +304,13 @@ 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;
if ((point = EC_POINT_new(eckey->group)) == NULL)