~mdw
/
catacomb-python
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ec.c: Reject strings with trailing junk in the curve-point constructor.
[catacomb-python]
/
share.c
diff --git
a/share.c
b/share.c
index
342144e
..
30bff92
100644
(file)
--- a/
share.c
+++ b/
share.c
@@
-53,7
+53,7
@@
static PyObject *gfsget_threshold(PyObject *me, void *hunoz)
static PyObject *gfsget_size(PyObject *me, void *hunoz)
{ return (PyInt_FromLong(GFSHARE_S(me)->sz)); }
static PyObject *gfsget_size(PyObject *me, void *hunoz)
{ return (PyInt_FromLong(GFSHARE_S(me)->sz)); }
-static PyGetSetDef gfshare_pygetset[]= {
+static
const
PyGetSetDef gfshare_pygetset[]= {
#define GETSETNAME(op, name) gfs##op##_##name
GET (threshold, "S.threshold -> THRESHOLD")
GET (size, "S.size -> SECRETSZ")
#define GETSETNAME(op, name) gfs##op##_##name
GET (threshold, "S.threshold -> THRESHOLD")
GET (size, "S.size -> SECRETSZ")
@@
-61,8
+61,8
@@
static PyGetSetDef gfshare_pygetset[]= {
{ 0 }
};
{ 0 }
};
-static PyTypeObject gfshare_pytype_skel = {
- Py
Object_HEAD_INIT(&PyType_Type) 0,
/* Header */
+static
const
PyTypeObject gfshare_pytype_skel = {
+ Py
VarObject_HEAD_INIT(0, 0)
/* Header */
"GFShare", /* @tp_name@ */
sizeof(gfshare_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
"GFShare", /* @tp_name@ */
sizeof(gfshare_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-96,7
+96,7
@@
static PyTypeObject gfshare_pytype_skel = {
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
-
gfshare_pygetset,
/* @tp_getset@ */
+
PYGETSET(gfshare),
/* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
@@
-112,19
+112,19
@@
static PyTypeObject gfshare_pytype_skel = {
static PyObject *gfsharesplit_pynew(PyTypeObject *ty,
PyObject *arg, PyObject *kw)
{
static PyObject *gfsharesplit_pynew(PyTypeObject *ty,
PyObject *arg, PyObject *kw)
{
- char *p;
- Py_ssize_t n;
+ struct bin in;
unsigned t;
grand *r = &rand_global;
gfshare_pyobj *s;
static const char *const kwlist[] = { "threshold", "secret", "rng", 0 };
unsigned t;
grand *r = &rand_global;
gfshare_pyobj *s;
static const char *const kwlist[] = { "threshold", "secret", "rng", 0 };
- if (!PyArg_ParseTupleAndKeywords(arg, kw, "O&s#|O&:new", KWLIST,
- convuint, &t, &p, &n, convgrand, &r))
+ if (!PyArg_ParseTupleAndKeywords(arg, kw, "O&O&|O&:new", KWLIST,
+ convuint, &t, convbin, &in,
+ convgrand, &r))
goto end;
if (!t || t > 255) VALERR("threshold must be nonzero and < 256");
s = (gfshare_pyobj *)ty->tp_alloc(ty, 0);
goto end;
if (!t || t > 255) VALERR("threshold must be nonzero and < 256");
s = (gfshare_pyobj *)ty->tp_alloc(ty, 0);
- gfshare_create(&s->s, t,
n
);
- gfshare_mkshares(&s->s, r, p);
+ gfshare_create(&s->s, t,
in.sz
);
+ gfshare_mkshares(&s->s, r,
in.
p);
return ((PyObject *)s);
end:
return (0);
return ((PyObject *)s);
end:
return (0);
@@
-137,20
+137,20
@@
static PyObject *gfsmeth_get(PyObject *me, PyObject *arg)
if (!PyArg_ParseTuple(arg, "O&:get", convuint, &i)) goto end;
if (i >= 255) VALERR("index must be < 255");
rc = bytestring_pywrap(0, GFSHARE_S(me)->sz);
if (!PyArg_ParseTuple(arg, "O&:get", convuint, &i)) goto end;
if (i >= 255) VALERR("index must be < 255");
rc = bytestring_pywrap(0, GFSHARE_S(me)->sz);
- gfshare_get(GFSHARE_S(me), i,
PyString_AS_STRING
(rc));
+ gfshare_get(GFSHARE_S(me), i,
BIN_PTR
(rc));
end:
return (rc);
}
end:
return (rc);
}
-static PyMethodDef gfsharesplit_pymethods[] = {
+static
const
PyMethodDef gfsharesplit_pymethods[] = {
#define METHNAME(name) gfsmeth_##name
METH (get, "S.get(I) -> SHARE")
#undef METHNAME
{ 0 }
};
#define METHNAME(name) gfsmeth_##name
METH (get, "S.get(I) -> SHARE")
#undef METHNAME
{ 0 }
};
-static PyTypeObject gfsharesplit_pytype_skel = {
- Py
Object_HEAD_INIT(&PyType_Type) 0,
/* Header */
+static
const
PyTypeObject gfsharesplit_pytype_skel = {
+ Py
VarObject_HEAD_INIT(0, 0)
/* Header */
"GFShareSplit", /* @tp_name@ */
sizeof(gfshare_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
"GFShareSplit", /* @tp_name@ */
sizeof(gfshare_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-183,7
+183,7
@@
static PyTypeObject gfsharesplit_pytype_skel = {
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
-
gfsharesplit_pymethods,
/* @tp_methods@ */
+
PYMETHODS(gfsharesplit),
/* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
@@
-228,35
+228,34
@@
end:
static PyObject *gfsmeth_add(PyObject *me, PyObject *arg)
{
unsigned i;
static PyObject *gfsmeth_add(PyObject *me, PyObject *arg)
{
unsigned i;
-
char *p
;
- Py_ssize_t n;
-
if (!PyArg_ParseTuple(arg, "O&s#:add", convuint, &i, &p, &n))
goto end;
+
struct bin s
;
+ if (!PyArg_ParseTuple(arg, "O&O&:add", convuint, &i, convbin, &s))
+
goto end;
if (i > 254) VALERR("index must be < 255");
if (i > 254) VALERR("index must be < 255");
- if (
n
!= GFSHARE_S(me)->sz) VALERR("bad share size");
+ if (
s.sz
!= GFSHARE_S(me)->sz) VALERR("bad share size");
if (gfshare_addedp(GFSHARE_S(me), i)) VALERR("this share already added");
if (GFSHARE_S(me)->i >= GFSHARE_S(me)->t) VALERR("enough shares already");
if (gfshare_addedp(GFSHARE_S(me), i)) VALERR("this share already added");
if (GFSHARE_S(me)->i >= GFSHARE_S(me)->t) VALERR("enough shares already");
- gfshare_add(GFSHARE_S(me), i, p);
+ gfshare_add(GFSHARE_S(me), i,
s.
p);
return (PyInt_FromLong(GFSHARE_S(me)->t - GFSHARE_S(me)->i));
end:
return (0);
}
return (PyInt_FromLong(GFSHARE_S(me)->t - GFSHARE_S(me)->i));
end:
return (0);
}
-static PyObject *gfsmeth_combine(PyObject *me
, PyObject *arg
)
+static PyObject *gfsmeth_combine(PyObject *me)
{
PyObject *rc = 0;
{
PyObject *rc = 0;
- if (!PyArg_ParseTuple(arg, ":combine")) goto end;
if (GFSHARE_S(me)->i < GFSHARE_S(me)->t) VALERR("not enough shares yet");
rc = bytestring_pywrap(0, GFSHARE_S(me)->sz);
if (GFSHARE_S(me)->i < GFSHARE_S(me)->t) VALERR("not enough shares yet");
rc = bytestring_pywrap(0, GFSHARE_S(me)->sz);
- gfshare_combine(GFSHARE_S(me),
PyString_AS_STRING
(rc));
+ gfshare_combine(GFSHARE_S(me),
BIN_PTR
(rc));
end:
return (rc);
}
end:
return (rc);
}
-static PyMethodDef gfsharejoin_pymethods[] = {
+static
const
PyMethodDef gfsharejoin_pymethods[] = {
#define METHNAME(name) gfsmeth_##name
METH (addedp, "S.addedp(I) -> BOOL")
METH (add, "S.add(I, SHARE) -> REMAIN")
#define METHNAME(name) gfsmeth_##name
METH (addedp, "S.addedp(I) -> BOOL")
METH (add, "S.add(I, SHARE) -> REMAIN")
-
METH (combine,
"S.combine() -> SECRET")
+
NAMETH(combine,
"S.combine() -> SECRET")
#undef METHNAME
{ 0 }
};
#undef METHNAME
{ 0 }
};
@@
-264,15
+263,15
@@
static PyMethodDef gfsharejoin_pymethods[] = {
static PyObject *gfsget_remain(PyObject *me, void *hunoz)
{ return (PyInt_FromLong(GFSHARE_S(me)->t - GFSHARE_S(me)->i)); }
static PyObject *gfsget_remain(PyObject *me, void *hunoz)
{ return (PyInt_FromLong(GFSHARE_S(me)->t - GFSHARE_S(me)->i)); }
-static PyGetSetDef gfsharejoin_pygetset[]= {
+static
const
PyGetSetDef gfsharejoin_pygetset[]= {
#define GETSETNAME(op, name) gfs##op##_##name
GET (remain, "S.remain -> REMAIN")
#undef GETSETNAME
{ 0 }
};
#define GETSETNAME(op, name) gfs##op##_##name
GET (remain, "S.remain -> REMAIN")
#undef GETSETNAME
{ 0 }
};
-static PyTypeObject gfsharejoin_pytype_skel = {
- Py
Object_HEAD_INIT(&PyType_Type) 0,
/* Header */
+static
const
PyTypeObject gfsharejoin_pytype_skel = {
+ Py
VarObject_HEAD_INIT(0, 0)
/* Header */
"GFShareJoin", /* @tp_name@ */
sizeof(gfshare_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
"GFShareJoin", /* @tp_name@ */
sizeof(gfshare_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-305,9
+304,9
@@
static PyTypeObject gfsharejoin_pytype_skel = {
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
-
gfsharejoin_pymethods,
/* @tp_methods@ */
+
PYMETHODS(gfsharejoin),
/* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_members@ */
-
gfsharejoin_pygetset,
/* @tp_getset@ */
+
PYGETSET(gfsharejoin),
/* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
@@
-345,7
+344,7
@@
static PyObject *sget_threshold(PyObject *me, void *hunoz)
static PyObject *sget_modulus(PyObject *me, void *hunoz)
{ return (mp_pywrap(SHARE_S(me)->p)); }
static PyObject *sget_modulus(PyObject *me, void *hunoz)
{ return (mp_pywrap(SHARE_S(me)->p)); }
-static PyGetSetDef share_pygetset[]= {
+static
const
PyGetSetDef share_pygetset[]= {
#define GETSETNAME(op, name) s##op##_##name
GET (threshold, "S.threshold -> THRESHOLD")
GET (modulus, "S.modulus -> MODULUS")
#define GETSETNAME(op, name) s##op##_##name
GET (threshold, "S.threshold -> THRESHOLD")
GET (modulus, "S.modulus -> MODULUS")
@@
-353,8
+352,8
@@
static PyGetSetDef share_pygetset[]= {
{ 0 }
};
{ 0 }
};
-static PyTypeObject share_pytype_skel = {
- Py
Object_HEAD_INIT(&PyType_Type) 0,
/* Header */
+static
const
PyTypeObject share_pytype_skel = {
+ Py
VarObject_HEAD_INIT(0, 0)
/* Header */
"Share", /* @tp_name@ */
sizeof(share_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
"Share", /* @tp_name@ */
sizeof(share_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-388,7
+387,7
@@
static PyTypeObject share_pytype_skel = {
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
-
share_pygetset,
/* @tp_getset@ */
+
PYGETSET(share),
/* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
@@
-439,15
+438,15
@@
end:
return (rc);
}
return (rc);
}
-static PyMethodDef sharesplit_pymethods[] = {
+static
const
PyMethodDef sharesplit_pymethods[] = {
#define METHNAME(name) smeth_##name
METH (get, "S.get(I) -> SHARE")
#undef METHNAME
{ 0 }
};
#define METHNAME(name) smeth_##name
METH (get, "S.get(I) -> SHARE")
#undef METHNAME
{ 0 }
};
-static PyTypeObject sharesplit_pytype_skel = {
- Py
Object_HEAD_INIT(&PyType_Type) 0,
/* Header */
+static
const
PyTypeObject sharesplit_pytype_skel = {
+ Py
VarObject_HEAD_INIT(0, 0)
/* Header */
"ShareSplit", /* @tp_name@ */
sizeof(share_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
"ShareSplit", /* @tp_name@ */
sizeof(share_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-480,7
+479,7
@@
static PyTypeObject sharesplit_pytype_skel = {
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
-
sharesplit_pymethods,
/* @tp_methods@ */
+
PYMETHODS(sharesplit),
/* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
@@
-541,21
+540,20
@@
end:
return (rc);
}
return (rc);
}
-static PyObject *smeth_combine(PyObject *me
, PyObject *arg
)
+static PyObject *smeth_combine(PyObject *me)
{
PyObject *rc = 0;
{
PyObject *rc = 0;
- if (!PyArg_ParseTuple(arg, ":combine")) goto end;
if (SHARE_S(me)->i < SHARE_S(me)->t) VALERR("not enough shares yet");
rc = mp_pywrap(share_combine(SHARE_S(me)));
end:
return (rc);
}
if (SHARE_S(me)->i < SHARE_S(me)->t) VALERR("not enough shares yet");
rc = mp_pywrap(share_combine(SHARE_S(me)));
end:
return (rc);
}
-static PyMethodDef sharejoin_pymethods[] = {
+static
const
PyMethodDef sharejoin_pymethods[] = {
#define METHNAME(name) smeth_##name
METH (addedp, "S.addedp(I) -> BOOL")
METH (add, "S.add(I, SHARE) -> REMAIN")
#define METHNAME(name) smeth_##name
METH (addedp, "S.addedp(I) -> BOOL")
METH (add, "S.add(I, SHARE) -> REMAIN")
-
METH (combine,
"S.combine() -> SECRET")
+
NAMETH(combine,
"S.combine() -> SECRET")
#undef METHNAME
{ 0 }
};
#undef METHNAME
{ 0 }
};
@@
-563,15
+561,15
@@
static PyMethodDef sharejoin_pymethods[] = {
static PyObject *sget_remain(PyObject *me, void *hunoz)
{ return (PyInt_FromLong(SHARE_S(me)->t - SHARE_S(me)->i)); }
static PyObject *sget_remain(PyObject *me, void *hunoz)
{ return (PyInt_FromLong(SHARE_S(me)->t - SHARE_S(me)->i)); }
-static PyGetSetDef sharejoin_pygetset[]= {
+static
const
PyGetSetDef sharejoin_pygetset[]= {
#define GETSETNAME(op, name) s##op##_##name
GET (remain, "S.remain -> REMAIN")
#undef GETSETNAME
{ 0 }
};
#define GETSETNAME(op, name) s##op##_##name
GET (remain, "S.remain -> REMAIN")
#undef GETSETNAME
{ 0 }
};
-static PyTypeObject sharejoin_pytype_skel = {
- Py
Object_HEAD_INIT(&PyType_Type) 0,
/* Header */
+static
const
PyTypeObject sharejoin_pytype_skel = {
+ Py
VarObject_HEAD_INIT(0, 0)
/* Header */
"ShareJoin", /* @tp_name@ */
sizeof(share_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
"ShareJoin", /* @tp_name@ */
sizeof(share_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-604,9
+602,9
@@
static PyTypeObject sharejoin_pytype_skel = {
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
-
sharejoin_pymethods,
/* @tp_methods@ */
+
PYMETHODS(sharejoin),
/* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_members@ */
-
sharejoin_pygetset,
/* @tp_getset@ */
+
PYGETSET(sharejoin),
/* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */