Requires a shiny new version of Catacomb.
+static PyObject *kdmeth_copy(PyObject *me, PyObject *arg, PyObject *kw)
+{
+ key_filter f = { 0, 0 };
+ PyObject *rc = 0;
+ static char *kwlist[] = { "filter", 0 };
+ key_data *kd;
+
+ if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O&:copy", kwlist,
+ conffilter, &f))
+ return (0);
+ if ((kd = key_copydata(KEYDATA_KD(me), &f)) == 0)
+ RETURN_NONE;
+ else
+ return (keydata_pywrap(kd));
+}
+
static PyObject *kdmeth_write(PyObject *me, PyObject *arg, PyObject *kw)
{
key_filter f = { 0, 0 };
static PyObject *kdmeth_write(PyObject *me, PyObject *arg, PyObject *kw)
{
key_filter f = { 0, 0 };
METH (split, "KD.split()")
KWMETH(write, "KD.write(filter = <any>) -> STRING")
KWMETH(encode, "KD.encode(filter = <any>) -> BYTES")
METH (split, "KD.split()")
KWMETH(write, "KD.write(filter = <any>) -> STRING")
KWMETH(encode, "KD.encode(filter = <any>) -> BYTES")
+ KWMETH(copy, "KD.encode(filter = <any>) -> KD")
METH (plock, "KD.plock(TAG) -> ENCRYPTED-KD")
METH (lock, "KD.lock(KEY) -> ENCRYPTED-KD")
#undef METHNAME
METH (plock, "KD.plock(TAG) -> ENCRYPTED-KD")
METH (lock, "KD.lock(KEY) -> ENCRYPTED-KD")
#undef METHNAME