~mdw
/
catacomb-python
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bytestring.c (bytestring_pyrepeat): Don't divide by zero.
[catacomb-python]
/
ec.c
diff --git
a/ec.c
b/ec.c
index
63d97d8
..
f7d6181
100644
(file)
--- a/
ec.c
+++ b/
ec.c
@@
-204,8
+204,8
@@
static long ecpt_pyhash(PyObject *me)
EC_OUT(ECPT_C(me), &p, ECPT_P(me));
ec_putraw(ECPT_C(me), &b, &p);
EC_DESTROY(&p);
EC_OUT(ECPT_C(me), &p, ECPT_P(me));
ec_putraw(ECPT_C(me), &b, &p);
EC_DESTROY(&p);
- xfree(q);
h = unihash_hash(&unihash_global, h, BBASE(&b), BLEN(&b));
h = unihash_hash(&unihash_global, h, BBASE(&b), BLEN(&b));
+ xfree(q);
return (h % LONG_MAX);
}
return (h % LONG_MAX);
}
@@
-299,9
+299,9
@@
static PyObject *epmeth_ec2osp(PyObject *me, PyObject *arg, PyObject *kw)
ec pp = EC_INIT;
int f = EC_EXPLY;
int len;
ec pp = EC_INIT;
int f = EC_EXPLY;
int len;
-
char *
kwlist[] = { "flags", 0 };
+
static const char *const
kwlist[] = { "flags", 0 };
- if (!PyArg_ParseTupleAndKeywords(arg, kw, "|i:ectosp",
kwlist
, &f))
+ if (!PyArg_ParseTupleAndKeywords(arg, kw, "|i:ectosp",
KWLIST
, &f))
return (0);
len = c->f->noctets * 2 + 1;
rc = bytestring_pywrap(0, len);
return (0);
len = c->f->noctets * 2 + 1;
rc = bytestring_pywrap(0, len);
@@
-507,9
+507,9
@@
static PyObject *ecptnc_pynew(PyTypeObject *ty, PyObject *arg, PyObject *kw)
{
PyObject *x = 0, *y = 0, *z = 0;
ec p = EC_INIT;
{
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));
ecptxl(0, &p, x, y, z))
goto end;
return (ecpt_pywrapout(ty, &p));
@@
-548,9
+548,9
@@
static PyObject *ecpt_pynew(PyTypeObject *ty, PyObject *arg, PyObject *kw)
{
PyObject *x = 0, *y = 0, *z = 0;
ec p = EC_INIT;
{
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;
&x, &y, &z) ||
ecptxl(ECCURVE_C(ty), &p, x, y, z))
goto end;
@@
-645,7
+645,9
@@
static PyTypeObject ecpt_pytype_skel = {
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
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@ */
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
@@
-835,7
+837,7
@@
static PyObject *ecmeth_mmul(PyObject *me, PyObject *arg)
static PyObject *meth__ECPtCurve_fromraw(PyObject *me, PyObject *arg)
{
char *p;
static PyObject *meth__ECPtCurve_fromraw(PyObject *me, PyObject *arg)
{
char *p;
-
in
t len;
+
Py_ssize_
t len;
buf b;
PyObject *rc = 0;
ec_curve *cc;
buf b;
PyObject *rc = 0;
ec_curve *cc;
@@
-857,15
+859,15
@@
static PyObject *meth__ECPtCurve_os2ecp(PyObject *me,
PyObject *arg, PyObject *kw)
{
char *p;
PyObject *arg, PyObject *kw)
{
char *p;
-
in
t len;
+
Py_ssize_
t len;
buf b;
PyObject *rc = 0;
ec_curve *cc;
int f = EC_XONLY | EC_LSB | EC_SORT | EC_EXPLY;
ec pp = EC_INIT;
buf b;
PyObject *rc = 0;
ec_curve *cc;
int f = EC_XONLY | EC_LSB | EC_SORT | EC_EXPLY;
ec pp = EC_INIT;
-
char *
kwlist[] = { "buf", "flags", 0 };
+
static const char *const
kwlist[] = { "buf", "flags", 0 };
- if (!PyArg_ParseTupleAndKeywords(arg, kw, "Os#|f:os2ecp",
kwlist
,
+ if (!PyArg_ParseTupleAndKeywords(arg, kw, "Os#|f:os2ecp",
KWLIST
,
&me, &p, &len, &f))
return (0);
buf_init(&b, p, len);
&me, &p, &len, &f))
return (0);
buf_init(&b, p, len);
@@
-881,7
+883,7
@@
static PyObject *meth__ECPt_frombuf(PyObject *me, PyObject *arg)
{
buf b;
char *p;
{
buf b;
char *p;
-
in
t sz;
+
Py_ssize_
t sz;
PyObject *rc = 0;
ec pp = EC_INIT;
PyObject *rc = 0;
ec pp = EC_INIT;
@@
-941,11
+943,11
@@
end:
static PyObject *ecmeth_rand(PyObject *me, PyObject *arg, PyObject *kw)
{
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;
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);
convgrand, &r))
return (0);
ec_rand(ECCURVE_C(me), &p, r);
@@
-1001,10
+1003,10
@@
static PyObject *eccurve_pynew(PyTypeObject *ty,
{
PyObject *fobj;
PyObject *cobj = 0;
{
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;
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;
field_pytype, &fobj,
convmp, &aa, convmp, &bb))
goto end;
@@
-1095,7
+1097,7
@@
static PyTypeObject eccurve_pytype_skel = {
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-
"An elliptic curve. Abstract class.",
+"An elliptic curve. Abstract class.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
@@
-1149,7
+1151,8
@@
static PyTypeObject ecprimecurve_pytype_skel = {
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
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@ */
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
@@
-1203,7
+1206,8
@@
static PyTypeObject ecprimeprojcurve_pytype_skel = {
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
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@ */
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
@@
-1257,7
+1261,8
@@
static PyTypeObject ecbincurve_pytype_skel = {
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
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@ */
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
@@
-1311,7
+1316,8
@@
static PyTypeObject ecbinprojcurve_pytype_skel = {
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
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@ */
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
@@
-1372,10
+1378,10
@@
static PyObject *ecinfo_pynew(PyTypeObject *ty, PyObject *arg, PyObject *kw)
{
ec_info ei = { 0 };
PyObject *e, *g;
{
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;
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;
eccurve_pytype, &e, ecpt_pytype, &g,
convmp, &ei.r, convmp, &ei.h))
goto end;
@@
-1443,11
+1449,11
@@
end:
static PyObject *eimeth_check(PyObject *me, PyObject *arg, PyObject *kw)
{
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;
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)
convgrand, &r))
goto end;
if ((p = ec_checkinfo(ECINFO_EI(me), r)) != 0)
@@
-1516,7
+1522,7
@@
static PyTypeObject ecinfo_pytype_skel = {
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-
"E
lliptic curve domain parameters.",
+
"ECInfo(CURVE, G, R, H): e
lliptic curve domain parameters.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_traverse@ */
0, /* @tp_clear@ */