Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Vinay Sajip Newsgroups: comp.lang.python.announce Subject: ANN: A new version (0.3.9) of python-gnupg has been released. Date: Sat, 10 Sep 2016 09:07:25 +0000 (UTC) Lines: 110 Approved: python-announce-list@python.org Message-ID: References: <390416494.4883483.1473498445098.ref@mail.yahoo.com> <390416494.4883483.1473498445098@mail.yahoo.com> Reply-To: Vinay Sajip Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de 7fQi/jWlz2/aReTHSIVF0goELVmmVlyT3LbBfJTS8VeQ== Return-Path: X-Original-To: python-announce-list@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'url:pypi': 0.03; 'skip:[ 20': 0.03; 'from:addr:yahoo.co.uk': 0.05; 'skip:\\ 20': 0.05; 'url:bitbucket': 0.05; '(especially': 0.07; 'filenames': 0.07; 'keys,': 0.07; 'subject:ANN': 0.07; 'unittest': 0.07; 'gpg': 0.09; 'handled.': 0.09; 'incorrect': 0.09; 'key)': 0.09; 'patch.': 0.09; 'patches': 0.09; 'pgp': 0.09; 'received:212.82.98': 0.09; 'received:ir2.yahoo.com': 0.09; 'received:mail.ir2.yahoo.com': 0.09; 'release,': 0.09; 'subject:version': 0.09; 'url:issues': 0.09; 'python': 0.10; 'python.': 0.11; 'bug': 0.11; 'subject:python': 0.14; 'encoding': 0.15; '(code': 0.16; '----- end': 0.16; '[3],': 0.16; 'decode': 0.16; 'derived': 0.16; 'encryption': 0.16; 'fingerprint:': 0.16; 'gnupg': 0.16; 'key:': 0.16; 'keys.': 0.16; 'patch,': 0.16; 'received:212.82.96': 0.16; 'received:bullet.mail.ir2.yahoo.com': 0.16; 'released.': 0.16; 'specified.': 0.16; 'subprocess': 0.16; 'to:name:python list': 0.16; 'v1.4.9': 0.16; 'comparing': 0.18; 'module,': 0.18; 'skip:g 40': 0.18; 'steve': 0.18; 'to:2**1': 0.19; '>>>': 0.20; 'output': 0.21; 'versions': 0.22; 'mechanism': 0.22; 'message- id:@mail.yahoo.com': 0.22; "skip:' 40": 0.22; 'skip:` 10': 0.22; 'cheers': 0.24; 'skip:= 10': 0.24; 'signed': 0.25; 'module': 0.25; 'earlier': 0.27; 'subject:) ': 0.27; 'import': 0.27; '[2]': 0.28; 'data,': 0.28; 'passing': 0.28; "skip:' 10": 0.28; 'error': 0.29; 'always,': 0.29; 'encouraged': 0.29; 'signatures': 0.29; 'wraps': 0.29; 'points': 0.29; 'print': 0.30; 'fixed': 0.30; 'code': 0.31; 'allows': 0.31; 'url:python': 0.32; '[1]': 0.33; 'handled': 0.33; 'source': 0.33; 'gnu': 0.33; 'windows.': 0.33; 'list': 0.34; 'expected': 0.34; 'included': 0.34; 'attempt': 0.35; 'newer': 0.35; 'brief': 0.36; 'url:org': 0.36; 'subject:: ': 0.37; 'project': 0.37; 'thanks': 0.37; 'mailing': 0.37; 'available.': 0.37; 'suggestion': 0.37; 'release': 0.37; 'version': 0.38; 'to:addr:python-list': 0.38; 'received:io': 0.38; 'received:psf.io': 0.38; 'feedback': 0.38; 'skip:p 20': 0.38; 'ltd.': 0.39; 'received:ams1.psf.io': 0.39; 'received:mail1.ams1.psf.io': 0.39; 'to:addr:python.org': 0.39; 'does': 0.40; 'proto:https': 0.40; 'your': 0.61; 'url:0': 0.61; 'red': 0.61; 'digital': 0.63; 'more': 0.63; 'information': 0.64; 'programs': 0.65; 'encrypted': 0.66; 'to:addr:python-announce- list': 0.66; 'header:Reply-To:1': 0.67; 'privacy': 0.72; 'improved': 0.76; 'guard': 0.84; 'upgrade.': 0.84; 'enhancement': 0.96 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1473498486; bh=3EhMi+jmDRYmKlJtEDSapxNLrBD/Zxh+3zhaE0rmfX0=; h=Date:From:Reply-To:To:Subject:References:From:Subject; b=UTSziX50K5KqeJrAgb4RFRgY1+IGmBuVpxeBRiowJPTu8Afjqy/+YZXVbL3Dt7GtqFQrfaoWaK/T5fItci85RVkbPCXpyo8Q1p0Qg3penCmE/MbZFFLc+miD/FiHxYdpZg8fXJMPUxCORQWO+MC2bi9MgHLC64dMXxX1eV+4a1BXq2qm56F5T60uwEdgU2UFxXSORnUjrob49uhP/Vn9eiSnJJNpAVM9rcexActFD5nUBVZcxteESZ+oc6p53M1pis0WpUrNx1xcVfr8PGENwaK9V4VtUi/wh67+uQPfl8fiYYonufpaYpCorFPdwGr60sA/JgdFYoCYkrAp+z3AZw== X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 401190.34619.bm@omp1037.mail.ir2.yahoo.com X-YMail-OSG: f5Z69swVM1mt7iQAulja129cGFu_IlnEQPtQJXN9p2PWnmT5QV9_6KonrIjdotM F8CICrFG4Vls_ullv9aizGzyTo5pgL0UJ3XCfGLhsA6P9F1Lap9Pi.hfWXSlczufS9zqDsjiJuyY IHxDuYixL779NdNAhxOwqTz_2sNq1dczGVt3BSP9Vqi1RmyWwBUvITAmfm_ynz.YD.bCNHpHRbaw amr345wTLBptb4F7LbwB9jChmcFxH1q5ETjwgILejUlHBExGW4FqTyEaYY7.L5ybbG2jm_7Q3UBL sVKjITapNXxVpfHI45G.xeWWnTNQx2VuLK6PeHr7bhSAOYMwgVdJV0qDaZQNbOUAS0Eu3KIcE4zS hMsZJ3DBs_.BAqA9M2Z7JMSfGcrKxHS.o.hetgRhdctXzIftDMSmDUUkS6BvE2jKBviN92_jkSXH Coi0reQBHjcy_HjuYn6SPrOMDOO8tnGfoQgapHzJGFw3bUptIxUE47.cIiV_g_oAajpdlI9AMsFD hb9j7FYbMWN9YRnJB6v8KmsS_1g0- X-Mailman-Approved-At: Sat, 10 Sep 2016 06:00:20 -0400 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <390416494.4883483.1473498445098@mail.yahoo.com> X-Mailman-Original-References: <390416494.4883483.1473498445098.ref@mail.yahoo.com> Xref: csiph.com comp.lang.python.announce:2253 A new version of the Python module which wraps GnuPG has been released. What Changed? =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D This is an enhancement and bug-fix release, and all users are encouraged to= upgrade. See the project website [1] for more information. Brief summary: * Fixed #38: You can now request information about signatures against keys. Thanks to SunDwarf for the suggestion and patch, which was used as a basis for this change. * Fixed #49: When exporting keys, no attempt is made to decode the output w= hen armor=3DFalse is specified. * Fixed #53: A ``FAILURE`` message caused by passing an incorrect passphras= e is handled. * Handled ``EXPORTED`` and ``EXPORT_RES`` messages while exporting keys. Th= anks to Marcel P=C3=B6rner for the patch. * Fixed #54: Improved error message shown when gpg is not available. * Fixed #55: Added support for ``KEY_CONSIDERED`` while verifying. * Avoided encoding problems with filenames under Windows. Thanks to K=C3=A9= vin Bernard-Allies for the patch. * Fixed #57: Used a better mechanism for comparing keys. This release [2] has been signed with my code signing key: Vinay Sajip (CODE SIGNING KEY) Fingerprint: CA74 9061 914E AC13 8E66 EADB 9147 B477 339A 9B86 What Does It Do? =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The gnupg module allows Python programs to make use of the functionality provided by the Gnu Privacy Guard (abbreviated GPG or GnuPG). Using this module, Python programs can encrypt and decrypt data, digitally sign documents and verify digital signatures, manage (generate, list and delete) encryption keys, using proven Public Key Infrastructure (PKI) encryption technology based on OpenPGP. This module is expected to be used with Python versions >=3D 2.4, as it makes use of the subprocess module which appeared in that version of Python. This module is a newer version derived from earlier work by Andrew Kuchling, Richard Jones and Steve Traugott. A test suite using unittest is included with the source distribution. Simple usage: >>> import gnupg >>> gpg =3D gnupg.GPG(gnupghome=3D'/path/to/keyring/directory') >>> gpg.list_keys() [{ ... 'fingerprint': 'F819EE7705497D73E3CCEE65197D5DAC68F1AAB2', 'keyid': '197D5DAC68F1AAB2', 'length': '1024', 'type': 'pub', 'uids': ['', 'Gary Gross (A test user) ']}, { ... 'fingerprint': '37F24DD4B918CC264D4F31D60C5FEFA7A921FC4A', 'keyid': '0C5FEFA7A921FC4A', 'length': '1024', ... 'uids': ['', 'Danny Davis (A test user) ']}] >>> encrypted =3D gpg.encrypt("Hello, world!", ['0C5FEFA7A921FC4A']) >>> str(encrypted) '-----BEGIN PGP MESSAGE-----\nVersion: GnuPG v1.4.9 (GNU/Linux)\n \nhQIOA/6NHMDTXUwcEAf . -----END PGP MESSAGE-----\n' >>> decrypted =3D gpg.decrypt(str(encrypted), passphrase=3D'secret') >>> str(decrypted) 'Hello, world!' >>> signed =3D gpg.sign("Goodbye, world!", passphrase=3D'secret') >>> verified =3D gpg.verify(str(signed)) >>> print "Verified" if verified else "Not verified" 'Verified' As always, your feedback is most welcome (especially bug reports [3], patches and suggestions for improvement, or any other points via the mailing list/discussion group [4]). Enjoy! Cheers Vinay Sajip Red Dove Consultants Ltd. [1] https://bitbucket.org/vinay.sajip/python-gnupg [2] https://pypi.python.org/pypi/python-gnupg/0.3.9 [3] https://bitbucket.org/vinay.sajip/python-gnupg/issues [4] https://groups.google.com/forum/#!forum/python-gnupg