diff options
-rw-r--r-- | gemato/cli.py | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/gemato/cli.py b/gemato/cli.py index da0487a..0bd5169 100644 --- a/gemato/cli.py +++ b/gemato/cli.py @@ -157,6 +157,19 @@ class VerifyingOpenPGPMixin(BaseOpenPGPMixin): keyserver=args.keyserver) logging.info('Keys refreshed.') + def print_signatures(self, sigs): + for i, sig in enumerate(sigs): + if len(sigs) > 1: + logging.info(f"-- signature {i}") + logging.info(f"- status: {sig.sig_status}") + logging.info(f"- valid: {sig.valid_sig}, " + f"trusted: {sig.trusted_sig}") + if sig.valid_sig: + logging.info("- primary key: " + f"{sig.primary_key_fingerprint}") + logging.info(f"- subkey: {sig.fingerprint}") + logging.info(f"- timestamp: {sig.timestamp} UTC") + class BaseManifestLoaderMixin: """ @@ -262,15 +275,7 @@ class VerifyCommand(BaseManifestLoaderMixin, VerifyingOpenPGPMixin, if m.openpgp_signed: logging.info('Valid OpenPGP signature found:') - logging.info( - f'- primary key: ' - f'{m.openpgp_signature.primary_key_fingerprint}') - logging.info( - f'- subkey: ' - f'{m.openpgp_signature.fingerprint}') - logging.info( - f'- timestamp: ' - f'{m.openpgp_signature.timestamp} UTC') + self.print_signatures(m.openpgp_signature) logging.info(f'Verifying {p}...') @@ -573,7 +578,7 @@ class OpenPGPVerifyCommand(VerifyingOpenPGPMixin, GematoCommand): try: try: - sig = self.openpgp_env.verify_file( + sigs = self.openpgp_env.verify_file( f, require_all_good=self.require_all_good) except GematoException as e: logging.error( @@ -582,10 +587,7 @@ class OpenPGPVerifyCommand(VerifyingOpenPGPMixin, GematoCommand): else: logging.info( f'Valid OpenPGP signature found in {p}:') - logging.info( - f'- primary key: {sig.primary_key_fingerprint}') - logging.info(f'- subkey: {sig.fingerprint}') - logging.info(f'- timestamp: {sig.timestamp} UTC') + self.print_signatures(sigs) finally: if p != '-': f.close() |