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

index 51f56936fc30ee0093a44d9350222bca25c1f5d8..13c1345e3af06d430513268f5e113adacfcbf087 100644 (file)
@@ -38,7 +38,7 @@ top:
 all:   lib
 
 lib:   $(LIBOBJ)
-       $(AR) $(LIB) $(LIBOBJ)
+       $(ARX) $(LIB) $(LIBOBJ)
        $(RANLIB) $(LIB) || echo Never mind.
        @touch lib
 
index 12fb0e6d6d7378d57e0ec2965f97eb62cd001d6d..86e6cec06d817cefdbbfb1eee45f28e785084ddb 100644 (file)
@@ -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;