Bump dependency on Catacomb.
return (0);
}
+static PyObject *kxvikmeth_set(PyObject *me, PyObject *arg)
+{
+ kxvik_pyobj *k = (kxvik_pyobj *)me;
+ kludge64 t[25];
+ const octet *q;
+ unsigned i;
+ struct bin in;
+ size_t n;
+
+ if (!PyArg_ParseTuple(arg, "O&:set", convbin, &in)) goto end;
+ if (in.sz > 200) VALERR("out of range");
+ q = in.p; n = in.sz;
+ i = 0;
+ while (n >= 8) { LOAD64_L_(t[i], q); i++; q += 8; n -= 8; }
+ if (n) VALERR("not 64-bit aligned");
+ keccak1600_set(&k->s, t, i);
+ RETURN_ME;
+end:
+ return (0);
+}
+
static PyObject *kxvikmeth_extract(PyObject *me, PyObject *arg)
{
kxvik_pyobj *k = (kxvik_pyobj *)me;
#define METHNAME(func) kxvikmeth_##func
NAMETH(copy, "KECCAK.copy() -> KECCAK'")
METH (mix, "KECCAK.mix(DATA)")
+ METH (set, "KECCAK.set(DATA)")
METH (extract, "KECCAK.extract(NOCTETS)")
NAMETH(step, "KECCAK.step()")
#undef METHNAME
Maintainer: Mark Wooding <mdw@distorted.org.uk>
Build-Depends: debhelper (>= 10), dh-python, pkg-config,
python (>= 2.6.6-3~), python-all-dev, python3-all-dev,
- mlib-dev (>= 2.4.99~), catacomb-dev (>= 2.5.0)
+ mlib-dev (>= 2.4.99~), catacomb-dev (>= 2.5.99~)
Standards-Version: 3.8.0
Package: python-catacomb
import distutils.core as DC
import mdwsetup as MS
-MS.pkg_config('catacomb', '2.5.0')
+MS.pkg_config('catacomb', '2.5.99~')
MS.pkg_config('mLib', '2.4.99~')
cat = DC.Extension('catacomb._base',
st1.mix(m0).step()
me.assertNotEqual(st0.extract(32), st1.extract(32))
- ## Check state copying.
+ ## Check state copying and `mix' vs `set'.
st1 = st0.copy()
mask = st1.extract(len(m1))
st0.mix(m1)
- st1.mix(m1)
+ st1.set(m1 ^ mask)
me.assertEqual(st0.extract(32), st1.extract(32))
## Check error conditions.
me.assertRaises(ValueError, st0.extract, 201)
st0.mix(T.span(200))
me.assertRaises(ValueError, st0.mix, T.span(201))
+ st0.set(T.span(200))
+ me.assertRaises(ValueError, st0.set, T.span(201))
+ me.assertRaises(ValueError, st0.set, T.span(199))
def check_shake(me, xcls, c, done_matches_xof = True):
"""