chiark / gitweb /
key: Fixing of expiry and deletion time properties.
[catacomb-python] / pubkey.c
index e002972e526a5d03e750648b200916ada5efde78..735a2c01d771a80fe83ce3830e5f5065d2ca6ac4 100644 (file)
--- a/pubkey.c
+++ b/pubkey.c
@@ -52,7 +52,7 @@ static void dsa_pydealloc(PyObject *me)
   dsa_pyobj *g = (dsa_pyobj *)me;
   Py_DECREF(g->G); Py_DECREF(g->u); Py_DECREF(g->p);
   Py_DECREF(g->rng); Py_DECREF(g->hash);
-  PyObject_DEL(me);
+  FREEOBJ(me);
 }
 
 static PyObject *dsa_setup(PyTypeObject *ty, PyObject *G, PyObject *u,
@@ -76,7 +76,7 @@ static PyObject *dsa_setup(PyTypeObject *ty, PyObject *G, PyObject *u,
   rng = g->rng; Py_INCREF(rng); g->hash = hash; Py_INCREF(hash);
   return ((PyObject *)g);
 end:
-  PyObject_DEL(g);
+  FREEOBJ(g);
   return (0);
 }
 
@@ -211,7 +211,7 @@ static PyMemberDef dsapriv_pymembers[] = {
 };
 
 static PyTypeObject dsapub_pytype_skel = {
-  PyObject_HEAD_INIT(&PyType_Type) 0,  /* Header */
+  PyObject_HEAD_INIT(0) 0,             /* Header */
   "catacomb.DSAPub",                   /* @tp_name@ */
   sizeof(dsa_pyobj),                   /* @tp_basicsize@ */
   0,                                   /* @tp_itemsize@ */
@@ -242,7 +242,7 @@ static PyTypeObject dsapub_pytype_skel = {
   0,                                   /* @tp_richcompare@ */
   0,                                   /* @tp_weaklistoffset@ */
   0,                                   /* @tp_iter@ */
-  0,                                   /* @tp_iternexr@ */
+  0,                                   /* @tp_iternext@ */
   dsapub_pymethods,                    /* @tp_methods@ */
   dsapub_pymembers,                    /* @tp_members@ */
   0,                                   /* @tp_getset@ */
@@ -254,12 +254,12 @@ static PyTypeObject dsapub_pytype_skel = {
   0,                                   /* @tp_init@ */
   PyType_GenericAlloc,                 /* @tp_alloc@ */
   dsapub_pynew,                                /* @tp_new@ */
-  _PyObject_Del,                       /* @tp_free@ */
+  0,                                   /* @tp_free@ */
   0                                    /* @tp_is_gc@ */
 };
 
 static PyTypeObject dsapriv_pytype_skel = {
-  PyObject_HEAD_INIT(&PyType_Type) 0,  /* Header */
+  PyObject_HEAD_INIT(0) 0,             /* Header */
   "catacomb.DSAPriv",                  /* @tp_name@ */
   sizeof(dsa_pyobj),                   /* @tp_basicsize@ */
   0,                                   /* @tp_itemsize@ */
@@ -290,7 +290,7 @@ static PyTypeObject dsapriv_pytype_skel = {
   0,                                   /* @tp_richcompare@ */
   0,                                   /* @tp_weaklistoffset@ */
   0,                                   /* @tp_iter@ */
-  0,                                   /* @tp_iternexr@ */
+  0,                                   /* @tp_iternext@ */
   dsapriv_pymethods,                   /* @tp_methods@ */
   dsapriv_pymembers,                   /* @tp_members@ */
   0,                                   /* @tp_getset@ */
@@ -302,7 +302,7 @@ static PyTypeObject dsapriv_pytype_skel = {
   0,                                   /* @tp_init@ */
   PyType_GenericAlloc,                 /* @tp_alloc@ */
   dsapriv_pynew,                       /* @tp_new@ */
-  _PyObject_Del,                       /* @tp_free@ */
+  0,                                   /* @tp_free@ */
   0                                    /* @tp_is_gc@ */
 };
 
@@ -378,7 +378,7 @@ static PyObject *kcdsameth_sign(PyObject *me, PyObject *arg, PyObject *kw)
   if (n != DSA_D(me)->h->hashsz)
     VALERR("bad message length (doesn't match hash size)");
   r = bytestring_pywrap(0, DSA_D(me)->h->hashsz);
-  s.r = PyString_AS_STRING(r);
+  s.r = (octet *)PyString_AS_STRING(r);
   gkcdsa_sign(DSA_D(me), &s, p, k);
   rc = Py_BuildValue("(NN)", r, mp_pywrap(s.s));
 end:
@@ -424,7 +424,7 @@ static PyMethodDef kcdsapriv_pymethods[] = {
 };
 
 static PyTypeObject kcdsapub_pytype_skel = {
-  PyObject_HEAD_INIT(&PyType_Type) 0,  /* Header */
+  PyObject_HEAD_INIT(0) 0,             /* Header */
   "catacomb.KCDSAPub",                 /* @tp_name@ */
   sizeof(dsa_pyobj),                   /* @tp_basicsize@ */
   0,                                   /* @tp_itemsize@ */
@@ -455,7 +455,7 @@ static PyTypeObject kcdsapub_pytype_skel = {
   0,                                   /* @tp_richcompare@ */
   0,                                   /* @tp_weaklistoffset@ */
   0,                                   /* @tp_iter@ */
-  0,                                   /* @tp_iternexr@ */
+  0,                                   /* @tp_iternext@ */
   kcdsapub_pymethods,                  /* @tp_methods@ */
   dsapub_pymembers,                    /* @tp_members@ */
   0,                                   /* @tp_getset@ */
@@ -467,12 +467,12 @@ static PyTypeObject kcdsapub_pytype_skel = {
   0,                                   /* @tp_init@ */
   PyType_GenericAlloc,                 /* @tp_alloc@ */
   kcdsapub_pynew,                      /* @tp_new@ */
-  _PyObject_Del,                       /* @tp_free@ */
+  0,                                   /* @tp_free@ */
   0                                    /* @tp_is_gc@ */
 };
 
 static PyTypeObject kcdsapriv_pytype_skel = {
-  PyObject_HEAD_INIT(&PyType_Type) 0,  /* Header */
+  PyObject_HEAD_INIT(0) 0,             /* Header */
   "catacomb.KCDSAPriv",                        /* @tp_name@ */
   sizeof(dsa_pyobj),                   /* @tp_basicsize@ */
   0,                                   /* @tp_itemsize@ */
@@ -503,7 +503,7 @@ static PyTypeObject kcdsapriv_pytype_skel = {
   0,                                   /* @tp_richcompare@ */
   0,                                   /* @tp_weaklistoffset@ */
   0,                                   /* @tp_iter@ */
-  0,                                   /* @tp_iternexr@ */
+  0,                                   /* @tp_iternext@ */
   kcdsapriv_pymethods,                 /* @tp_methods@ */
   dsapriv_pymembers,                   /* @tp_members@ */
   0,                                   /* @tp_getset@ */
@@ -515,7 +515,7 @@ static PyTypeObject kcdsapriv_pytype_skel = {
   0,                                   /* @tp_init@ */
   PyType_GenericAlloc,                 /* @tp_alloc@ */
   kcdsapriv_pynew,                     /* @tp_new@ */
-  _PyObject_Del,                       /* @tp_free@ */
+  0,                                   /* @tp_free@ */
   0                                    /* @tp_is_gc@ */
 };
 
@@ -568,7 +568,7 @@ static void rsapub_pydealloc(PyObject *me)
 {
   rsa_pubdestroy(RSA_PUBCTX(me));
   rsa_pubfree(RSA_PUB(me));
-  PyObject_DEL(me);
+  FREEOBJ(me);
 }
 
 static PyObject *rsaget_n(PyObject *me, void *hunoz)
@@ -643,7 +643,7 @@ static void rsapriv_pydealloc(PyObject *me)
   rsa_privdestroy(RSA_PRIVCTX(me));
   rsa_privfree(RSA_PRIV(me));
   Py_DECREF(RSA_RNG(me));
-  PyObject_DEL(me);
+  FREEOBJ(me);
 }
 
 static PyObject *rsaget_d(PyObject *me, void *hunoz)
@@ -670,7 +670,9 @@ static PyObject *rsaget_rng(PyObject *me, void *hunoz)
 static int rsaset_rng(PyObject *me, PyObject *val, void *hunoz)
 {
   int rc = -1;
-  if (val != Py_None && !GRAND_PYCHECK(val))
+  if (!val)
+    val = Py_None;
+  else if (val != Py_None && !GRAND_PYCHECK(val))
     TYERR("expected grand or None");
   Py_DECREF(RSA_RNG(me));
   RSA_RNG(me) = val;
@@ -758,7 +760,7 @@ static PyMethodDef rsapriv_pymethods[] = {
 };
 
 static PyTypeObject rsapub_pytype_skel = {
-  PyObject_HEAD_INIT(&PyType_Type) 0,  /* Header */
+  PyObject_HEAD_INIT(0) 0,             /* Header */
   "catacomb.RSAPub",                   /* @tp_name@ */
   sizeof(rsapub_pyobj),                        /* @tp_basicsize@ */
   0,                                   /* @tp_itemsize@ */
@@ -789,7 +791,7 @@ static PyTypeObject rsapub_pytype_skel = {
   0,                                   /* @tp_richcompare@ */
   0,                                   /* @tp_weaklistoffset@ */
   0,                                   /* @tp_iter@ */
-  0,                                   /* @tp_iternexr@ */
+  0,                                   /* @tp_iternext@ */
   rsapub_pymethods,                    /* @tp_methods@ */
   0,                                   /* @tp_members@ */
   rsapub_pygetset,                     /* @tp_getset@ */
@@ -801,12 +803,12 @@ static PyTypeObject rsapub_pytype_skel = {
   0,                                   /* @tp_init@ */
   PyType_GenericAlloc,                 /* @tp_alloc@ */
   rsapub_pynew,                                /* @tp_new@ */
-  _PyObject_Del,                       /* @tp_free@ */
+  0,                                   /* @tp_free@ */
   0                                    /* @tp_is_gc@ */
 };
 
 static PyTypeObject rsapriv_pytype_skel = {
-  PyObject_HEAD_INIT(&PyType_Type) 0,  /* Header */
+  PyObject_HEAD_INIT(0) 0,             /* Header */
   "catacomb.RSAPriv",                  /* @tp_name@ */
   sizeof(rsapriv_pyobj),               /* @tp_basicsize@ */
   0,                                   /* @tp_itemsize@ */
@@ -837,7 +839,7 @@ static PyTypeObject rsapriv_pytype_skel = {
   0,                                   /* @tp_richcompare@ */
   0,                                   /* @tp_weaklistoffset@ */
   0,                                   /* @tp_iter@ */
-  0,                                   /* @tp_iternexr@ */
+  0,                                   /* @tp_iternext@ */
   rsapriv_pymethods,                   /* @tp_methods@ */
   0,                                   /* @tp_members@ */
   rsapriv_pygetset,                    /* @tp_getset@ */
@@ -849,7 +851,7 @@ static PyTypeObject rsapriv_pytype_skel = {
   0,                                   /* @tp_init@ */
   PyType_GenericAlloc,                 /* @tp_alloc@ */
   rsapriv_pynew,                       /* @tp_new@ */
-  _PyObject_Del,                       /* @tp_free@ */
+  0,                                   /* @tp_free@ */
   0                                    /* @tp_is_gc@ */
 };