X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/8dfb09a791eaffe072663b58b0c1b6abd33a1076..31ff254edd8d9c6927a67838ec4418ad8ba42652:/algorithms.c diff --git a/algorithms.c b/algorithms.c index 465da45..f792087 100644 --- a/algorithms.c +++ b/algorithms.c @@ -295,7 +295,7 @@ static const PyMemberDef keyszset_pymembers[] = { { 0 } }; -static PyTypeObject keysz_pytype_skel = { +static const PyTypeObject keysz_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "KeySZ", /* @tp_name@ */ sizeof(keysz_pyobj), /* @tp_basicsize@ */ @@ -343,7 +343,7 @@ static PyTypeObject keysz_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject keyszany_pytype_skel = { +static const PyTypeObject keyszany_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "KeySZAny", /* @tp_name@ */ sizeof(keysz_pyobj), /* @tp_basicsize@ */ @@ -392,7 +392,7 @@ static PyTypeObject keyszany_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject keyszrange_pytype_skel = { +static const PyTypeObject keyszrange_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "KeySZRange", /* @tp_name@ */ sizeof(keyszrange_pyobj), /* @tp_basicsize@ */ @@ -442,7 +442,7 @@ static PyTypeObject keyszrange_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject keyszset_pytype_skel = { +static const PyTypeObject keyszset_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "KeySZSet", /* @tp_name@ */ sizeof(keyszset_pyobj), /* @tp_basicsize@ */ @@ -669,7 +669,7 @@ static const PyMethodDef gcipher_pymethods[] = { { 0 } }; -static PyTypeObject gccipher_pytype_skel = { +static const PyTypeObject gccipher_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GCCipher", /* @tp_name@ */ sizeof(gccipher_pyobj), /* @tp_basicsize@ */ @@ -717,7 +717,7 @@ static PyTypeObject gccipher_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gcipher_pytype_skel = { +static const PyTypeObject gcipher_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GCipher", /* @tp_name@ */ sizeof(gcipher_pyobj), /* @tp_basicsize@ */ @@ -1552,7 +1552,7 @@ static const PyMethodDef gaeaddec_pymethods[] = { { 0 } }; -static PyTypeObject gcaead_pytype_skel = { +static const PyTypeObject gcaead_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GCAEAD", /* @tp_name@ */ sizeof(gcaead_pyobj), /* @tp_basicsize@ */ @@ -1600,7 +1600,7 @@ static PyTypeObject gcaead_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gaeadkey_pytype_skel = { +static const PyTypeObject gaeadkey_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GAEKey", /* @tp_name@ */ sizeof(gaeadkey_pyobj), /* @tp_basicsize@ */ @@ -1648,7 +1648,7 @@ static PyTypeObject gaeadkey_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gcaeadaad_pytype_skel = { +static const PyTypeObject gcaeadaad_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GAEAADClass", /* @tp_name@ */ sizeof(gcaeadaad_pyobj), /* @tp_basicsize@ */ @@ -1696,7 +1696,7 @@ static PyTypeObject gcaeadaad_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gaeadaad_pytype_skel = { +static const PyTypeObject gaeadaad_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GAEAAD", /* @tp_name@ */ sizeof(gaeadaad_pyobj), /* @tp_basicsize@ */ @@ -1744,7 +1744,7 @@ static PyTypeObject gaeadaad_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gcaeadenc_pytype_skel = { +static const PyTypeObject gcaeadenc_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GAEEncClass", /* @tp_name@ */ sizeof(gcaeadenc_pyobj), /* @tp_basicsize@ */ @@ -1792,7 +1792,7 @@ static PyTypeObject gcaeadenc_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gaeadenc_pytype_skel = { +static const PyTypeObject gaeadenc_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GAEEnc", /* @tp_name@ */ sizeof(gaeadenc_pyobj), /* @tp_basicsize@ */ @@ -1840,7 +1840,7 @@ static PyTypeObject gaeadenc_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gcaeaddec_pytype_skel = { +static const PyTypeObject gcaeaddec_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GAEDecClass", /* @tp_name@ */ sizeof(gcaeaddec_pyobj), /* @tp_basicsize@ */ @@ -1888,7 +1888,7 @@ static PyTypeObject gcaeaddec_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gaeaddec_pytype_skel = { +static const PyTypeObject gaeaddec_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GAEDec", /* @tp_name@ */ sizeof(gaeaddec_pyobj), /* @tp_basicsize@ */ @@ -2086,7 +2086,7 @@ static const PyMethodDef ghash_pymethods[] = { { 0 } }; -static PyTypeObject gchash_pytype_skel = { +static const PyTypeObject gchash_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GCHash", /* @tp_name@ */ sizeof(gchash_pyobj), /* @tp_basicsize@ */ @@ -2134,7 +2134,7 @@ static PyTypeObject gchash_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject ghash_pytype_skel = { +static const PyTypeObject ghash_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GHash", /* @tp_name@ */ sizeof(ghash_pyobj), /* @tp_basicsize@ */ @@ -2300,7 +2300,7 @@ static const PyGetSetDef gcmac_pygetset[] = { { 0 } }; -static PyTypeObject gcmac_pytype_skel = { +static const PyTypeObject gcmac_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GCMAC", /* @tp_name@ */ sizeof(gchash_pyobj), /* @tp_basicsize@ */ @@ -2348,7 +2348,7 @@ static PyTypeObject gcmac_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gmac_pytype_skel = { +static const PyTypeObject gmac_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GMAC", /* @tp_name@ */ sizeof(gmac_pyobj), /* @tp_basicsize@ */ @@ -2396,7 +2396,7 @@ static PyTypeObject gmac_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gmhash_pytype_skel = { +static const PyTypeObject gmhash_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GMACHash", /* @tp_name@ */ sizeof(ghash_pyobj), /* @tp_basicsize@ */ @@ -2646,7 +2646,7 @@ static const PyMethodDef poly1305hash_pymethods[] = { { 0 } }; -static PyTypeObject poly1305cls_pytype_skel = { +static const PyTypeObject poly1305cls_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "Poly1305Class", /* @tp_name@ */ sizeof(PyHeapTypeObject), /* @tp_basicsize@ */ @@ -2694,7 +2694,7 @@ static PyTypeObject poly1305cls_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject poly1305key_pytype_skel = { +static const PyTypeObject poly1305key_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "poly1305", /* @tp_name@ */ sizeof(poly1305key_pyobj), /* @tp_basicsize@ */ @@ -2742,7 +2742,7 @@ static PyTypeObject poly1305key_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject poly1305hash_pytype_skel = { +static const PyTypeObject poly1305hash_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "Poly1305Hash", /* @tp_name@ */ sizeof(poly1305hash_pyobj), /* @tp_basicsize@ */ @@ -2905,30 +2905,10 @@ static PyObject *kxvikmeth_step(PyObject *me) RETURN_ME; } -static PyObject *kxvikget_nround(PyObject *me, void *hunoz) -{ - kxvik_pyobj *k = (kxvik_pyobj *)me; - return (PyInt_FromLong(k->n)); -} - -static int kxvikset_nround(PyObject *me, PyObject *val, void *hunoz) -{ - kxvik_pyobj *k = (kxvik_pyobj *)me; - unsigned n; - int rc = -1; - - if (!val) NIERR("__del__"); - if (!convuint(val, &n)) goto end; - k->n = n; - rc = 0; -end: - return (rc); -} - -static const PyGetSetDef kxvik_pygetset[] = { -#define GETSETNAME(op, name) kxvik##op##_##name - GETSET(nround, "KECCAK.nround -> number of rounds") -#undef GETSETNAME +static const PyMemberDef kxvik_pymembers[] = { +#define MEMBERSTRUCT kxvik_pyobj + MEMRNM(nround, T_UINT, n, 0, "KECCAC.nround -> number of rounds") +#undef MEMBERSTRUCT { 0 } }; @@ -2942,7 +2922,7 @@ static const PyMethodDef kxvik_pymethods[] = { { 0 } }; -static PyTypeObject kxvik_pytype_skel = { +static const PyTypeObject kxvik_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "Keccak1600", /* @tp_name@ */ sizeof(kxvik_pyobj), /* @tp_basicsize@ */ @@ -2976,8 +2956,8 @@ static PyTypeObject kxvik_pytype_skel = { 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ PYMETHODS(kxvik), /* @tp_methods@ */ - 0, /* @tp_members@ */ - PYGETSET(kxvik), /* @tp_getset@ */ + PYMEMBERS(kxvik), /* @tp_members@ */ + 0, /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -3145,12 +3125,6 @@ end: return (rc); } -static PyObject *shakeget_rate(PyObject *me, void *hunoz) - { return (PyInt_FromLong(SHAKE_H(me)->h.r)); } - -static PyObject *shakeget_buffered(PyObject *me, void *hunoz) - { return (PyInt_FromLong(SHAKE_H(me)->h.n)); } - static PyObject *shakeget_state(PyObject *me, void *hunoz) { int st = SHAKE_ST(me); @@ -3158,10 +3132,17 @@ static PyObject *shakeget_state(PyObject *me, void *hunoz) st == 1 ? "squeeze" : "dead")); } +static const PyMemberDef shake_pymembers[] = { +#define MEMBERSTRUCT shake_pyobj + MEMRNM(rate, T_UINT, h.h.r, READONLY, "S.rate -> rate, in bytes") + MEMRNM(buffered, T_UINT, h.h.n, READONLY, + "S.buffered -> amount currently buffered") +#undef MEMBERSTRUCT + { 0 } +}; + static const PyGetSetDef shake_pygetset[] = { #define GETSETNAME(op, name) shake##op##_##name - GET (rate, "S.rate -> rate, in bytes") - GET (buffered, "S.buffered -> amount currently buffered") GET (state, "S.state -> `absorb', `squeeze', `dead'") #undef GETSETNAME { 0 } @@ -3186,7 +3167,7 @@ static const PyMethodDef shake_pymethods[] = { { 0 } }; -static PyTypeObject shake_pytype_skel = { +static const PyTypeObject shake_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "Shake", /* @tp_name@ */ sizeof(shake_pyobj), /* @tp_basicsize@ */ @@ -3220,7 +3201,7 @@ static PyTypeObject shake_pytype_skel = { 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ PYMETHODS(shake), /* @tp_methods@ */ - 0, /* @tp_members@ */ + PYMEMBERS(shake), /* @tp_members@ */ PYGETSET(shake), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ @@ -3234,7 +3215,7 @@ static PyTypeObject shake_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject shake128_pytype_skel = { +static const PyTypeObject shake128_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "Shake128", /* @tp_name@ */ 0, /* @tp_basicsize@ */ @@ -3282,7 +3263,7 @@ static PyTypeObject shake128_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject shake256_pytype_skel = { +static const PyTypeObject shake256_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "Shake256", /* @tp_name@ */ 0, /* @tp_basicsize@ */ @@ -3479,7 +3460,7 @@ static const PyMethodDef gprp_pymethods[] = { { 0 } }; -static PyTypeObject gcprp_pytype_skel = { +static const PyTypeObject gcprp_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GCPRP", /* @tp_name@ */ sizeof(gcprp_pyobj), /* @tp_basicsize@ */ @@ -3527,7 +3508,7 @@ static PyTypeObject gcprp_pytype_skel = { 0 /* @tp_is_gc@ */ }; -static PyTypeObject gprp_pytype_skel = { +static const PyTypeObject gprp_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "GPRP", /* @tp_name@ */ sizeof(gprp_pyobj), /* @tp_basicsize@ */ @@ -3577,6 +3558,12 @@ static PyTypeObject gprp_pytype_skel = { /*----- Main code ---------------------------------------------------------*/ +static const struct nameval consts[] = { + CONST(AEADF_PCHSZ), CONST(AEADF_PCMSZ), CONST(AEADF_PCTSZ), + CONST(AEADF_AADNDEP), CONST(AEADF_AADFIRST), CONST(AEADF_NOAAD), + { 0 } +}; + static const PyMethodDef methods[] = { #define METHNAME(func) meth_##func #define METH_HDANCE(hdance, HDance) METH(hdance##_prf, \ @@ -3670,6 +3657,7 @@ void algorithms_pyinsert(PyObject *mod) INSERT("GCPRP", gcprp_pytype); INSERT("GPRP", gprp_pytype); INSERT("gcprps", gcprps()); + setconstants(mod, consts); } /*----- That's all, folks -------------------------------------------------*/