Merge pull request #733 from alex/more-ec-names

Expose EC_get_builtin_curves
diff --git a/cryptography/hazmat/bindings/openssl/ec.py b/cryptography/hazmat/bindings/openssl/ec.py
index c054a3b..22de56d 100644
--- a/cryptography/hazmat/bindings/openssl/ec.py
+++ b/cryptography/hazmat/bindings/openssl/ec.py
@@ -23,6 +23,7 @@
 static const int Cryptography_HAS_EC;
 
 typedef ... EC_KEY;
+typedef ... EC_builtin_curve;
 
 static const int NID_X9_62_c2pnb163v1;
 static const int NID_X9_62_c2pnb163v2;
@@ -175,16 +176,27 @@
 MACROS = """
 EC_KEY *EC_KEY_new_by_curve_name(int);
 void EC_KEY_free(EC_KEY *);
+
+size_t EC_get_builtin_curves(EC_builtin_curve *, size_t);
+
+int Cryptography_EC_builtin_curve_get_nid(EC_builtin_curve *);
 """
 
 CUSTOMIZATIONS = """
 #ifdef OPENSSL_NO_EC
 static const long Cryptography_HAS_EC = 0;
 typedef void EC_KEY;
+typedef void EC_builtin_curve;
 EC_KEY* (*EC_KEY_new_by_curve_name)(int) = NULL;
 void (*EC_KEY_free)(EC_KEY *) = NULL;
+size_t (*EC_get_builtin_curves)(EC_builtin_curve *, size_t) = NULL;
+int (*Cryptography_EC_builtin_curve_get_nid)(EC_builtin_curve *) = NULL;
 #else
 static const long Cryptography_HAS_EC = 1;
+
+int Cryptography_EC_builtin_curve_get_nid(EC_builtin_curve *c) {
+    return c->nid;
+}
 #endif
 """
 
@@ -192,5 +204,8 @@
     "Cryptography_HAS_EC": [
         "EC_KEY_new_by_curve_name",
         "EC_KEY_free",
+        "EC_get_builtin_curves",
+
+        "Cryptography_EC_builtin_curve_get_nid",
     ],
 }