~mdw
/
pyke
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add support for SHA3 and related algorithms.
[pyke]
/
catacomb.c
diff --git
a/catacomb.c
b/catacomb.c
index
29f09ac
..
9c83c9d
100644
(file)
--- a/
catacomb.c
+++ b/
catacomb.c
@@
-1,7
+1,5
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id$
- *
* Where the fun begins
*
* (c) 2004 Straylight/Edgeware
* Where the fun begins
*
* (c) 2004 Straylight/Edgeware
@@
-46,6
+44,10
@@
static const struct nameval consts[] = {
C(KF_CATMASK), C(KCAT_SYMM), C(KCAT_PRIV), C(KCAT_PUB), C(KCAT_SHARE),
C(KF_NONSECRET),
C(KF_BURN), C(KF_OPT),
C(KF_CATMASK), C(KCAT_SYMM), C(KCAT_PRIV), C(KCAT_PUB), C(KCAT_SHARE),
C(KF_NONSECRET),
C(KF_BURN), C(KF_OPT),
+ C(EC_XONLY), C(EC_YBIT), C(EC_LSB), C(EC_CMPR), C(EC_EXPLY), C(EC_SORT),
+ C(X25519_KEYSZ), C(X25519_PUBSZ), C(X25519_OUTSZ),
+ C(X448_KEYSZ), C(X448_PUBSZ), C(X448_OUTSZ),
+ C(ED25519_KEYSZ), C(ED25519_PUBSZ), C(ED25519_SIGSZ),
#define ENTRY(tag, val, str) C(KERR_##tag),
KEY_ERRORS(ENTRY)
#undef ENTRY
#define ENTRY(tag, val, str) C(KERR_##tag),
KEY_ERRORS(ENTRY)
#undef ENTRY
@@
-146,11
+148,27
@@
static PyMethodDef methods[] = {
{ 0 }
};
{ 0 }
};
+static void init_random(void)
+{
+#if PY_MAJOR_VERSION >= 3 || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION >= 6)
+ char *seed;
+ uint32 r;
+
+ if (!Py_HashRandomizationFlag) return;
+ seed = getenv("PYTHONHASHSEED");
+ if (!seed || strcmp(seed, "random") == 0) r = GR_WORD(&rand_global);
+ else r = strtoul(seed, 0, 0);
+ if (!r) r = 0xe011f220; /* zero doesn't work well */
+ unihash_setkey(&unihash_global, r);
+#endif
+}
+
void init_base(void)
{
PyObject *mod;
addmethods(methods);
INIT_MODULES;
void init_base(void)
{
PyObject *mod;
addmethods(methods);
INIT_MODULES;
+ init_random();
mod = Py_InitModule("catacomb._base", donemethods());
INSERT_MODULES;
INSERT("smallprimes", smallprimes());
mod = Py_InitModule("catacomb._base", donemethods());
INSERT_MODULES;
INSERT("smallprimes", smallprimes());