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.4.0) of python-gnupg has been released. Date: Sun, 29 Jan 2017 18:53:44 +0000 (UTC) Lines: 98 Approved: python-announce-list@python.org Message-ID: References: <1452661764.26048248.1485716024551.ref@mail.yahoo.com> <1452661764.26048248.1485716024551@mail.yahoo.com> Reply-To: Vinay Sajip Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de DKtEbvUOJV5+5iE2/bsLKwPZNI14ia91hy4fJ8vS/A2g== 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.04; 'used.': 0.04; 'from:addr:yahoo.co.uk': 0.05; 'skip:\\ 20': 0.05; 'url:bitbucket': 0.05; '(especially': 0.07; 'keys,': 0.07; 'subject:ANN': 0.07; 'unittest': 0.07; 'utf-8': 0.07; 'python': 0.09; 'derived': 0.09; 'gpg': 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; 'thrown': 0.09; 'url:issues': 0.09; 'works.': 0.09; 'bug': 0.10; 'subject:python': 0.13; 'python.': 0.14; 'encoding': 0.15; '(code': 0.16; '-----end': 0.16; '[3],': 0.16; 'encryption': 0.16; 'ensured': 0.16; 'fingerprint:': 0.16; 'gnupg': 0.16; 'key:': 0.16; 'received:212.82.96': 0.16; 'received:bullet.mail.ir2.yahoo.com': 0.16; 'released.': 0.16; 'subprocess': 0.16; 'v1.4.9': 0.16; 'steve': 0.16; 'module,': 0.18; 'skip:` 20': 0.18; 'skip:g 40': 0.18; '>>>': 0.18; 'changes': 0.20; 'cc:addr:python.org': 0.21; 'versions': 0.22; "skip:' 40": 0.22; 'skip:` 10': 0.22; 'cc:2**0': 0.22; 'fix': 0.23; 'module': 0.23; 'cheers': 0.24; 'skip:= 10': 0.24; 'import': 0.26; "skip:' 10": 0.26; 'signed': 0.26; 'earlier': 0.27; '2.1': 0.27; '[2]': 0.27; 'data,': 0.27; 'always,': 0.29; 'encouraged': 0.29; 'wraps': 0.29; 'points': 0.29; 'code': 0.30; 'url:python': 0.31; 'print': 0.31; 'allows': 0.32; 'expected': 0.32; 'included': 0.32; '[1]': 0.32; 'source': 0.32; 'fixed': 0.33; 'gnu': 0.33; 'gross': 0.33; 'point,': 0.33; 'list': 0.33; 'newer': 0.35; 'brief': 0.35; 'feedback': 0.35; 'release': 0.35; 'there': 0.36; 'url:org': 0.36; 'being': 0.36; 'project': 0.36; 'mode': 0.36; 'subject:: ': 0.36; 'version': 0.37; 'certain': 0.37; 'thanks': 0.37; 'mailing': 0.37; 'to:addr:python-list': 0.38; 'skip:p 20': 0.38; 'subject:-': 0.39; 'to:addr:python.org': 0.39; 'does': 0.39; 'proto:https': 0.40; 'test': 0.40; 'received:io': 0.40; 'received:psf.io': 0.40; 'manage': 0.60; 'your': 0.60; 'red': 0.60; 'url:0': 0.61; 'more': 0.62; 'digital': 0.62; 'programs': 0.65; 'encrypted': 0.66; 'header:Reply-To:1': 0.67; 'privacy': 0.71; 'url:4': 0.72; 'guard': 0.84; 'upgrade.': 0.84; 'user)': 0.84; 'enhancement': 0.96 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1485716027; bh=hcYpVzPPERuKoExlV66OO7viWgG0PLfZjfpRXWThBBQ=; h=Date:From:Reply-To:To:Cc:Subject:References:From:Subject; b=Jrd/sz1I49mnHU4Zwargm8s1nk4uBQkjdJZU10RspiM+CrrrJ97pMKDEOQU0y0y4DUaLsgDIhM6mmzDTQV+g4aIxgiI3imB9K0UJoavi70oWcfcadU5O2GAQyUE7u+KmzApL2qJHa1X/gCsIGO2jHFp0wsvtd7rasWo1Nk47SOPXcs/n2pmX5FeztX/eJ9XYoORflS1RfKm3zsOOe9r/VOiRKffIhyuHHx7zKxC5UW3azvxL03akVSpGfygbOb37cgzDu6r79/fleU+pDprhY6OqXrHvp7avOezd2rtS5+0ad4EYoAd6AM2U9L4PD7PyyoM6q11Sa2Bgg+zNfFeyOQ== X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 21877.61748.bm@omp1044.mail.ir2.yahoo.com X-YMail-OSG: hPSXqKYVM1l.f_B5vXVxQh0EMixbnMbPINZIjbwO7lm0YbNuBbMywo5p_t2.wiq dWBJ4O9WeHnZIbES1FPzElFIRDbumRolNdS.X721Gl4QrB5iZYPDt.6yTrJZj16jytaeE3vnrbcc _BZsbQwRekHD6BopB.tqQ18frHuJfja7CXJ1E8vJFZPq524.9MxhlX_Id57ZrxanJbR8Pe_Btdyj yfLwMwxyg8Gw3FrYEdg4etl6iU4ESu7t1H0uDdH2WuHMZV8jDkngRlX87dyBrOFT_IoSXoyEGQ0b f4fWPUzgZX8eznfbpYdjF893mp0fXgdCtzftzfdXUGBUYmtht2jVsps.2ubhURSc8wJs5ji2tybZ l1Fxvbi_ikwm.4lcHFNw2QNRsCfGT0O7QNnETBxWXBHhqawl0QtVqGf7U1U6GkLGzeqwnQd8NARY 5lsNNIs.TF_FRAXFTr9dfA.eRQf9BSu3UEvrdJJnv_sTF1hXldOOjBJsqt_jmJrtvhCgonhKBltO D6TuC6KQV0F_TCz_OAbKaLm0d86XRyt1I X-Mailman-Approved-At: Mon, 30 Jan 2017 06:06:02 -0500 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: <1452661764.26048248.1485716024551@mail.yahoo.com> X-Mailman-Original-References: <1452661764.26048248.1485716024551.ref@mail.yahoo.com> Xref: csiph.com comp.lang.python.announce:2390 A new version of the Python module which wraps GnuPG has been released. What Changed? ============= 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: * Added support for ``KEY_CONSIDERED`` in more places - encryption / decryption, signing, key generation and key import. * Partial fix for #32 (GPG 2.1 compatibility). Unfortunately, better support cannot be provided at this point, unless there are certain changes (relating to pinentry popups) in how GPG 2.1 works. * Fixed #60: An IndexError was being thrown by ``scan_keys()``. * Ensured that utf-8 encoding is used when the ``--with-column`` mode is used. Thanks to Yann Leboulanger for the patch. * ``list_keys()`` now uses ``--fixed-list-mode``. Thanks to Werner Koch for the pointer. 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? ================ 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 >= 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 = gnupg.GPG(gnupghome='/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 = 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 = gpg.decrypt(str(encrypted), passphrase='secret') >>> str(decrypted) 'Hello, world!' >>> signed = gpg.sign("Goodbye, world!", passphrase='secret') >>> verified = 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.4.0 [3] https://bitbucket.org/vinay.sajip/python-gnupg/issues [4] https://groups.google.com/forum/#!forum/python-gnupg