]> git.ipfire.org Git - pakfire.git/commitdiff
pakfire: Add scaffolding to manually sign packages
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 9 Jul 2021 10:29:06 +0000 (10:29 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 9 Jul 2021 10:29:06 +0000 (10:29 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/scripts/pakfire.in

index 1cacb52087fd0211ffc28c1a7c4ca8d804ad8339..8096f08609de2a4a3ffce8be6ccdc90e189acc32 100644 (file)
@@ -149,6 +149,15 @@ class Cli(object):
                        help=_("List all imported keys"))
                key_list.set_defaults(func=self._key_list)
 
+               # key sign
+               key_sign = key_subparsers.add_parser("sign",
+                       help=_("Sign one or more packages"))
+               key_sign.add_argument("--key", "-k", required=True,
+                       help=_("Key used for signing"))
+               key_sign.add_argument("packages", nargs="+",
+                       help=_("Package(s) to sign"))
+               key_sign.set_defaults(func=self._key_sign)
+
                # key verify
                key_verify = key_subparsers.add_parser("verify",
                        help=_("Verify archives"))
@@ -326,6 +335,18 @@ class Cli(object):
                for key in p.keys:
                        print(key)
 
+       def _key_sign(self, p, args):
+               key = p.get_key(args.key)
+               if not key:
+                       raise ValueError("Could not find key %s" % args.key)
+
+               for path in args.packages:
+                       # Open archive
+                       archive = p.open(path)
+
+                       print(_("Signing %s with %s...") % (archive, key))
+                       archive.sign(key)
+
        def _key_verify(self, p, args):
                for path in args.packages:
                        # Open archive