X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/ef783f91d10008e1859fc52de1fb66a5cd292320..637b91402d2497db1318debd3cb3868a5abb8f01:/pubkey.c diff --git a/pubkey.c b/pubkey.c index 3fc42af..a557ddb 100644 --- a/pubkey.c +++ b/pubkey.c @@ -86,8 +86,7 @@ static PyObject *dsa_setup(PyTypeObject *ty, PyObject *G, PyObject *u, g->rng = rng; Py_INCREF(rng); g->hash = hash; Py_INCREF(hash); return ((PyObject *)g); end: - if (p) Py_DECREF(p); - FREEOBJ(g); + Py_XDECREF(p); FREEOBJ(g); return (0); } @@ -189,7 +188,7 @@ end: return (rc); } -static PyMethodDef dsapub_pymethods[] = { +static const PyMethodDef dsapub_pymethods[] = { #define METHNAME(name) dsameth_##name METH (beginhash, "D.beginhash() -> hash object") METH (endhash, "D.endhash(H) -> BYTES") @@ -198,14 +197,14 @@ static PyMethodDef dsapub_pymethods[] = { { 0 } }; -static PyMethodDef dsapriv_pymethods[] = { +static const PyMethodDef dsapriv_pymethods[] = { #define METHNAME(name) dsameth_##name KWMETH(sign, "D.sign(MSG, [k = K]) -> R, S") #undef METHNAME { 0 } }; -static PyMemberDef dsapub_pymembers[] = { +static const PyMemberDef dsapub_pymembers[] = { #define MEMBERSTRUCT dsa_pyobj MEMBER(G, T_OBJECT, READONLY, "D.G -> group to work in") MEMBER(p, T_OBJECT, READONLY, "D.p -> public key (group element") @@ -215,7 +214,7 @@ static PyMemberDef dsapub_pymembers[] = { { 0 } }; -static PyMemberDef dsapriv_pymembers[] = { +static const PyMemberDef dsapriv_pymembers[] = { #define MEMBERSTRUCT dsa_pyobj MEMBER(u, T_OBJECT, READONLY, "D.u -> private key (exponent)") #undef MEMBERSTRUCT @@ -255,8 +254,8 @@ static PyTypeObject dsapub_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - dsapub_pymethods, /* @tp_methods@ */ - dsapub_pymembers, /* @tp_members@ */ + PYMETHODS(dsapub), /* @tp_methods@ */ + PYMEMBERS(dsapub), /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ @@ -304,8 +303,8 @@ static PyTypeObject dsapriv_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - dsapriv_pymethods, /* @tp_methods@ */ - dsapriv_pymembers, /* @tp_members@ */ + PYMETHODS(dsapriv), /* @tp_methods@ */ + PYMEMBERS(dsapriv), /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ @@ -427,7 +426,7 @@ end: return (rc); } -static PyMethodDef kcdsapub_pymethods[] = { +static const PyMethodDef kcdsapub_pymethods[] = { #define METHNAME(name) kcdsameth_##name METH (beginhash, "D.beginhash() -> hash object") METH (endhash, "D.endhash(H) -> BYTES") @@ -436,7 +435,7 @@ static PyMethodDef kcdsapub_pymethods[] = { { 0 } }; -static PyMethodDef kcdsapriv_pymethods[] = { +static const PyMethodDef kcdsapriv_pymethods[] = { #define METHNAME(name) kcdsameth_##name KWMETH(sign, "D.sign(MSG, [k = K]) -> R, S") #undef METHNAME @@ -476,8 +475,8 @@ static PyTypeObject kcdsapub_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - kcdsapub_pymethods, /* @tp_methods@ */ - dsapub_pymembers, /* @tp_members@ */ + PYMETHODS(kcdsapub), /* @tp_methods@ */ + PYMEMBERS(dsapub), /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ @@ -525,8 +524,8 @@ static PyTypeObject kcdsapriv_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - kcdsapriv_pymethods, /* @tp_methods@ */ - dsapriv_pymembers, /* @tp_members@ */ + PYMETHODS(kcdsapriv), /* @tp_methods@ */ + PYMEMBERS(dsapriv), /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ @@ -758,7 +757,7 @@ end: return (rc); } -static PyGetSetDef rsapub_pygetset[] = { +static const PyGetSetDef rsapub_pygetset[] = { #define GETSETNAME(op, name) rsa##op##_##name GET (n, "R.n -> N") GET (e, "R.e -> E") @@ -766,14 +765,14 @@ static PyGetSetDef rsapub_pygetset[] = { { 0 } }; -static PyMethodDef rsapub_pymethods[] = { +static const PyMethodDef rsapub_pymethods[] = { #define METHNAME(name) rsameth_##name METH (pubop, "R.pubop(X) -> X^E (mod N)") #undef METHNAME { 0 } }; -static PyGetSetDef rsapriv_pygetset[] = { +static const PyGetSetDef rsapriv_pygetset[] = { #define GETSETNAME(op, name) rsa##op##_##name GET (d, "R.d -> D") GET (p, "R.p -> P") @@ -786,7 +785,7 @@ static PyGetSetDef rsapriv_pygetset[] = { { 0 } }; -static PyMethodDef rsapriv_pymethods[] = { +static const PyMethodDef rsapriv_pymethods[] = { #define METHNAME(name) rsameth_##name KWMETH(privop, "R.privop(X, [rng = None]) -> X^D (mod N)") #undef METHNAME @@ -826,9 +825,9 @@ static PyTypeObject rsapub_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - rsapub_pymethods, /* @tp_methods@ */ + PYMETHODS(rsapub), /* @tp_methods@ */ 0, /* @tp_members@ */ - rsapub_pygetset, /* @tp_getset@ */ + PYGETSET(rsapub), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -875,9 +874,9 @@ static PyTypeObject rsapriv_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - rsapriv_pymethods, /* @tp_methods@ */ + PYMETHODS(rsapriv), /* @tp_methods@ */ 0, /* @tp_members@ */ - rsapriv_pygetset, /* @tp_getset@ */ + PYGETSET(rsapriv), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -1262,7 +1261,7 @@ EDDSAS(DEFEDDSA) /*----- Global stuff ------------------------------------------------------*/ -static PyMethodDef methods[] = { +static const PyMethodDef methods[] = { #define METHNAME(name) meth_##name KWMETH(_p1crypt_encode, 0) KWMETH(_p1crypt_decode, 0)