catacomb-python.h, *.c: Move definitions back into implementation files.
[pyke] / catacomb-python.h
index bf3d426..b0f933a 100644 (file)
@@ -348,7 +348,6 @@ extern PyMethodDef gmap_pymethods[];
 
 /*----- Bytestrings -------------------------------------------------------*/
 
-PyTypeObject *bytestring_pyobj;
 PyObject *bytestring_pywrap(const void *, size_t);
 PyObject *bytestring_pywrapbuf(buf *);
 
@@ -387,19 +386,6 @@ typedef struct field_pyobj {
   field *f;
 } field_pyobj;
 
-extern PyTypeObject *fe_pytype;
-#define FE_PYCHECK(o) PyObject_TypeCheck((o), fe_pytype)
-#define FE_F(o) (((fe_pyobj *)(o))->f)
-#define FE_FOBJ(o) ((PyObject *)(o)->ob_type)
-#define FE_X(o) (((fe_pyobj *)(o))->x)
-extern PyObject *fe_pywrap(PyObject *, mp *);
-
-typedef struct fe_pyobj {
-  PyObject_HEAD
-  field *f;
-  mp *x;
-} fe_pyobj;
-
 extern PyTypeObject *field_pytype;
 extern PyTypeObject *primefield_pytype;
 extern PyTypeObject *niceprimefield_pytype;
@@ -411,8 +397,38 @@ extern PyTypeObject *binnormfield_pytype;
 extern PyObject *field_pywrap(field *);
 extern field *field_copy(field *);
 
+typedef struct fe_pyobj {
+  PyObject_HEAD
+  field *f;
+  mp *x;
+} fe_pyobj;
+
+extern PyTypeObject *fe_pytype;
+#define FE_PYCHECK(o) PyObject_TypeCheck((o), fe_pytype)
+#define FE_F(o) (((fe_pyobj *)(o))->f)
+#define FE_FOBJ(o) ((PyObject *)(o)->ob_type)
+#define FE_X(o) (((fe_pyobj *)(o))->x)
+extern PyObject *fe_pywrap(PyObject *, mp *);
+
 /*----- Elliptic curves ---------------------------------------------------*/
 
+typedef struct eccurve_pyobj {
+  PyHeapTypeObject ty;
+  ec_curve *c;
+  PyObject *fobj;
+} eccurve_pyobj;
+
+extern PyTypeObject *eccurve_pytype;
+extern PyTypeObject *ecprimecurve_pytype;
+extern PyTypeObject *ecprimeprojcurve_pytype;
+extern PyTypeObject *ecbincurve_pytype;
+extern PyTypeObject *ecbinprojcurve_pytype;
+#define ECCURVE_PYCHECK(o) PyObject_TypeCheck((o), eccurve_pytype)
+#define ECCURVE_C(o) (((eccurve_pyobj *)(o))->c)
+#define ECCURVE_FOBJ(o) (((eccurve_pyobj *)(o))->fobj)
+extern PyObject *eccurve_pywrap(PyObject *, ec_curve *);
+extern ec_curve *eccurve_copy(ec_curve *);
+
 typedef struct ecpt_pyobj {
   PyObject_HEAD
   ec_curve *c;
@@ -433,23 +449,6 @@ extern int getecpt(ec_curve *, ec *, PyObject *);
 extern void getecptout(ec *, PyObject *);
 extern int convecpt(PyObject *, void *);
 
-typedef struct eccurve_pyobj {
-  PyHeapTypeObject ty;
-  ec_curve *c;
-  PyObject *fobj;
-} eccurve_pyobj;
-
-extern PyTypeObject *eccurve_pytype;
-extern PyTypeObject *ecprimecurve_pytype;
-extern PyTypeObject *ecprimeprojcurve_pytype;
-extern PyTypeObject *ecbincurve_pytype;
-extern PyTypeObject *ecbinprojcurve_pytype;
-#define ECCURVE_PYCHECK(o) PyObject_TypeCheck((o), eccurve_pytype)
-#define ECCURVE_C(o) (((eccurve_pyobj *)(o))->c)
-#define ECCURVE_FOBJ(o) (((eccurve_pyobj *)(o))->fobj)
-extern PyObject *eccurve_pywrap(PyObject *, ec_curve *);
-extern ec_curve *eccurve_copy(ec_curve *);
-
 typedef struct ecinfo_pyobj {
   PyObject_HEAD
   ec_info ei;
@@ -465,15 +464,6 @@ extern PyObject *ecinfo_pywrap(ec_info *);
 
 /*----- Cyclic groups -----------------------------------------------------*/
 
-typedef struct fginfo_pyobj {
-  PyObject_HEAD
-  gprime_param dp;
-} fginfo_pyobj;
-
-PyTypeObject *fginfo_pytype, *dhinfo_pytype, *bindhinfo_pytype;
-#define FGINFO_DP(fg) (&((fginfo_pyobj *)(fg))->dp)
-PyObject *fginfo_pywrap(gprime_param *, PyTypeObject *);
-
 typedef struct ge_pyobj {
   PyObject_HEAD
   ge *x;
@@ -493,7 +483,6 @@ typedef struct group_pyobj {
 } group_pyobj;
 
 extern PyTypeObject *group_pytype;
-extern PyTypeObject *primegroup_pytype, *bingroup_pytype, *ecgroup_pytype;
 #define GROUP_G(o) (((group_pyobj *)(o))->g)
 extern PyObject *group_pywrap(group *);
 extern group *group_copy(group *);
@@ -508,9 +497,7 @@ typedef struct grand_pyobj {
   grand *r;
 } grand_pyobj;
 
-extern PyTypeObject *grand_pytype, *truerand_pytype;
-extern PyTypeObject *lcrand_pytype,* fibrand_pytype;
-extern PyTypeObject *dsarand_pytype, *bbs_pytype;
+extern PyTypeObject *grand_pytype;
 extern PyObject *rand_pyobj;
 #define GRAND_PYCHECK(o) PyObject_TypeCheck((o), grand_pytype)
 #define GRAND_F(o) (((grand_pyobj *)(o))->f)
@@ -518,161 +505,12 @@ extern PyObject *rand_pyobj;
 extern PyObject *grand_pywrap(grand *, unsigned);
 extern int convgrand(PyObject *, void *);
 
-/*----- Key sizes ---------------------------------------------------------*/
-
-typedef struct keysz_pyobj {
-  PyObject_HEAD
-  int dfl;
-} keysz_pyobj;
-
-typedef struct keyszrange_pyobj {
-  PyObject_HEAD
-  int dfl;
-  int min, max, mod;
-} keyszrange_pyobj;
-
-typedef struct keyszset_pyobj {
-  PyObject_HEAD
-  int dfl;
-  PyObject *set;
-} keyszset_pyobj;
-
-#define KEYSZ_PYCHECK(o) PyObject_TypeCheck((o), keysz_pytype)
-extern PyObject *keysz_pywrap(const octet *);
-
 /*----- Symmetric cryptography --------------------------------------------*/
 
-typedef struct gccipher_pyobj {
-  PyHeapTypeObject ty;
-  gccipher *cc;
-} gccipher_pyobj;
+extern PyObject *keysz_pywrap(const octet *);
 
-extern PyTypeObject *gccipher_pytype;
-#define GCCIPHER_PYCHECK(o) PyObject_TypeCheck((o), gccipher_pytype)
-#define GCCIPHER_CC(o) (((gccipher_pyobj *)(o))->cc)
-extern PyObject *gccipher_pywrap(gccipher *);
 extern int convgccipher(PyObject *, void *);
-
-typedef struct gcipher_pyobj {
-  PyObject_HEAD
-  gcipher *c;
-} gcipher_pyobj;
-
-extern PyTypeObject *gcipher_pytype;
-#define GCIPHER_PYCHECK(o) PyObject_TypeCheck((o), gcipher_pytype)
-#define GCIPHER_C(o) (((gcipher_pyobj *)(o))->c)
-extern PyObject *gcipher_pywrap(PyObject *, gcipher *);
-extern int convgcipher(PyObject *, void *);
-
-typedef struct gcaead_pyobj {
-  PyHeapTypeObject ty;
-  gcaead *aec;
-  struct gcaeadaad_pyobj *aad;
-  struct gcaeadenc_pyobj *enc;
-  struct gcaeaddec_pyobj *dec;
-} gcaead_pyobj;
-
-extern PyTypeObject *gcaead_pytype;
-#define GCAEAD_PYCHECK(o) PyObject_TypeCheck((o), gcaead_pytype)
-#define GCAEAD_AEC(o) (((gcaead_pyobj *)(o))->aec)
-#define GCAEAD_AAD(o) (((gcaead_pyobj *)(o))->aad)
-#define GCAEAD_ENC(o) (((gcaead_pyobj *)(o))->enc)
-#define GCAEAD_DEC(o) (((gcaead_pyobj *)(o))->dec)
-extern PyObject *gcaead_pywrap(gcaead *);
-extern int convgcaead(PyObject *, void *);
-
-typedef struct gaeadkey_pyobj {
-  PyObject_HEAD
-  gaead_key *k;
-} gaeadkey_pyobj;
-
-extern PyTypeObject *gaeadkey_pytype;
-#define GAEADKEY_PYCHECK(o) PyObject_TypeCheck((o), gaeadkey_pytype)
-#define GAEADKEY_K(o) (((gaeadkey_pyobj *)(o))->k)
-extern PyObject *gaeadkey_pywrap(PyObject *, gaead_key *);
-extern int convgaeadkey(PyObject *, void *);
-
-typedef struct gcaeadaad_pyobj {
-  PyHeapTypeObject ty;
-  gcaead_pyobj *key;
-} gcaeadaad_pyobj;
-#define GCAEADAAD_KEY(o) (((gcaeadaad_pyobj *)(o))->key)
-extern PyTypeObject *gcaeadaad_pytype;
-
-typedef struct gaeadaad_pyobj {
-  PyObject_HEAD
-  gaead_aad *a;
-  unsigned f;
-#define AEADF_DEAD 32768u
-  size_t hsz, hlen;
-} gaeadaad_pyobj;
-
-extern PyTypeObject *gaeadaad_pytype;
-#define GAEADAAD_PYCHECK(o) PyObject_TypeCheck((o), gaeadaad_pytype)
-#define GAEADAAD_A(o) (((gaeadaad_pyobj *)(o))->a)
-#define GAEADAAD_F(o) (((gaeadaad_pyobj *)(o))->f)
-#define GAEADAAD_HSZ(o) (((gaeadaad_pyobj *)(o))->hsz)
-#define GAEADAAD_HLEN(o) (((gaeadaad_pyobj *)(o))->hlen)
-extern PyObject *gaeadaad_pywrap(PyObject *, gaead_aad *, unsigned, size_t);
-extern int convgaeadaad(PyObject *, void *);
-
-typedef struct gcaeadenc_pyobj {
-  PyHeapTypeObject ty;
-  gcaead_pyobj *key;
-} gcaeadenc_pyobj;
-#define GCAEADENC_KEY(o) (((gcaeadenc_pyobj *)(o))->key)
-extern PyTypeObject *gcaeadenc_pytype;
-
-typedef struct gaeadenc_pyobj {
-  PyObject_HEAD
-  gaead_enc *e;
-  gaeadaad_pyobj *aad;
-  unsigned f;
-  size_t hsz, msz, tsz;
-  size_t mlen;
-} gaeadenc_pyobj;
-
-extern PyTypeObject *gaeadenc_pytype;
-#define GAEADENC_PYCHECK(o) PyObject_TypeCheck((o), gaeadenc_pytype)
-#define GAEADENC_AAD(o) (((gaeadenc_pyobj *)(o))->aad)
-#define GAEADENC_E(o) (((gaeadenc_pyobj *)(o))->e)
-#define GAEADENC_F(o) (((gaeadenc_pyobj *)(o))->f)
-#define GAEADENC_HSZ(o) (((gaeadenc_pyobj *)(o))->hsz)
-#define GAEADENC_MSZ(o) (((gaeadenc_pyobj *)(o))->msz)
-#define GAEADENC_TSZ(o) (((gaeadenc_pyobj *)(o))->tsz)
-#define GAEADENC_MLEN(o) (((gaeadenc_pyobj *)(o))->mlen)
-extern PyObject *gaeadenc_pywrap(PyObject *, gaead_enc *, unsigned,
-                                size_t, size_t, size_t);
-extern int convgaeadenc(PyObject *, void *);
-
-typedef struct gcaeaddec_pyobj {
-  PyHeapTypeObject ty;
-  gcaead_pyobj *key;
-} gcaeaddec_pyobj;
-#define GCAEADDEC_KEY(o) (((gcaeaddec_pyobj *)(o))->key)
-extern PyTypeObject *gcaeaddec_pytype;
-
-typedef struct gaeaddec_pyobj {
-  PyObject_HEAD
-  gaead_dec *d;
-  gaeadaad_pyobj *aad;
-  unsigned f;
-  size_t hsz, csz, tsz;
-  size_t clen;
-} gaeaddec_pyobj;
-
-extern PyTypeObject *gaeaddec_pytype;
-#define GAEADDEC_PYCHECK(o) PyObject_TypeCheck((o), gaeaddec_pytype)
-#define GAEADDEC_AAD(o) (((gaeaddec_pyobj *)(o))->aad)
-#define GAEADDEC_D(o) (((gaeaddec_pyobj *)(o))->d)
-#define GAEADDEC_F(o) (((gaeaddec_pyobj *)(o))->f)
-#define GAEADDEC_HSZ(o) (((gaeaddec_pyobj *)(o))->hsz)
-#define GAEADDEC_CSZ(o) (((gaeaddec_pyobj *)(o))->csz)
-#define GAEADDEC_TSZ(o) (((gaeaddec_pyobj *)(o))->tsz)
-#define GAEADDEC_CLEN(o) (((gaeaddec_pyobj *)(o))->clen)
-extern PyObject *gaeaddec_pywrap(PyObject *, gaead_dec *, unsigned,
-                                size_t, size_t, size_t);
-extern int convgaeaddec(PyObject *, void *);
+extern PyObject *gccipher_pywrap(gccipher *);
 
 typedef struct gchash_pyobj {
   PyHeapTypeObject ty;
@@ -680,48 +518,15 @@ typedef struct gchash_pyobj {
 } gchash_pyobj;
 
 extern PyTypeObject *gchash_pytype;
+extern PyObject *sha_pyobj, *has160_pyobj;
 #define GCHASH_PYCHECK(o) PyObject_TypeCheck((o), gchash_pytype)
 #define GCHASH_CH(o) (((gchash_pyobj *)(o))->ch)
-extern PyObject *gchash_pywrap(gchash *);
-extern int convgchash(PyObject *, void *);
-
-typedef struct ghash_pyobj {
-  PyObject_HEAD
-  ghash *h;
-} ghash_pyobj;
-
-extern PyTypeObject *ghash_pytype, *gmhash_pytype;
-extern PyObject *sha_pyobj, *has160_pyobj;
-#define GHASH_PYCHECK(o) PyObject_TypeCheck((o), ghash_pytype)
-#define GHASH_H(o) (((ghash_pyobj *)(o))->h)
 extern PyObject *ghash_pywrap(PyObject *, ghash *);
+extern int convgchash(PyObject *, void *);
 extern int convghash(PyObject *, void *);
-extern int convgmhash(PyObject *, void *);
 
-typedef struct gcmac_pyobj {
-  PyHeapTypeObject ty;
-  gcmac *cm;
-} gcmac_pyobj;
-
-extern PyTypeObject *gcmac_pytype;
-#define GCMAC_PYCHECK(o) PyObject_TypeCheck((o), gcmac_pytype)
-#define GCMAC_CM(o) (((gcmac_pyobj *)(o))->cm)
-#define GCMAC_F(o) (((gcmac_pyobj *)(o))->f)
-extern PyObject *gcmac_pywrap(gcmac *);
 extern int convgcmac(PyObject *, void *);
 
-typedef struct gmac_pyobj {
-  PyHeapTypeObject ty;
-  gmac *m;
-} gmac_pyobj;
-
-extern PyTypeObject *gmac_pytype;
-#define GMAC_PYCHECK(o) PyObject_TypeCheck((o), gmac_pytype)
-#define GMAC_M(o) (((gmac_pyobj *)(o))->m)
-#define GMAC_F(o) (((gmac_pyobj *)(o))->f)
-extern PyObject *gmac_pywrap(PyObject *, gmac *);
-extern int convgmac(PyObject *, void *);
-
 /*----- Key generation ----------------------------------------------------*/
 
 typedef struct pfilt_pyobj {