return object;
}
+static PyObject* Key_delete(KeyObject* self) {
+ int r = pakfire_key_delete(self->key);
+ if (r == 0)
+ Py_RETURN_TRUE;
+
+ return NULL;
+}
+
static struct PyMethodDef Key_methods[] = {
- {"export", (PyCFunction)Key_export, METH_VARARGS, NULL},
+ {
+ "delete",
+ (PyCFunction)Key_delete,
+ METH_NOARGS,
+ NULL
+ },
+ {
+ "export",
+ (PyCFunction)Key_export,
+ METH_VARARGS,
+ NULL
+ },
{ NULL },
};
return key;
}
+int pakfire_key_delete(PakfireKey key) {
+ gpgme_ctx_t gpgctx = pakfire_get_gpgctx(key->pakfire);
+ assert(gpgctx);
+
+ gpgme_error_t error = gpgme_op_delete(gpgctx, key->gpgkey, 1);
+ if (error == GPG_ERR_NO_ERROR)
+ return 0;
+
+ return 1;
+}
+
const char* pakfire_key_get_fingerprint(PakfireKey key) {
return key->gpgkey->fpr;
}
# Add common arguments
self._add_common_arguments(parser)
+ # delete
+ delete = subparsers.add_parser("delete", help=_("Delete a key from the local keyring"))
+ delete.add_argument("fingerprint", nargs="+", help=_("The fingerprint of the key to delete"))
+ delete.set_defaults(func=self.handle_delete)
+
# export
export = subparsers.add_parser("export", help=_("Export a key to a file"))
export.add_argument("fingerprint", nargs=1,
return parser.parse_args()
- def parse_command_delete(self):
- # Parse "delete" command.
- sub_del = self.sub_commands.add_parser("delete",
- help=_("Delete a key from the local keyring."))
- sub_del.add_argument("keyid", nargs=1,
- help=_("The ID of the key to delete."))
- sub_del.add_argument("action", action="store_const", const="delete")
-
def parse_command_sign(self):
# Implement the "sign" command.
sub_sign = self.sub_commands.add_parser("sign",
key = p.import_key(data)
print(key)
- def handle_delete(self):
- keyid = self.args.keyid[0]
+ def handle_delete(self, ns):
+ p = self.pakfire(ns)
- p = self.create_pakfire()
- p.keyring.delete_key(keyid)
+ for fingerprint in ns.fingerprint:
+ key = p.get_key(fingerprint)
+ if key:
+ key.delete()
def handle_sign(self):
# Get the files from the command line options