Remove ec hybrid point format

According to rfc5480 and rfc4492 the hybrid format is not allowed
neither in certificates or the tls protocol.

Change-Id: I1d3fb5bef765bc7b58d29bdd60e15247fac4dc7a
Reviewed-on: https://boringssl-review.googlesource.com/2510
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/ec/oct.c b/crypto/ec/oct.c
index 487cc4e..c4729ef 100644
--- a/crypto/ec/oct.c
+++ b/crypto/ec/oct.c
@@ -84,8 +84,7 @@
   size_t field_len, i;
 
   if ((form != POINT_CONVERSION_COMPRESSED) &&
-      (form != POINT_CONVERSION_UNCOMPRESSED) &&
-      (form != POINT_CONVERSION_HYBRID)) {
+      (form != POINT_CONVERSION_UNCOMPRESSED)) {
     OPENSSL_PUT_ERROR(EC, ec_GFp_simple_point2oct, EC_R_INVALID_FORM);
     goto err;
   }
@@ -134,8 +133,7 @@
       goto err;
     }
 
-    if ((form == POINT_CONVERSION_COMPRESSED ||
-         form == POINT_CONVERSION_HYBRID) &&
+    if ((form == POINT_CONVERSION_COMPRESSED) &&
         BN_is_odd(y)) {
       buf[0] = form + 1;
     } else {
@@ -149,8 +147,7 @@
     }
     i += field_len;
 
-    if (form == POINT_CONVERSION_UNCOMPRESSED ||
-        form == POINT_CONVERSION_HYBRID) {
+    if (form == POINT_CONVERSION_UNCOMPRESSED) {
       if (!BN_bn2bin_padded(buf + i, field_len, y)) {
         OPENSSL_PUT_ERROR(EC, ec_GFp_simple_point2oct, ERR_R_INTERNAL_ERROR);
         goto err;
@@ -201,8 +198,7 @@
   y_bit = form & 1;
   form = form & ~1U;
   if ((form != 0) && (form != POINT_CONVERSION_COMPRESSED) &&
-      (form != POINT_CONVERSION_UNCOMPRESSED) &&
-      (form != POINT_CONVERSION_HYBRID)) {
+      (form != POINT_CONVERSION_UNCOMPRESSED)) {
     OPENSSL_PUT_ERROR(EC, ec_GFp_simple_oct2point, EC_R_INVALID_ENCODING);
     return 0;
   }
@@ -258,12 +254,6 @@
       OPENSSL_PUT_ERROR(EC, ec_GFp_simple_oct2point, EC_R_INVALID_ENCODING);
       goto err;
     }
-    if (form == POINT_CONVERSION_HYBRID) {
-      if (y_bit != BN_is_odd(y)) {
-        OPENSSL_PUT_ERROR(EC, ec_GFp_simple_oct2point, EC_R_INVALID_ENCODING);
-        goto err;
-      }
-    }
 
     if (!EC_POINT_set_affine_coordinates_GFp(group, point, x, y, ctx))
       goto err;
diff --git a/include/openssl/ec.h b/include/openssl/ec.h
index 3dca026..630e57b 100644
--- a/include/openssl/ec.h
+++ b/include/openssl/ec.h
@@ -85,10 +85,7 @@
 	 *  which solution of the quadratic equation y is  */
 	POINT_CONVERSION_COMPRESSED = 2,
 	/** the point is encoded as z||x||y, where z is the octet 0x02  */
-	POINT_CONVERSION_UNCOMPRESSED = 4,
-	/** the point is encoded as z||x||y, where the octet z specifies
-         *  which solution of the quadratic equation y is  */
-	POINT_CONVERSION_HYBRID = 6
+	POINT_CONVERSION_UNCOMPRESSED = 4
 } point_conversion_form_t;