From: Michael Tremer Date: Wed, 7 Jul 2021 20:36:17 +0000 (+0000) Subject: pakfire: Implement exporting keys X-Git-Tag: 0.9.28~1082 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d3164d0765c2818092d956c14f870ca1cea4732;p=pakfire.git pakfire: Implement exporting keys Signed-off-by: Michael Tremer --- diff --git a/src/scripts/pakfire.in b/src/scripts/pakfire.in index 2b88ce78a..d6aa8ac8c 100644 --- a/src/scripts/pakfire.in +++ b/src/scripts/pakfire.in @@ -77,6 +77,17 @@ class Cli(object): execute.add_argument("command", nargs=argparse.REMAINDER) execute.set_defaults(func=self._execute) + # export-key + export_key = subparsers.add_parser("export-key", + help=_("Export a key to a file")) + export_key.add_argument("fingerprint", + help=_("The fingerprint of the key to export")) + export_key.add_argument("--filename", nargs="?", + help=_("Write the key to this file")) + export_key.add_argument("--secret", action="store_true", + help=_("Include the secret key")) + export_key.set_defaults(func=self._export_key) + # generate-key generate_key = subparsers.add_parser("generate-key", help=_("Generate a new key")) @@ -234,6 +245,22 @@ class Cli(object): return p.execute(args.command, logging_callback=logging_callback) + def _export_key(self, p, args): + key = p.get_key(args.fingerprint) + if not key: + print(_("Could not find key with fingerprint %s") % fingerprint) + return + + # Convert key to text + data = key.export(args.secret) + + # Write out the key + if args.filename: + with open(args.filename, "w") as f: + f.write(data) + else: + print(data) + def _generate_key(self, p, args): # Generate a new key key = p.generate_key(