PR: 1612
authorDr. Stephen Henson <steve@openssl.org>
Mon, 24 Jan 2011 14:41:34 +0000 (14:41 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 24 Jan 2011 14:41:34 +0000 (14:41 +0000)
Submitted by: Robert Jackson <robert@rjsweb.net>
Reviewed by: steve

Fix EC_POINT_cmp function for case where b but not a is the point at infinity.

crypto/ec/ec2_smpl.c
crypto/ec/ecp_smpl.c

index cf357b462a27bcda50ff8f600bdfcf9635dab1e6..af94458ca7bab35d41cf137d317cd6f3fdb8dc47 100644 (file)
@@ -937,6 +937,9 @@ int ec_GF2m_simple_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT
                {
                return EC_POINT_is_at_infinity(group, b) ? 0 : 1;
                }
+
+       if (EC_POINT_is_at_infinity(group, b))
+               return 1;
        
        if (a->Z_is_one && b->Z_is_one)
                {
index 4d26f8bdf6921f4ae9a9e5be06fbde3f54b55628..66a92e2a9005c51688cbfcfd86ed048845ae6c14 100644 (file)
@@ -1406,6 +1406,9 @@ int ec_GFp_simple_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *
                {
                return EC_POINT_is_at_infinity(group, b) ? 0 : 1;
                }
+
+       if (EC_POINT_is_at_infinity(group, b))
+               return 1;
        
        if (a->Z_is_one && b->Z_is_one)
                {