~mdw
/
catacomb-python
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
algorithms.py: Fiddling with whitespace.
[catacomb-python]
/
ec.c
diff --git
a/ec.c
b/ec.c
index
9946205
..
a294f09
100644
(file)
--- a/
ec.c
+++ b/
ec.c
@@
-1,7
+1,5
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id$
- *
* Elliptic curves
*
* (c) 2004 Straylight/Edgeware
* Elliptic curves
*
* (c) 2004 Straylight/Edgeware
@@
-195,16
+193,20
@@
static PyObject *ecpt_pymul(PyObject *x, PyObject *y)
static long ecpt_pyhash(PyObject *me)
{
static long ecpt_pyhash(PyObject *me)
{
- long i;
+ uint32 h;
+ buf b;
ec p = EC_INIT;
ec p = EC_INIT;
+ size_t sz = 2*ECPT_C(me)->f->noctets + 1;
+ octet *q = xmalloc(sz);
+ h = 0xe0fdd039 + ECPT_C(me)->f->ops->ty;
+ buf_init(&b, q, sz);
EC_OUT(ECPT_C(me), &p, ECPT_P(me));
EC_OUT(ECPT_C(me), &p, ECPT_P(me));
- i = 0xe0fdd039; /* random perturbance */
- if (p.x) i ^= mp_tolong(p.x);
- if (p.y) i ^= mp_tolong(p.y);
- if (i == -1) i = -2;
+ ec_putraw(ECPT_C(me), &b, &p);
EC_DESTROY(&p);
EC_DESTROY(&p);
- return (i);
+ xfree(q);
+ h = unihash_hash(&unihash_global, h, BBASE(&b), BLEN(&b));
+ return (h % LONG_MAX);
}
static PyObject *ecpt_pyrichcompare(PyObject *x, PyObject *y, int op)
}
static PyObject *ecpt_pyrichcompare(PyObject *x, PyObject *y, int op)
@@
-591,7
+593,7
@@
static PyNumberMethods ecpt_pynumber = {
static PyTypeObject ecpt_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
static PyTypeObject ecpt_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
- "
catacomb.ECPt",
/* @tp_name@ */
+ "
ECPt",
/* @tp_name@ */
sizeof(ecpt_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
sizeof(ecpt_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-705,7
+707,7
@@
static PyNumberMethods ecptcurve_pynumber = {
static PyTypeObject ecptcurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
static PyTypeObject ecptcurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
- "
catacomb.ECPtCurve",
/* @tp_name@ */
+ "
ECPtCurve",
/* @tp_name@ */
sizeof(ecpt_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
sizeof(ecpt_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-1017,7
+1019,7
@@
E.mmul([(P0, N0), (P1, N1), ...]) = N0 P0 + N1 P1 + ...")
static PyTypeObject eccurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
static PyTypeObject eccurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
- "
catacomb.ECCurve",
/* @tp_name@ */
+ "
ECCurve",
/* @tp_name@ */
sizeof(eccurve_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
sizeof(eccurve_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-1071,7
+1073,7
@@
static PyObject *ecprimecurve_pynew(PyTypeObject *ty,
static PyTypeObject ecprimecurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
static PyTypeObject ecprimecurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
- "
catacomb.ECPrimeCurve",
/* @tp_name@ */
+ "
ECPrimeCurve",
/* @tp_name@ */
sizeof(eccurve_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
sizeof(eccurve_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-1125,7
+1127,7
@@
static PyObject *ecprimeprojcurve_pynew(PyTypeObject *ty,
static PyTypeObject ecprimeprojcurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
static PyTypeObject ecprimeprojcurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
- "
catacomb.ECPrimeProjCurve",
/* @tp_name@ */
+ "
ECPrimeProjCurve",
/* @tp_name@ */
sizeof(eccurve_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
sizeof(eccurve_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-1179,7
+1181,7
@@
static PyObject *ecbincurve_pynew(PyTypeObject *ty,
static PyTypeObject ecbincurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
static PyTypeObject ecbincurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
- "
catacomb.ECBinCurve",
/* @tp_name@ */
+ "
ECBinCurve",
/* @tp_name@ */
sizeof(eccurve_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
sizeof(eccurve_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-1233,7
+1235,7
@@
static PyObject *ecbinprojcurve_pynew(PyTypeObject *ty,
static PyTypeObject ecbinprojcurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
static PyTypeObject ecbinprojcurve_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
- "
catacomb.ECBinProjCurve",
/* @tp_name@ */
+ "
ECBinProjCurve",
/* @tp_name@ */
sizeof(eccurve_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
sizeof(eccurve_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-1438,7
+1440,7
@@
static PyMethodDef ecinfo_pymethods[] = {
static PyTypeObject ecinfo_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
static PyTypeObject ecinfo_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
- "
catacomb.ECInfo",
/* @tp_name@ */
+ "
ECInfo",
/* @tp_name@ */
sizeof(ecinfo_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
sizeof(ecinfo_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
@@
-1529,7
+1531,7
@@
static PyObject *namedcurves(void)
}
c = PyInt_FromLong(i);
found:
}
c = PyInt_FromLong(i);
found:
- PyDict_SetItemString(d, (/*unconst*/ char *)
ectab[i].name
, c);
+ PyDict_SetItemString(d, (/*unconst*/ char *)
p
, c);
Py_DECREF(c);
}
ncurves = i;
Py_DECREF(c);
}
ncurves = i;