Make no-ec2m work again.
authorDr. Stephen Henson <steve@openssl.org>
Thu, 10 Mar 2011 01:00:30 +0000 (01:00 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 10 Mar 2011 01:00:30 +0000 (01:00 +0000)
crypto/ec/ec_oct.c
fips/ecdh/fips_ecdhvs.c
fips/ecdsa/fips_ecdsavs.c

index 606e094..fd9db07 100644 (file)
@@ -88,8 +88,15 @@ int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, EC_POINT *poi
                        return ec_GFp_simple_set_compressed_coordinates(
                                        group, point, x, y_bit, ctx);
                else
+#ifdef OPENSSL_NO_EC2M
+                       {
+                       ECerr(EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP, EC_R_GF2M_NOT_SUPPORTED);
+                       return 0;
+                       }
+#else
                        return ec_GF2m_simple_set_compressed_coordinates(
                                        group, point, x, y_bit, ctx);
+#endif
                }
        return group->meth->point_set_compressed_coordinates(group, point, x, y_bit, ctx);
        }
@@ -142,8 +149,15 @@ size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *point, point_co
                        return ec_GFp_simple_point2oct(group, point,
                                                        form, buf, len, ctx);
                else
+#ifdef OPENSSL_NO_EC2M
+                       {
+                       ECerr(EC_F_EC_POINT_POINT2OCT, EC_R_GF2M_NOT_SUPPORTED);
+                       return 0;
+                       }
+#else
                        return ec_GF2m_simple_point2oct(group, point,
                                                        form, buf, len, ctx);
+#endif
                }
                        
        return group->meth->point2oct(group, point, form, buf, len, ctx);
@@ -170,8 +184,15 @@ int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *point,
                        return ec_GFp_simple_oct2point(group, point,
                                                        buf, len, ctx);
                else
+#ifdef OPENSSL_NO_EC2M
+                       {
+                       ECerr(EC_F_EC_POINT_OCT2POINT, EC_R_GF2M_NOT_SUPPORTED);
+                       return 0;
+                       }
+#else
                        return ec_GF2m_simple_oct2point(group, point,
                                                        buf, len, ctx);
+#endif
                }
        return group->meth->oct2point(group, point, buf, len, ctx);
        }
index 3182f6e..c68daf2 100644 (file)
@@ -171,10 +171,17 @@ static EC_POINT *make_peer(EC_GROUP *group, BIGNUM *x, BIGNUM *y)
                return NULL;
        c = BN_CTX_new();
        if (EC_METHOD_get_field_type(EC_GROUP_method_of(group))
-               == NID_X9_62_characteristic_two_field)
-               rv = EC_POINT_set_affine_coordinates_GF2m(group, peer, x, y, c);
-       else
+               == NID_X9_62_prime_field)
                rv = EC_POINT_set_affine_coordinates_GFp(group, peer, x, y, c);
+       else
+#ifdef OPENSSL_NO_EC2M
+               {
+               fprintf(stderr, "ERROR: GF2m not supported\n");
+               exit(1);
+               }
+#else
+               rv = EC_POINT_set_affine_coordinates_GF2m(group, peer, x, y, c);
+#endif
 
        BN_CTX_free(c);
        if (rv)
@@ -204,7 +211,14 @@ static int ec_print_pubkey(FILE *out, EC_KEY *key)
        if (EC_METHOD_get_field_type(meth) == NID_X9_62_prime_field)
                rv = EC_POINT_get_affine_coordinates_GFp(grp, pt, tx, ty, ctx);
        else
+#ifdef OPENSSL_NO_EC2M
+               {
+               fprintf(stderr, "ERROR: GF2m not supported\n");
+               exit(1);
+               }
+#else
                rv = EC_POINT_get_affine_coordinates_GF2m(grp, pt, tx, ty, ctx);
+#endif
 
        do_bn_print_name(out, "QeIUTx", tx);
        do_bn_print_name(out, "QeIUTy", ty);
index f67f075..379df65 100644 (file)
@@ -169,7 +169,14 @@ static int ec_get_pubkey(EC_KEY *key, BIGNUM *x, BIGNUM *y)
        if (EC_METHOD_get_field_type(meth) == NID_X9_62_prime_field)
                rv = EC_POINT_get_affine_coordinates_GFp(grp, pt, x, y, ctx);
        else
+#ifdef OPENSSL_NO_EC2M
+               {
+               fprintf(stderr, "ERROR: GF2m not supported\n");
+               exit(1);
+               }
+#else
                rv = EC_POINT_get_affine_coordinates_GF2m(grp, pt, x, y, ctx);
+#endif
 
        BN_CTX_free(ctx);