X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/6140fbf7f12db17b61312571192eccc7d103e22b..0a6d581785a98cb205838c7b130700c571ea99a7:/key.c diff --git a/key.c b/key.c index 42ea925..9a7de0c 100644 --- a/key.c +++ b/key.c @@ -350,6 +350,22 @@ static PyObject *kdmeth_split(PyObject *me, PyObject *arg) RETURN_ME; } +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 }; @@ -454,6 +470,7 @@ static PyMethodDef keydata_pymethods[] = { METH (split, "KD.split()") KWMETH(write, "KD.write(filter = ) -> STRING") KWMETH(encode, "KD.encode(filter = ) -> BYTES") + KWMETH(copy, "KD.encode(filter = ) -> KD") METH (plock, "KD.plock(TAG) -> ENCRYPTED-KD") METH (lock, "KD.lock(KEY) -> ENCRYPTED-KD") #undef METHNAME