PR: 1612
authorDr. Stephen Henson <steve@openssl.org>
Mon, 24 Jan 2011 14:42:11 +0000 (14:42 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 24 Jan 2011 14:42:11 +0000 (14:42 +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 522d036ca1daf78aafb9f59543584ff580637840..1aae1997d8d21a07953fffb67b25c4fa22672f3c 100644 (file)
@@ -871,6 +871,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)
                {