check EC public key isn't point at infinity
authorDr. Stephen Henson <steve@openssl.org>
Mon, 24 Jan 2011 15:08:12 +0000 (15:08 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 24 Jan 2011 15:08:12 +0000 (15:08 +0000)
crypto/ec/ec_key.c

index 12fb0e6d6d7378d57e0ec2965f97eb62cd001d6d..522802c07ae13c3c34bb31185da508cf20077233 100644 (file)
@@ -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)