X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/67c75893d1c2802da465c8973276096a4d862436..a444923a0b12546f16e042926904a94cbec456b3:/algorithms.c diff --git a/algorithms.c b/algorithms.c index babee57..4e22a54 100644 --- a/algorithms.c +++ b/algorithms.c @@ -562,7 +562,7 @@ static void gcipher_pydealloc(PyObject *me) } static PyObject *gccget_name(PyObject *me, void *hunoz) - { return (PyString_FromString(GCCIPHER_CC(me)->name)); } + { return (TEXT_FROMSTR(GCCIPHER_CC(me)->name)); } static PyObject *gccget_keysz(PyObject *me, void *hunoz) { return (keysz_pywrap(GCCIPHER_CC(me)->keysz)); } @@ -577,7 +577,7 @@ static PyObject *gcmeth_encrypt(PyObject *me, PyObject *arg) if (!PyArg_ParseTuple(arg, "O&:encrypt", convbin, &m)) return (0); rc = bytestring_pywrap(0, m.sz); - GC_ENCRYPT(GCIPHER_C(me), m.p, PyString_AS_STRING(rc), m.sz); + GC_ENCRYPT(GCIPHER_C(me), m.p, BIN_PTR(rc), m.sz); return (rc); } @@ -589,7 +589,7 @@ static PyObject *gcmeth_enczero(PyObject *me, PyObject *arg) if (!PyArg_ParseTuple(arg, "i:enczero", &sz)) return (0); rc = bytestring_pywrap(0, sz); - p = PyString_AS_STRING(rc); + p = BIN_PTR(rc); memset(p, 0, sz); GC_ENCRYPT(GCIPHER_C(me), p, p, sz); return (rc); @@ -602,7 +602,7 @@ static PyObject *gcmeth_decrypt(PyObject *me, PyObject *arg) if (!PyArg_ParseTuple(arg, "O&:decrypt", convbin, &c)) return (0); rc = bytestring_pywrap(0, c.sz); - GC_DECRYPT(GCIPHER_C(me), c.p, PyString_AS_STRING(rc), c.sz); + GC_DECRYPT(GCIPHER_C(me), c.p, BIN_PTR(rc), c.sz); return (rc); } @@ -614,7 +614,7 @@ static PyObject *gcmeth_deczero(PyObject *me, PyObject *arg) if (!PyArg_ParseTuple(arg, "i:deczero", &sz)) return (0); rc = bytestring_pywrap(0, sz); - p = PyString_AS_STRING(rc); + p = BIN_PTR(rc); memset(p, 0, sz); GC_DECRYPT(GCIPHER_C(me), p, p, sz); return (rc); @@ -902,8 +902,8 @@ static PyObject *gcaead_pywrap(gcaead *aec) #define MKTYPE(obj, thing, newfn, namefmt) do { \ (obj) = newtype(gcaead_pytype, 0, 0); \ - (obj)->ty.ht_name = PyString_FromFormat(namefmt, aec->name); \ - (obj)->ty.ht_type.tp_name = PyString_AS_STRING((obj)->ty.ht_name); \ + (obj)->ty.ht_name = TEXT_FORMAT(namefmt, aec->name); \ + (obj)->ty.ht_type.tp_name = TEXT_PTR((obj)->ty.ht_name); \ (obj)->ty.ht_type.tp_basicsize = sizeof(gaead##thing##_pyobj); \ (obj)->ty.ht_type.tp_base = gaead##thing##_pytype; \ Py_INCREF(gaead##thing##_pytype); \ @@ -931,7 +931,7 @@ static void gaeadkey_pydealloc(PyObject *me) { GAEAD_DESTROY(GAEADKEY_K(me)); Py_DECREF(Py_TYPE(me)); FREEOBJ(me); } static PyObject *gcaeget_name(PyObject *me, void *hunoz) - { return (PyString_FromString(GCAEAD_AEC(me)->name)); } + { return (TEXT_FROMSTR(GCAEAD_AEC(me)->name)); } static PyObject *gcaeget_keysz(PyObject *me, void *hunoz) { return (keysz_pywrap(GCAEAD_AEC(me)->keysz)); } @@ -1153,7 +1153,6 @@ end: return (rc); } - static PyObject *gaeameth_hash(PyObject *me, PyObject *arg) { struct bin h; @@ -1367,7 +1366,7 @@ static PyObject *gaeemeth_done(PyObject *me, PyObject *arg, PyObject *kw) csz = ge->e->ops->c->bufsz; c = xmalloc(csz); buf_init(&b, c, csz); tag = bytestring_pywrap(0, tsz); err = GAEAD_DONE(ge->e, aad == Py_None ? 0 : GAEADAAD_A(aad), &b, - PyString_AS_STRING(tag), tsz); + BIN_PTR(tag), tsz); assert(!err); (void)err; buf_flip(&b); rc = Py_BuildValue("NN", bytestring_pywrapbuf(&b), tag); end: @@ -1994,7 +1993,7 @@ static void ghash_pydealloc(PyObject *me) } static PyObject *gchget_name(PyObject *me, void *hunoz) - { return (PyString_FromString(GCHASH_CH(me)->name)); } + { return (TEXT_FROMSTR(GCHASH_CH(me)->name)); } static PyObject *gchget_hashsz(PyObject *me, void *hunoz) { return (PyInt_FromLong(GCHASH_CH(me)->hashsz)); } @@ -2050,7 +2049,7 @@ static PyObject *ghmeth_done(PyObject *me) PyObject *rc; g = GH_COPY(GHASH_H(me)); rc = bytestring_pywrap(0, g->ops->c->hashsz); - GH_DONE(g, PyString_AS_STRING(rc)); + GH_DONE(g, BIN_PTR(rc)); GH_DESTROY(g); return (rc); } @@ -2253,8 +2252,8 @@ static PyObject *gmac_pywrap(PyObject *cobj, gmac *m) else Py_INCREF(cobj); g = newtype((PyTypeObject *)cobj, 0, 0); g->ty.ht_type.tp_basicsize = sizeof(ghash_pyobj); - g->ty.ht_name = PyString_FromFormat("%s(keyed)", m->ops->c->name); - g->ty.ht_type.tp_name = PyString_AS_STRING(g->ty.ht_name); + g->ty.ht_name = TEXT_FORMAT("%s(keyed)", m->ops->c->name); + g->ty.ht_type.tp_name = TEXT_PTR(g->ty.ht_name); g->ty.ht_type.tp_base = gmhash_pytype; Py_INCREF(gmac_pytype); g->ty.ht_type.tp_flags = (Py_TPFLAGS_DEFAULT | @@ -2276,7 +2275,7 @@ static void gmac_pydealloc(PyObject *me) } static PyObject *gcmget_name(PyObject *me, void *hunoz) - { return (PyString_FromString(GCMAC_CM(me)->name)); } + { return (TEXT_FROMSTR(GCMAC_CM(me)->name)); } static PyObject *gcmget_keysz(PyObject *me, void *hunoz) { return (keysz_pywrap(GCMAC_CM(me)->keysz)); } @@ -2490,9 +2489,9 @@ static PyObject *poly1305key_pynew(PyTypeObject *ty, if (keysz(k.sz, poly1305_keysz) != k.sz) VALERR("bad key length"); pk = newtype(ty, 0, 0); - pk->ty.ht_name = PyString_FromString("poly1305(keyed)"); + pk->ty.ht_name = TEXT_FROMSTR("poly1305(keyed)"); pk->ty.ht_type.tp_basicsize = sizeof(poly1305hash_pyobj); - pk->ty.ht_type.tp_name = PyString_AS_STRING(pk->ty.ht_name); + pk->ty.ht_type.tp_name = TEXT_PTR(pk->ty.ht_name); pk->ty.ht_type.tp_base = poly1305hash_pytype; Py_INCREF(poly1305key_pytype); pk->ty.ht_type.tp_flags = (Py_TPFLAGS_DEFAULT | @@ -2511,7 +2510,7 @@ end: } static PyObject *poly1305clsget_name(PyObject *me, void *hunoz) - { return (PyString_FromString("poly1305")); } + { return (TEXT_FROMSTR("poly1305")); } static PyObject *poly1305clsget_keysz(PyObject *me, void *hunoz) { return (keysz_pywrap(poly1305_keysz)); } @@ -2600,7 +2599,7 @@ static PyObject *polymeth_done(PyObject *me) PyObject *rc; if (!(P1305_F(me) & f_mask)) VALERR("no mask"); rc = bytestring_pywrap(0, POLY1305_TAGSZ); - poly1305_done(P1305_CTX(me), PyString_AS_STRING(rc)); + poly1305_done(P1305_CTX(me), BIN_PTR(rc)); return (rc); end: return (0); @@ -2794,7 +2793,7 @@ static const PyTypeObject poly1305hash_pytype_skel = { if (n.sz != HDANCE##_INSZ) VALERR("bad input length"); \ rc = bytestring_pywrap(0, HSALSA20_OUTSZ); \ dance##_init(&dance, k.p, k.sz, 0); \ - hdance##_prf(&dance, n.p, PyString_AS_STRING(rc)); \ + hdance##_prf(&dance, n.p, BIN_PTR(rc)); \ return (rc); \ end: \ return (0); \ @@ -2878,7 +2877,7 @@ static PyObject *kxvikmeth_extract(PyObject *me, PyObject *arg) if (!PyArg_ParseTuple(arg, "O&:extract", convuint, &n)) goto end; if (n > 200) VALERR("out of range"); rc = bytestring_pywrap(0, n); - q = (octet *)PyString_AS_STRING(rc); + q = (octet *)BIN_PTR(rc); keccak1600_extract(&k->s, t, (n + 7)/8); i = 0; while (n > 8) { STORE64_L_(q, t[i]); i++; q += 8; n -= 8; } @@ -3069,7 +3068,7 @@ static PyObject *shakemeth_done(PyObject *me, PyObject *arg) if (!PyArg_ParseTuple(arg, "O&:done", convszt, &n)) goto end; if (shake_check(me, 0)) goto end; rc = bytestring_pywrap(0, n); - shake_done(SHAKE_H(me), PyString_AS_STRING(rc), n); + shake_done(SHAKE_H(me), BIN_PTR(rc), n); SHAKE_ST(me) = -1; end: return (rc); @@ -3093,7 +3092,7 @@ static PyObject *shakemeth_get(PyObject *me, PyObject *arg) if (!PyArg_ParseTuple(arg, "O&:get", convszt, &sz)) goto end; if (shake_check(me, 1)) goto end; rc = bytestring_pywrap(0, sz); - shake_get(SHAKE_H(me), PyString_AS_STRING(rc), sz); + shake_get(SHAKE_H(me), BIN_PTR(rc), sz); end: return (rc); } @@ -3106,7 +3105,7 @@ static PyObject *shakemeth_mask(PyObject *me, PyObject *arg) if (!PyArg_ParseTuple(arg, "O&:mask", convbin, &in)) goto end; if (shake_check(me, 1)) goto end; rc = bytestring_pywrap(0, in.sz); - shake_mask(SHAKE_H(me), in.p, PyString_AS_STRING(rc), in.sz); + shake_mask(SHAKE_H(me), in.p, BIN_PTR(rc), in.sz); end: return (rc); } @@ -3114,8 +3113,8 @@ end: static PyObject *shakeget_state(PyObject *me, void *hunoz) { int st = SHAKE_ST(me); - return (PyString_FromString(st == 0 ? "absorb" : - st == 1 ? "squeeze" : "dead")); + return (TEXT_FROMSTR(st == 0 ? "absorb" : + st == 1 ? "squeeze" : "dead")); } static const PyMemberDef shake_pymembers[] = { @@ -3394,7 +3393,7 @@ static PyObject *gcprp_pywrap(const prpinfo *prp) } static PyObject *gcpget_name(PyObject *me, void *hunoz) - { return (PyString_FromString(GCPRP_PRP(me)->name)); } + { return (TEXT_FROMSTR(GCPRP_PRP(me)->name)); } static PyObject *gcpget_keysz(PyObject *me, void *hunoz) { return (keysz_pywrap(GCPRP_PRP(me)->keysz)); } static PyObject *gcpget_blksz(PyObject *me, void *hunoz) @@ -3408,7 +3407,7 @@ static PyObject *gpmeth_encrypt(PyObject *me, PyObject *arg) if (!PyArg_ParseTuple(arg, "O&:encrypt", convbin, &m)) goto end; if (m.sz != GPRP_PRP(me)->blksz) VALERR("incorrect block length"); rc = bytestring_pywrap(0, m.sz); - GPRP_PRP(me)->eblk(GPRP_CTX(me), m.p, PyString_AS_STRING(rc)); + GPRP_PRP(me)->eblk(GPRP_CTX(me), m.p, BIN_PTR(rc)); end: return (rc); } @@ -3421,7 +3420,7 @@ static PyObject *gpmeth_decrypt(PyObject *me, PyObject *arg) if (!PyArg_ParseTuple(arg, "O&:decrypt", convbin, &c)) goto end; if (c.sz != GPRP_PRP(me)->blksz) VALERR("incorrect block length"); rc = bytestring_pywrap(0, c.sz); - GPRP_PRP(me)->dblk(GPRP_CTX(me), c.p, PyString_AS_STRING(rc)); + GPRP_PRP(me)->dblk(GPRP_CTX(me), c.p, BIN_PTR(rc)); end: return (rc); }