chiark / gitweb /
pwsafe: Abolish the `chomp' function, and only chomp when reading stdin.
[catacomb-python] / key.c
diff --git a/key.c b/key.c
index 7820f1d4db62a3f4252c8306a85d3de39aba73ae..2af00192e71f890f23a1457371c87681a3e4ece1 100644 (file)
--- a/key.c
+++ b/key.c
@@ -104,7 +104,7 @@ static PyMethodDef keyexc_pymethods[] = {
 
 static void keyexc_raise(int err)
 {
-  PyObject *arg = Py_BuildValue("(i)", err);
+  PyObject *arg = Py_BuildValue("(is)", err, key_strerror(err));
   if (arg) PyErr_SetObject(keyexc, arg);
   Py_XDECREF(arg);
 }
@@ -1385,14 +1385,14 @@ static PyObject *key_pynew(PyTypeObject *ty, PyObject *arg, PyObject *kw)
   PyObject *kfobj;
   uint32 id;
   char *type;
-  long exptime = KEXP_FOREVER;
+  unsigned long exptime = KEXP_FOREVER;
   static char *kwlist[] = { "keyfile", "id", "type", "exptime", 0 };
   key *k;
   int err;
 
-  if (!PyArg_ParseTupleAndKeywords(arg, kw, "O!O&sl:new", kwlist,
+  if (!PyArg_ParseTupleAndKeywords(arg, kw, "O!O&s|O&:new", kwlist,
                                   keyfile_pytype, &kfobj, convu32, &id,
-                                  &type, &exptime))
+                                  &type, convulong, &exptime))
     goto end;
   if ((err = key_new(KEYFILE_KF(kfobj), id, type, exptime, &k)) != 0)
     KEYERR(err);