move ECC ASN1 that is not specific to ECDSA into crypto/ec/,
and make some appropriate changes to the EC library.

Submitted by: Nils Larsch
diff --git a/crypto/ec/ec_lcl.h b/crypto/ec/ec_lcl.h
index 79655e3..b9f6fcb 100644
--- a/crypto/ec/ec_lcl.h
+++ b/crypto/ec/ec_lcl.h
@@ -56,6 +56,7 @@
 
 #include <stdlib.h>
 
+#include <openssl/obj_mac.h>
 #include <openssl/ec.h>
 
 
@@ -63,6 +64,9 @@
  * so all this may change in future versions. */
 
 struct ec_method_st {
+	/* used by EC_METHOD_get_field_type: */
+        int field_type; /* a NID */
+
 	/* used by EC_GROUP_new, EC_GROUP_free, EC_GROUP_clear_free, EC_GROUP_copy: */
 	int (*group_init)(EC_GROUP *);
 	void (*group_finish)(EC_GROUP *);
@@ -140,13 +144,17 @@
 	EC_POINT *generator; /* optional */
 	BIGNUM order, cofactor;
 
-	int nid; /* optional NID for named curve */
+	int nid;       /* optional NID for named curve */
+	int asn1_flag; /* flag to control the asn1 encoding */
 
 	void *extra_data;
 	void *(*extra_data_dup_func)(void *);
 	void (*extra_data_free_func)(void *);
 	void (*extra_data_clear_free_func)(void *);
 
+	unsigned char *seed; /* XXX */
+	size_t seed_len;     /* XXX */
+
 	/* The following members are handled by the method functions,
 	 * even if they appear generic */