X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/53a3cced7fc0b91530fe161d76975bb47407f946..c90f712e989f2ee557842c18fdb9a4df469c1859:/algorithms.c diff --git a/algorithms.c b/algorithms.c index d190a08..af98018 100644 --- a/algorithms.c +++ b/algorithms.c @@ -213,7 +213,7 @@ static PyObject *ksget_max(PyObject *me, void *hunoz) return (PyInt_FromLong(x)); } -static PyMemberDef keysz_pymembers[] = { +static const PyMemberDef keysz_pymembers[] = { #define MEMBERSTRUCT keysz_pyobj #define default dfl /* ugh! */ MEMBER(default, T_INT, READONLY, "KSZ.default -> default key size") @@ -222,7 +222,7 @@ static PyMemberDef keysz_pymembers[] = { { 0 } }; -static PyGetSetDef keyszany_pygetset[] = { +static const PyGetSetDef keyszany_pygetset[] = { #define GETSETNAME(op, name) ka##op##_##name GET (min, "KSZ.min -> smallest allowed key size") GET (max, "KSZ.max -> largest allowed key size") @@ -230,7 +230,7 @@ static PyGetSetDef keyszany_pygetset[] = { { 0 } }; -static PyMemberDef keyszrange_pymembers[] = { +static const PyMemberDef keyszrange_pymembers[] = { #define MEMBERSTRUCT keyszrange_pyobj MEMBER(min, T_INT, READONLY, "KSZ.min -> smallest allowed key size") MEMBER(max, T_INT, READONLY, "KSZ.max -> largest allowed key size") @@ -240,7 +240,7 @@ static PyMemberDef keyszrange_pymembers[] = { { 0 } }; -static PyGetSetDef keyszset_pygetset[] = { +static const PyGetSetDef keyszset_pygetset[] = { #define GETSETNAME(op, name) ks##op##_##name GET (min, "KSZ.min -> smallest allowed key size") GET (max, "KSZ.max -> largest allowed key size") @@ -248,7 +248,7 @@ static PyGetSetDef keyszset_pygetset[] = { { 0 } }; -static PyMemberDef keyszset_pymembers[] = { +static const PyMemberDef keyszset_pymembers[] = { #define MEMBERSTRUCT keyszset_pyobj MEMBER(set, T_OBJECT, READONLY, "KSZ.set -> allowed key sizes") #undef MEMBERSTRUCT @@ -289,7 +289,7 @@ static PyTypeObject keysz_pytype_skel = { 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ - keysz_pymembers, /* @tp_members@ */ + PYMEMBERS(keysz), /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ @@ -339,7 +339,7 @@ static PyTypeObject keyszany_pytype_skel = { 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ - keyszany_pygetset, /* @tp_getset@ */ + PYGETSET(keyszany), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -388,7 +388,7 @@ static PyTypeObject keyszrange_pytype_skel = { 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ - keyszrange_pymembers, /* @tp_members@ */ + PYMEMBERS(keyszrange), /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ @@ -437,8 +437,8 @@ static PyTypeObject keyszset_pytype_skel = { 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ - keyszset_pymembers, /* @tp_members@ */ - keyszset_pygetset, /* @tp_getset@ */ + PYMEMBERS(keyszset), /* @tp_members@ */ + PYGETSET(keyszset), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -627,7 +627,7 @@ end: return (0); } -static PyGetSetDef gccipher_pygetset[] = { +static const PyGetSetDef gccipher_pygetset[] = { #define GETSETNAME(op, name) gcc##op##_##name GET (keysz, "CC.keysz -> acceptable key sizes") GET (blksz, "CC.blksz -> block size, or zero") @@ -636,7 +636,7 @@ static PyGetSetDef gccipher_pygetset[] = { { 0 } }; -static PyMethodDef gcipher_pymethods[] = { +static const PyMethodDef gcipher_pymethods[] = { #define METHNAME(name) gcmeth_##name METH (encrypt, "C.encrypt(PT) -> CT") METH (enczero, "C.enczero(N) -> CT") @@ -683,7 +683,7 @@ static PyTypeObject gccipher_pytype_skel = { 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ - gccipher_pygetset, /* @tp_getset@ */ + PYGETSET(gccipher), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -729,7 +729,7 @@ static PyTypeObject gcipher_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - gcipher_pymethods, /* @tp_methods@ */ + PYMETHODS(gcipher), /* @tp_methods@ */ 0, /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ @@ -938,7 +938,7 @@ static PyObject *gcaeget_ohd(PyObject *me, void *hunoz) static PyObject *gcaeget_flags(PyObject *me, void *hunoz) { return (PyInt_FromLong(GCAEAD_AEC(me)->f)); } -static PyGetSetDef gcaead_pygetset[] = { +static const PyGetSetDef gcaead_pygetset[] = { #define GETSETNAME(op, name) gcae##op##_##name GET (keysz, "AEC.keysz -> acceptable key sizes") GET (noncesz, "AEC.noncesz -> acceptable nonce sizes") @@ -1042,7 +1042,7 @@ end: return (rc); } -static PyMethodDef gaeadkey_pymethods[] = { +static const PyMethodDef gaeadkey_pymethods[] = { #define METHNAME(name) gaekmeth_##name METH (aad, "KEY.aad() -> AAD") KWMETH(enc, "KEY.enc(NONCE, [hsz], [msz], [tsz]) -> ENC") @@ -1100,7 +1100,7 @@ static PyObject *gaeaget_hsz(PyObject *me, void *hunoz) static PyObject *gaeaget_hlen(PyObject *me, void *hunoz) { return (gaea_check(me) ? 0 : getulong(GAEADAAD_HLEN(me))); } -static PyGetSetDef gaeadaad_pygetset[] = { +static const PyGetSetDef gaeadaad_pygetset[] = { #define GETSETNAME(op, name) gaea##op##_##name GET (hsz, "AAD.hsz -> precommitted header length or `None'") GET (hlen, "AAD.hlen -> header length so far") @@ -1181,7 +1181,7 @@ static PyObject *gaeameth_hashstrz(PyObject *me, PyObject *arg) RETURN_ME; } -static PyMethodDef gaeadaad_pymethods[] = { +static const PyMethodDef gaeadaad_pymethods[] = { #define METHNAME(name) gaeameth_##name METH (copy, "AAD.copy() -> AAD'") METH (hash, "AAD.hash(H)") @@ -1237,7 +1237,7 @@ static PyObject *gaeeget_tsz(PyObject *me, void *hunoz) static PyObject *gaeeget_mlen(PyObject *me, void *hunoz) { return getulong(GAEADENC_MLEN(me)); } -static PyGetSetDef gaeadenc_pygetset[] = { +static const PyGetSetDef gaeadenc_pygetset[] = { #define GETSETNAME(op, name) gaee##op##_##name GET (hsz, "ENC.hsz -> precommitted header length or `None'") GET (msz, "ENC.msz -> precommitted message length or `None'") @@ -1362,7 +1362,7 @@ end: return (rc); } -static PyMethodDef gaeadenc_pymethods[] = { +static const PyMethodDef gaeadenc_pymethods[] = { #define METHNAME(name) gaeemeth_##name METH (aad, "ENC.aad() -> AAD") KWMETH(reinit, "ENC.reinit(NONCE, [hsz], [msz], [tsz])") @@ -1412,7 +1412,7 @@ static PyObject *gaedget_tsz(PyObject *me, void *hunoz) static PyObject *gaedget_clen(PyObject *me, void *hunoz) { return getulong(GAEADDEC_CLEN(me)); } -static PyGetSetDef gaeaddec_pygetset[] = { +static const PyGetSetDef gaeaddec_pygetset[] = { #define GETSETNAME(op, name) gaed##op##_##name GET (hsz, "DEC.hsz -> precommitted header length or `None'") GET (csz, "DEC.csz -> precommitted ciphertext length or `None'") @@ -1525,7 +1525,7 @@ end: return (rc); } -static PyMethodDef gaeaddec_pymethods[] = { +static const PyMethodDef gaeaddec_pymethods[] = { #define METHNAME(name) gaedmeth_##name METH (aad, "DEC.aad() -> AAD") KWMETH(reinit, "DEC.reinit(NONCE, [hsz], [csz], [tsz])") @@ -1570,7 +1570,7 @@ static PyTypeObject gcaead_pytype_skel = { 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ - gcaead_pygetset, /* @tp_getset@ */ + PYGETSET(gcaead), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -1616,7 +1616,7 @@ static PyTypeObject gaeadkey_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - gaeadkey_pymethods, /* @tp_methods@ */ + PYMETHODS(gaeadkey), /* @tp_methods@ */ 0, /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ @@ -1712,9 +1712,9 @@ static PyTypeObject gaeadaad_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - gaeadaad_pymethods, /* @tp_methods@ */ + PYMETHODS(gaeadaad), /* @tp_methods@ */ 0, /* @tp_members@ */ - gaeadaad_pygetset, /* @tp_getset@ */ + PYGETSET(gaeadaad), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -1808,9 +1808,9 @@ static PyTypeObject gaeadenc_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - gaeadenc_pymethods, /* @tp_methods@ */ + PYMETHODS(gaeadenc), /* @tp_methods@ */ 0, /* @tp_members@ */ - gaeadenc_pygetset, /* @tp_getset@ */ + PYGETSET(gaeadenc), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -1904,9 +1904,9 @@ static PyTypeObject gaeaddec_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - gaeaddec_pymethods, /* @tp_methods@ */ + PYMETHODS(gaeaddec), /* @tp_methods@ */ 0, /* @tp_members@ */ - gaeaddec_pygetset, /* @tp_getset@ */ + PYGETSET(gaeaddec), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -2048,7 +2048,7 @@ static PyObject *ghmeth_done(PyObject *me, PyObject *arg) return (rc); } -static PyGetSetDef gchash_pygetset[] = { +static const PyGetSetDef gchash_pygetset[] = { #define GETSETNAME(op, name) gch##op##_##name GET (bufsz, "CH.bufsz -> hash buffer size, or zero") GET (hashsz, "CH.hashsz -> hash output size") @@ -2057,7 +2057,7 @@ static PyGetSetDef gchash_pygetset[] = { { 0 } }; -static PyMethodDef ghash_pymethods[] = { +static const PyMethodDef ghash_pymethods[] = { #define METHNAME(name) ghmeth_##name METH (copy, "H.copy() -> HH") METH (hash, "H.hash(M)") @@ -2108,7 +2108,7 @@ static PyTypeObject gchash_pytype_skel = { 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ - gchash_pygetset, /* @tp_getset@ */ + PYGETSET(gchash), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -2154,7 +2154,7 @@ static PyTypeObject ghash_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - ghash_pymethods, /* @tp_methods@ */ + PYMETHODS(ghash), /* @tp_methods@ */ 0, /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ @@ -2278,7 +2278,7 @@ static PyObject *gcmget_keysz(PyObject *me, void *hunoz) static PyObject *gcmget_tagsz(PyObject *me, void *hunoz) { return (PyInt_FromLong(GCMAC_CM(me)->hashsz)); } -static PyGetSetDef gcmac_pygetset[] = { +static const PyGetSetDef gcmac_pygetset[] = { #define GETSETNAME(op, name) gcm##op##_##name GET (keysz, "CM.keysz -> acceptable key sizes") GET (tagsz, "CM.tagsz -> MAC output size") @@ -2322,7 +2322,7 @@ static PyTypeObject gcmac_pytype_skel = { 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ - gcmac_pygetset, /* @tp_getset@ */ + PYGETSET(gcmac), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -2614,7 +2614,7 @@ end: return (0); } -static PyGetSetDef poly1305cls_pygetset[] = { +static const PyGetSetDef poly1305cls_pygetset[] = { #define GETSETNAME(op, name) poly1305cls##op##_##name GET (keysz, "PC.keysz -> acceptable key sizes") GET (masksz, "PC.masksz -> mask size") @@ -2624,7 +2624,7 @@ static PyGetSetDef poly1305cls_pygetset[] = { { 0 } }; -static PyMethodDef poly1305hash_pymethods[] = { +static const PyMethodDef poly1305hash_pymethods[] = { #define METHNAME(name) polymeth_##name METH (copy, "P.copy() -> PP") METH (hash, "P.hash(M)") @@ -2678,7 +2678,7 @@ static PyTypeObject poly1305cls_pytype_skel = { 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ - poly1305cls_pygetset, /* @tp_getset@ */ + PYGETSET(poly1305cls), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -2772,7 +2772,7 @@ static PyTypeObject poly1305hash_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - poly1305hash_pymethods, /* @tp_methods@ */ + PYMETHODS(poly1305hash), /* @tp_methods@ */ 0, /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ @@ -2925,14 +2925,14 @@ end: return (rc); } -static PyGetSetDef kxvik_pygetset[] = { +static const PyGetSetDef kxvik_pygetset[] = { #define GETSETNAME(op, name) kxvik##op##_##name GETSET(nround, "KECCAK.nround -> number of rounds") #undef GETSETNAME { 0 } }; -static PyMethodDef kxvik_pymethods[] = { +static const PyMethodDef kxvik_pymethods[] = { #define METHNAME(func) kxvikmeth_##func METH (copy, "KECCAK.copy() -> KECCAK'") METH (mix, "KECCAK.mix(DATA)") @@ -2975,9 +2975,9 @@ static PyTypeObject kxvik_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - kxvik_pymethods, /* @tp_methods@ */ + PYMETHODS(kxvik), /* @tp_methods@ */ 0, /* @tp_members@ */ - kxvik_pygetset, /* @tp_getset@ */ + PYGETSET(kxvik), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -3161,7 +3161,7 @@ static PyObject *shakeget_state(PyObject *me, void *hunoz) st == 1 ? "squeeze" : "dead")); } -static PyGetSetDef shake_pygetset[] = { +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") @@ -3170,7 +3170,7 @@ static PyGetSetDef shake_pygetset[] = { { 0 } }; -static PyMethodDef shake_pymethods[] = { +static const PyMethodDef shake_pymethods[] = { #define METHNAME(func) shakemeth_##func METH (copy, "S.copy() -> SS") METH (hash, "S.hash(M)") @@ -3222,9 +3222,9 @@ static PyTypeObject shake_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - shake_pymethods, /* @tp_methods@ */ + PYMETHODS(shake), /* @tp_methods@ */ 0, /* @tp_members@ */ - shake_pygetset, /* @tp_getset@ */ + PYGETSET(shake), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -3465,7 +3465,7 @@ end: return (rc); } -static PyGetSetDef gcprp_pygetset[] = { +static const PyGetSetDef gcprp_pygetset[] = { #define GETSETNAME(op, name) gcp##op##_##name GET (keysz, "CP.keysz -> acceptable key sizes") GET (blksz, "CP.blksz -> block size") @@ -3474,7 +3474,7 @@ static PyGetSetDef gcprp_pygetset[] = { { 0 } }; -static PyMethodDef gprp_pymethods[] = { +static const PyMethodDef gprp_pymethods[] = { #define METHNAME(name) gpmeth_##name METH (encrypt, "P.encrypt(PT) -> CT") METH (decrypt, "P.decrypt(CT) -> PT") @@ -3517,7 +3517,7 @@ static PyTypeObject gcprp_pytype_skel = { 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ - gcprp_pygetset, /* @tp_getset@ */ + PYGETSET(gcprp), /* @tp_getset@ */ 0, /* @tp_base@ */ 0, /* @tp_dict@ */ 0, /* @tp_descr_get@ */ @@ -3563,7 +3563,7 @@ static PyTypeObject gprp_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - gprp_pymethods, /* @tp_methods@ */ + PYMETHODS(gprp), /* @tp_methods@ */ 0, /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ @@ -3580,7 +3580,7 @@ static PyTypeObject gprp_pytype_skel = { /*----- Main code ---------------------------------------------------------*/ -static PyMethodDef methods[] = { +static const PyMethodDef methods[] = { #define METHNAME(func) meth_##func METH (_KeySZ_fromdl, "fromdl(N) -> M: " "convert integer discrete log field size to work factor")