From: Mark Wooding Date: Mon, 6 Apr 2020 02:38:33 +0000 (+0000) Subject: Merge branch '1.2.x' into 1.3.x X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/commitdiff_plain/b6457c8a8723f6b45e6191e52a91ea2155e8ccf1?hp=-c Merge branch '1.2.x' into 1.3.x * 1.2.x: ec.c: Fix length type which should have been `Py_ssize_t'. --- b6457c8a8723f6b45e6191e52a91ea2155e8ccf1 diff --combined ec.c index 184dc9e,fe5f6fb..b555431 --- a/ec.c +++ b/ec.c @@@ -292,9 -292,9 +292,9 @@@ static PyObject *epmeth_ec2osp(PyObjec ec pp = EC_INIT; unsigned f = EC_EXPLY; int len; - char *kwlist[] = { "flags", 0 }; + static const char *const kwlist[] = { "flags", 0 }; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O&:ec2osp", kwlist, + if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O&:ec2osp", KWLIST, convuint, &f)) return (0); len = c->f->noctets * 2 + 1; @@@ -443,7 -443,7 +443,7 @@@ static int ecptxl_1(ec_curve *c, ec *p PyObject *y = 0, *z = 0, *t = 0; mp *xx = 0; const void *q; - int n; + Py_ssize_t n; qd_parse qd; Py_XINCREF(x); @@@ -502,9 -502,9 +502,9 @@@ static PyObject *ecptnc_pynew(PyTypeObj { PyObject *x = 0, *y = 0, *z = 0; ec p = EC_INIT; - char *kwlist[] = { "x", "y", 0 }; + static const char *const kwlist[] = { "x", "y", 0 }; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "|OO:new", kwlist, &x, &y) || + if (!PyArg_ParseTupleAndKeywords(arg, kw, "|OO:new", KWLIST, &x, &y) || ecptxl(0, &p, x, y, z)) goto end; return (ecpt_pywrapout(ty, &p)); @@@ -543,9 -543,9 +543,9 @@@ static PyObject *ecpt_pynew(PyTypeObjec { PyObject *x = 0, *y = 0, *z = 0; ec p = EC_INIT; - char *kwlist[] = { "x", "y", "z", 0 }; + static const char *const kwlist[] = { "x", "y", "z", 0 }; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "|OOO:new", kwlist, + if (!PyArg_ParseTupleAndKeywords(arg, kw, "|OOO:new", KWLIST, &x, &y, &z) || ecptxl(ECCURVE_C(ty), &p, x, y, z)) goto end; @@@ -640,9 -640,7 +640,9 @@@ static PyTypeObject ecpt_pytype_skel = Py_TPFLAGS_BASETYPE, /* @tp_doc@ */ -"Elliptic curve points, not associated with any curve.", +"ECPt([X, [Y]]): elliptic curve points, not associated with any curve.\n\ + X alone may be None, an existing point, a string 'X, Y', an\n\ + x-coordinate, or a pair (X, Y); X and Y should be a coordinate pair.", 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */ @@@ -864,9 -862,9 +864,9 @@@ static PyObject *meth__ECPtCurve_os2ecp ec_curve *cc; unsigned f = EC_XONLY | EC_LSB | EC_SORT | EC_EXPLY; ec pp = EC_INIT; - char *kwlist[] = { "class", "buf", "flags", 0 }; + static const char *const kwlist[] = { "class", "buf", "flags", 0 }; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "Os#|O&:os2ecp", kwlist, + if (!PyArg_ParseTupleAndKeywords(arg, kw, "Os#|O&:os2ecp", KWLIST, &me, &p, &len, convuint, &f)) return (0); buf_init(&b, p, len); @@@ -942,11 -940,11 +942,11 @@@ end static PyObject *ecmeth_rand(PyObject *me, PyObject *arg, PyObject *kw) { - char *kwlist[] = { "rng", 0 }; + static const char *const kwlist[] = { "rng", 0 }; grand *r = &rand_global; ec p = EC_INIT; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O&:rand", kwlist, + if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O&:rand", KWLIST, convgrand, &r)) return (0); ec_rand(ECCURVE_C(me), &p, r); @@@ -1002,10 -1000,10 +1002,10 @@@ static PyObject *eccurve_pynew(PyTypeOb { PyObject *fobj; PyObject *cobj = 0; - char *kwlist[] = { "field", "a", "b", 0 }; + static const char *const kwlist[] = { "field", "a", "b", 0 }; mp *aa = 0, *bb = 0; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "O!O&O&", kwlist, + if (!PyArg_ParseTupleAndKeywords(arg, kw, "O!O&O&", KWLIST, field_pytype, &fobj, convmp, &aa, convmp, &bb)) goto end; @@@ -1096,7 -1094,7 +1096,7 @@@ static PyTypeObject eccurve_pytype_ske Py_TPFLAGS_BASETYPE, /* @tp_doc@ */ - "An elliptic curve. Abstract class.", +"An elliptic curve. Abstract class.", 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */ @@@ -1150,8 -1148,7 +1150,8 @@@ static PyTypeObject ecprimecurve_pytype Py_TPFLAGS_BASETYPE, /* @tp_doc@ */ - "An elliptic curve over a prime field. Use ecprimeprojcurve.", +"ECPrimeCurve(FIELD, A, B): an elliptic curve over a prime field.\n\ + Use ECPrimeProjCurve instead.", 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */ @@@ -1205,8 -1202,7 +1205,8 @@@ static PyTypeObject ecprimeprojcurve_py Py_TPFLAGS_BASETYPE, /* @tp_doc@ */ - "An elliptic curve over a prime field, using projective coordinates.", +"ECPrimeProjCurve(FIELD, A, B): an elliptic curve over a prime field\n\ + using projective coordinates.", 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */ @@@ -1260,8 -1256,7 +1260,8 @@@ static PyTypeObject ecbincurve_pytype_s Py_TPFLAGS_BASETYPE, /* @tp_doc@ */ - "An elliptic curve over a binary field. Use ecbinprojcurve.", +"ECBinCurve(FIELD, A, B): an elliptic curve over a binary field.\n\ + Use ECBinProjCurve instead.", 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */ @@@ -1315,8 -1310,7 +1315,8 @@@ static PyTypeObject ecbinprojcurve_pyty Py_TPFLAGS_BASETYPE, /* @tp_doc@ */ - "An elliptic curve over a binary field, using projective coordinates.", +"ECBinProjCurve(FIELD, A, B): an elliptic curve over a binary field,\n\ + using projective coordinates.", 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */ @@@ -1377,10 -1371,10 +1377,10 @@@ static PyObject *ecinfo_pynew(PyTypeObj { ec_info ei = { 0 }; PyObject *e, *g; - char *kwlist[] = { "curve", "G", "r", "h", 0 }; + static const char *const kwlist[] = { "curve", "G", "r", "h", 0 }; ecinfo_pyobj *rc = 0; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "O!O!O&O&:new", kwlist, + if (!PyArg_ParseTupleAndKeywords(arg, kw, "O!O!O&O&:new", KWLIST, eccurve_pytype, &e, ecpt_pytype, &g, convmp, &ei.r, convmp, &ei.h)) goto end; @@@ -1448,11 -1442,11 +1448,11 @@@ end static PyObject *eimeth_check(PyObject *me, PyObject *arg, PyObject *kw) { - char *kwlist[] = { "rng", 0 }; + static const char *const kwlist[] = { "rng", 0 }; grand *r = &rand_global; const char *p; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O&:check", kwlist, + if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O&:check", KWLIST, convgrand, &r)) goto end; if ((p = ec_checkinfo(ECINFO_EI(me), r)) != 0) @@@ -1521,7 -1515,7 +1521,7 @@@ static PyTypeObject ecinfo_pytype_skel Py_TPFLAGS_BASETYPE, /* @tp_doc@ */ - "Elliptic curve domain parameters.", +"ECInfo(CURVE, G, R, H): elliptic curve domain parameters.", 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */