Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-announce@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; 'python.': 0.02; 'from:addr:yahoo.co.uk': 0.04; 'skip:[ 20': 0.04; 'argument': 0.05; 'encoding': 0.05; 'subject:Python': 0.06; '(especially': 0.07; '(python': 0.07; 'subject:ANN': 0.07; 'tests.': 0.07; 'steve': 0.09; '3.0,': 0.09; 'derived': 0.09; 'filename': 0.09; 'filenames': 0.09; 'keys,': 0.09; 'pgp': 0.09; 'release.': 0.09; 'subject:module': 0.09; 'subject:version': 0.09; 'unittest': 0.09; 'windows,': 0.09; 'python': 0.11; 'bug': 0.12; 'cheers': 0.12; 'windows': 0.15; '-----end': 0.16; 'accepts': 0.16; 'dove': 0.16; 'filename.': 0.16; 'frozenset': 0.16; 'gnupg': 0.16; 'gpg': 0.16; 'patches': 0.16; 'subject: \n ': 0.16; 'subject:which': 0.16; 'tuple.': 0.16; 'v1.4.9': 0.16; 'wraps': 0.16; 'exception': 0.16; 'skip:= 10': 0.16; 'module': 0.19; 'reports,': 0.19; 'skip:g 40': 0.19; '>>>': 0.22; 'import': 0.22; 'tests': 0.22; 'print': 0.22; 'header:User-Agent:1': 0.23; 'fixed.': 0.24; 'module,': 0.24; 'passes': 0.24; 'earlier': 0.24; 'versions': 0.24; 'source': 0.25; 'signed': 0.27; 'subject:) ': 0.29; 'url:code': 0.29; 'andrew': 0.30; 'newer': 0.30; 'included': 0.31; 'getting': 0.31; "skip:' 10": 0.31; 'minor': 0.31; "skip:' 40": 0.31; 'allows': 0.31; 'mac': 0.33; 'subject:the': 0.34; 'subject: (': 0.35; 'received:209.85': 0.35; 'test': 0.35; 'received:google.com': 0.35; 'version': 0.36; 'data,': 0.36; 'ubuntu': 0.36; 'list': 0.37; 'project': 0.37; 'received:209': 0.37; 'expected': 0.38; 'feedback': 0.38; 'subject:new': 0.38; 'richard': 0.38; 'does': 0.39; 'either': 0.39; 'skip:p 20': 0.39; 'most': 0.60; 'recipients': 0.61; 'new': 0.61; 'privacy': 0.61; 'digital': 0.61; 'information,': 0.61; 'simple': 0.61; 'visit': 0.64; 'url:p': 0.64; 'more': 0.64; 'caused': 0.69; 'to:addr:comp-lang-python- announce': 0.70; 'secret': 0.74; 'to:addr:moderators.isc.org': 0.77; '"not': 0.84; 'encrypted': 0.91; 'enhancement': 0.95 Delivered-To: comp-lang-python-announce@moderators.isc.org X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=path:newsgroups:date:complaints-to:injection-info:nntp-posting-host :user-agent:mime-version:message-id:subject:from:injection-date:to :content-type:content-transfer-encoding; bh=XyfFOYWcAbSBiCohJaqLPvOAJtjzBKkK6Qn366ZXZjg=; b=BBSqFZk3ezcdZoyMBq9oK8ia1q66c0GxCgww9JJCUhI9yJtyTlbh0ordLzQUuGAtGc C1oI2lGb+uPeR1gQDY1/4DnuxAqxTwM+nwdJw2tVxUKOwSq3QahCp10+hwScZZUk/Q2m 5g0JEMgiYokz/sne1dXzhk8en4LWbtVtc3SMGZWDPdgE0b/KJwgUAjf3+xT9VVu0Xs6h +jYPfEiuijvsRjh1ojxSnREDDP1tS4R1z8WHkUBNz8PYDmfh2/KlyJ2/xOsTF1G6sZ1i jJ8B40DQFARcBi7GMt4txgi/nWTxMVDXE4pBjxE79T9OLpPeasWsCMLXD65i/Erd8xAr FURg== X-Received: by 10.66.17.165 with SMTP id p5mr555659pad.7.1370428694813; Wed, 05 Jun 2013 03:38:14 -0700 (PDT) X-Received: by 10.49.86.98 with SMTP id o2mr2280279qez.4.1370428694371; Wed, 05 Jun 2013 03:38:14 -0700 (PDT) Newsgroups: comp.lang.python.announce Date: Wed, 5 Jun 2013 03:38:14 -0700 (PDT) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=82.152.15.113; posting-account=3PSTgxAAAACRZBfTFqcrp20l4rsi4Aaz User-Agent: G2/1.0 MIME-Version: 1.0 Subject: ANN: A new version (0.3.4) of the Python module which wraps GnuPG has been released. From: Vinay Sajip Injection-Date: Wed, 05 Jun 2013 10:38:14 +0000 To: comp-lang-python-announce@moderators.isc.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Mailman-Approved-At: Wed, 05 Jun 2013 13:38:32 +0200 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: python-list@python.org List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Approved: python-announce-list@python.org Message-ID: Lines: 78 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1370432315 news.xs4all.nl 15928 [2001:888:2000:d::a6]:58405 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python.announce:969 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 a minor enhancement and bug-fix release. See the project website ( = http://code.google.com/p/python-gnupg/ ) for more information. Summary: An encoding bug which caused an exception when getting the GPG version has = been fixed. Recipients can be passed in a set or frozenset as well as in a list or tupl= e. The keyring argument now accepts a list of public keyring filenames as well= as a single filename. A secret_keyring argument has been added which accepts either a single file= name or a list of filenames for secret keyrings. The current version passes all tests on Windows (CPython 2.4, 2.5, 2.6, 2.7= , 3.1 and Jython 2.5.1), Mac OS X (Python 2.5) and Ubuntu (CPython 2.4, 2.5= , 2.6, 2.7, 3.0, 3.1, 3.2). On Windows, GnuPG 1.4.11 has been used for the = tests. 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 pr= ovided by the Gnu Privacy Guard (abbreviated GPG or GnuPG). Using this modu= le, Python programs can encrypt and decrypt data, digitally sign documents = and verify digital signatures, manage (generate, list and delete) encryptio= n 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 mak= es use of the subprocess module which appeared in that version of Python. T= his 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/6N= HMDTXUwcEAf ... -----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' For more information, visit http://code.google.com/p/python-gnupg/ - as alw= ays, your feedback is most welcome (especially bug reports, patches and sug= gestions for improvement). Enjoy! Cheers Vinay Sajip Red Dove Consultants Ltd.