diff options
author | Justus Winter <[email protected]> | 2016-08-05 12:03:15 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-08-05 12:05:49 +0000 |
commit | 2a613e87156b23c4aa6aa5ce38505cb285de6a18 (patch) | |
tree | 2771ed69bf7299d1b1c9d89dca30b2e4119ac69a /lang/python/examples/verifydetails.py | |
parent | core: Extend gpgme_subkey_t to carry the keygrip. (diff) | |
download | gpgme-2a613e87156b23c4aa6aa5ce38505cb285de6a18.tar.gz gpgme-2a613e87156b23c4aa6aa5ce38505cb285de6a18.zip |
python: Clean up and modernize examples.
* lang/python/examples/Examples.rst: Delete file.
* lang/python/examples/t-edit.py: Likewise. This is actually a test
case and has been moved to 'tests'.
* lang/python/examples/assuan.py: New file.
* lang/python/examples/decryption-filter.py: Likewise.
* lang/python/examples/delkey.py: Modernize.
* lang/python/examples/encrypt-to-all.py: Likewise.
* lang/python/examples/exportimport.py: Likewise.
* lang/python/examples/genkey.py: Likewise.
* lang/python/examples/inter-edit.py: Likewise.
* lang/python/examples/sign.py: Likewise.
* lang/python/examples/signverify.py: Likewise.
* lang/python/examples/simple.py: Likewise.
* lang/python/examples/testCMSgetkey.py: Likewise.
* lang/python/examples/verifydetails.py: Likewise.
Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to 'lang/python/examples/verifydetails.py')
-rwxr-xr-x | lang/python/examples/verifydetails.py | 93 |
1 files changed, 37 insertions, 56 deletions
diff --git a/lang/python/examples/verifydetails.py b/lang/python/examples/verifydetails.py index 99e5e0a7..b57ed84f 100755 --- a/lang/python/examples/verifydetails.py +++ b/lang/python/examples/verifydetails.py @@ -1,27 +1,21 @@ #!/usr/bin/env python3 -# initial 20080123 build from the example: -# very simple - probably INCOMPLETE -# 20080703 Bernhard -# added second usage for detached signatures. -# added output of signature.summary (another bitfield) -# printing signature bitfield in hex format -# # +# Copyright (C) 2016 g10 Code GmbH # Copyright (C) 2004,2008 Igor Belyi <[email protected]> # Copyright (c) 2008 Bernhard Reiter <[email protected]> # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# You should have received a copy of the GNU General Public License +# along with this program; if not, see <http://www.gnu.org/licenses/>. import sys import os @@ -36,60 +30,47 @@ def print_engine_infos(): print(engine.file_name, engine.version) for proto in [protocol.OpenPGP, protocol.CMS]: - print(core.get_protocol_name(proto), core.engine_check_version(proto)) + print("Have {}? {}".format(core.get_protocol_name(proto), + core.engine_check_version(proto))) -def verifyprintdetails(sigfilename, filefilename=None): +def verifyprintdetails(filename, detached_sig_filename=None): """Verify a signature, print a lot of details.""" - c = core.Context() - - # Create Data with signed text. - sig2 = core.Data(file=sigfilename) - if filefilename: - file2 = core.Data(file=filefilename) - plain2 = None - else: - file2 = None - plain2 = core.Data() - - # Verify. - c.op_verify(sig2, file2, plain2) - result = c.op_verify_result() - - # List results for all signatures. Status equal 0 means "Ok". - for index, sign in enumerate(result.signatures): - print("signature", index, ":") - print(" summary: %#0x" % (sign.summary)) - print(" status: %#0x" % (sign.status)) - print(" timestamp: ", sign.timestamp) - print(" fingerprint:", sign.fpr) - print(" uid: ", c.get_key(sign.fpr, 0).uids[0].uid) + with core.Context() as c: + + # Verify. + data, result = c.verify(open(filename), + open(detached_sig_filename) + if detached_sig_filename else None) + + # List results for all signatures. Status equal 0 means "Ok". + for index, sign in enumerate(result.signatures): + print("signature", index, ":") + print(" summary: %#0x" % (sign.summary)) + print(" status: %#0x" % (sign.status)) + print(" timestamp: ", sign.timestamp) + print(" fingerprint:", sign.fpr) + print(" uid: ", c.get_key(sign.fpr, 0).uids[0].uid) # Print "unsigned" text if inline signature - if plain2: - #Rewind since verify put plain2 at EOF. - plain2.seek(0, os.SEEK_SET) - print("\n") - sys.stdout.buffer.write(plain2.read()) + if data: + sys.stdout.buffer.write(data) def main(): print_engine_infos() - print() - argc= len(sys.argv) + argc = len(sys.argv) if argc < 2 or argc > 3: - print("need a filename for inline signature") - print("or two filename for detached signature and file to check") - sys.exit(1) + sys.exit( + "Usage: {} <filename>[ <detached_signature_filename>]".format( + sys.argv[0])) if argc == 2: - print("trying to verify file: " + sys.argv[1]) + print("trying to verify file {}.".format(sys.argv[1])) verifyprintdetails(sys.argv[1]) if argc == 3: - print("trying to verify signature %s for file %s" \ - % (sys.argv[1], sys.argv[2])) - + print("trying to verify signature {1} for file {0}.".format(*sys.argv)) verifyprintdetails(sys.argv[1], sys.argv[2]) if __name__ == "__main__": |