[git] GPGME - branch, ben/docs/2018-03, updated. gpgme-1.10.0-102-gb549f69

by Ben McGinnes cvs at cvs.gnupg.org
Fri Mar 16 17:48:18 CET 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG Made Easy".

The branch, ben/docs/2018-03 has been updated
       via  b549f69d0520bb74957b95cec9ea918dba2374f6 (commit)
      from  431897a4c48fe1bc9d37f655097aabaf5b685d11 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b549f69d0520bb74957b95cec9ea918dba2374f6
Author: Ben McGinnes <ben at adversary.org>
Date:   Sat Mar 17 03:46:02 2018 +1100

    doc: python bindings howto
    
    * Made the changes suggested by Jakub Wilk on gnupg-devel.
    * Still need to make the far more comprehensive changes suggested by Justus.

diff --git a/lang/python/docs/GPGMEpythonHOWTOen.org b/lang/python/docs/GPGMEpythonHOWTOen.org
index 28d2e25..d27f562 100644
--- a/lang/python/docs/GPGMEpythonHOWTOen.org
+++ b/lang/python/docs/GPGMEpythonHOWTOen.org
@@ -13,7 +13,7 @@
   :CUSTOM_ID: intro
   :END:
 
-  | Version:        | 0.1.0                                    |
+  | Version:        | 0.1.0-draft                              |
   | Author:         | Ben McGinnes <ben at gnupg.org>             |
   | Author GPG Key: | DB4724E6FA4286C92B4E55C4321E4E2373590E5D |
   | Language:       | Australian English, British English      |
@@ -159,8 +159,8 @@
 
     The PyME package is available under the same dual licensing as
     GPGME itself: the GNU General Public License version 2.0 (or any
-    later version) and the GNU Lesser Public License version 2.1 (or
-    any later version).
+    later version) and the GNU Lesser General Public License version
+    2.1 (or any later version).
 
 
 * GPGME Python bindings installation
@@ -275,7 +275,7 @@
    that most operations require more than one instruction to the API
    to perform the task.  Sure, there are certain functions which can
    be performed simultaneously, particularly if the result known or
-   strongly anticipated (e.g selecting and encrypting to a key known
+   strongly anticipated (e.g. selecting and encrypting to a key known
    to be in the public keybox).
 
    There are many more, however, which cannot be manipulated so
@@ -505,11 +505,8 @@
 	 try:
 	     c.op_encrypt([r], 1, plain, cipher)
 	     cipher.seek(0, os.SEEK_SET)
-	     del(text)
-	     del(plain)
-	     afile = open("secret_plans.txt.asc", "wb")
-	     afile.write(cipher.read())
-	     afile.close()
+	     with open("secret_plans.txt.asc", "wb") as afile:
+	         afile.write(cipher.read())
 	 except gpg.errors.GPGMEError as ex:
 	     print(ex.getstring())
    #+end_src
@@ -555,9 +552,8 @@
 
       cipher = c.encrypt(text, recipients=logrus, sign=False, always_trust=True)
 
-      afile = open("secret_plans.txt.asc", "wb")
-      afile.write(cipher[0])
-      afile.close()
+      with open("secret_plans.txt.asc", "wb") as afile:
+          afile.write(cipher[0])
     #+end_src
 
     All it would take to change the above example to sign the message
@@ -582,9 +578,8 @@
     #+begin_src python
       import gpg
 
-      afile = open("secret_plans.txt", "rb")
-      text = afile.read()
-      afile.close()
+      with open("secret_plans.txt.asc", "rb") as afile:
+          text = afile.read()
 
       c = gpg.Context(armor=True)
       rpattern = list(c.keylist(pattern="@gnupg.org", secret=False))
@@ -608,9 +603,8 @@
 	  except:
 	      pass
 
-      afile = open("secret_plans.txt.asc", "wb")
-      afile.write(cipher[0])
-      afile.close()
+      with open("secret_plans.txt.asc", "wb") as afile:
+          afile.write(cipher[0])
     #+end_src
 
     This will attempt to encrypt to all the keys searched for, then
@@ -648,9 +642,8 @@
 
       cipher = c.encrypt(text, recipients=logrus, sign=False, always_trust=True)
 
-      afile = open("secret_plans.txt.asc", "wb")
-      afile.write(cipher[0])
-      afile.close()
+      with open("secret_plans.txt.asc", "wb") as afile:
+          afile.write(cipher[0])
     #+end_src
 
     With one or two exceptions, this method will probably prove to be
@@ -677,9 +670,8 @@
 
       cipher = c.encrypt(text, recipients=logrus, sign=False, always_trust=True)
 
-      afile = open("secret_plans.txt.asc", "wb")
-      afile.write(cipher[0])
-      afile.close()
+      with open("secret_plans.txt.asc", "wb") as afile:
+          afile.write(cipher[0])
     #+end_src
 
 
@@ -718,7 +710,6 @@
 	 print(plaintext[0])
 	 plaintext[1]
 	 plaintext[2]
-	 del(plaintext)
      else:
 	 pass
    #+end_src
@@ -793,15 +784,14 @@
      text0 = """Declaration of ... something.
 
      """
-     text = text0.encode("utf-8")
+     text = text0.encode()
 
      c = gpg.Context(armor=True, signers=sig_src)
      signed = c.sign(text, mode=0)
 
-     afile = open("/path/to/statement.txt.asc", "w")
-     for line in signed[0]:
-	 afile.write("{0}\n".format(line.decode("utf-8")))
-     afile.close()
+     with open("/path/to/statement.txt.asc", "w") as afile:
+         for line in signed[0]:
+	     afile.write("{0}\n".format(line.decode()))
    #+end_src
 
    Though everything in this example is accurate, it is more likely
@@ -812,16 +802,14 @@
    #+begin_src python
      import gpg
 
-     tfile = open("/path/to/statement.txt", "rb")
-     text = tfile.read()
-     tfile.close()
+     with open("/path/to/statement.txt", "rb") as tfile:
+         text = tfile.read()
 
      c = gpg.Context()
      signed = c.sign(text, mode=0)
 
-     afile = open("/path/to/statement.txt.sig", "wb")
-     afile.write(signed[0])
-     afile.close()
+     with open("/path/to/statement.txt.sig", "wb") as afile:
+         afile.write(signed[0])
    #+end_src
 
 *** Detached signing messages and files
@@ -840,15 +828,14 @@
       text0 = """Declaration of ... something.
 
       """
-      text = text0.encode("utf-8")
+      text = text0.encode()
 
       c = gpg.Context(armor=True)
       signed = c.sign(text, mode=1)
 
-      afile = open("/path/to/statement.txt.asc", "w")
-      for line in signed[0].splitlines():
-	  afile.write("{0}\n".format(line.decode("utf-8")))
-      afile.close()
+      with open("/path/to/statement.txt.asc", "w") as afile:
+          for line in signed[0].splitlines():
+	      afile.write("{0}\n".format(line.decode()))
     #+end_src
 
     As with normal signatures, detached signatures are best handled as
@@ -857,16 +844,14 @@
     #+begin_src python
       import gpg
 
-      tfile = open("/path/to/statement.txt", "rb")
-      text = tfile.read()
-      tfile.close()
+      with open("/path/to/statement.txt", "rb") as tfile:
+          text = tfile.read()
 
       c = gpg.Context(signers=sig_src)
       signed = c.sign(text, mode=1)
 
-      afile = open("/path/to/statement.txt.sig", "wb")
-      afile.write(signed[0])
-      afile.close()
+      with open("/path/to/statement.txt.sig", "wb") as afile:
+          afile.write(signed[0])
     #+end_src
 
 *** Clearsigning messages or text
@@ -885,15 +870,14 @@
       text0 = """Declaration of ... something.
 
       """
-      text = text0.encode("utf-8")
+      text = text0.encode()
 
       c = gpg.Context()
       signed = c.sign(text, mode=2)
 
-      afile = open("/path/to/statement.txt.asc", "w")
-      for line in signed[0].splitlines():
-	  afile.write("{0}\n".format(line.decode("utf-8")))
-      afile.close()
+      with open("/path/to/statement.txt.asc", "w") as afile:
+          for line in signed[0].splitlines():
+	      afile.write("{0}\n".format(line.decode()))
     #+end_src
 
     In spite of the appearance of a clear-signed message, the data
@@ -902,16 +886,14 @@
     #+begin_src python
       import gpg
 
-      tfile = open("/path/to/statement.txt", "rb")
-      text = tfile.read()
-      tfile.close()
+      with open("/path/to/statement.txt", "rb") as tfile:
+          text = tfile.read()
 
       c = gpg.Context()
       signed = c.sign(text, mode=2)
 
-      afile = open("/path/to/statement.txt.asc", "wb")
-      afile.write(signed[0])
-      afile.close()
+      with open("/path/to/statement.txt.asc", "wb") as afile:
+          afile.write(signed[0])
     #+end_src
 
 
@@ -1131,7 +1113,7 @@
 
      c = gpg.Context()
 
-     c.home_dir = "/tmp/dmgpg"
+     c.home_dir = "~/.gnupg-dm"
      userid = "Danger Mouse <dm at secret.example.net>"
 
      dmkey = c.create_key(userid, algorithm = "rsa3072", expires_in = 31536000,
@@ -1142,7 +1124,10 @@
    parameter.  This enables generating the key or keys in a different
    location.  In this case to keep the new key data created for this
    example in a separate location rather than adding it to existing
-   and active key store data.
+   and active key store data.  As with the default directory,
+   =~/.gnupg=, any temporary or separate directory needs the
+   permissions set to only permit access by the directory owner.  On
+   posix systems this means setting the directory permissions to 700.
 
    The successful generation of the key can be confirmed via the
    returned =GenkeyResult= object, which includes the following data:
@@ -1163,8 +1148,8 @@
    line program:
 
    #+begin_src shell
-     bash-4.4$ gpg --homedir /tmp/dmgpg -K
-     /tmp/dmgpg/pubring.kbx
+     bash-4.4$ gpg --homedir ~/.gnupg-dm -K
+     ~/.gnupg-dm/pubring.kbx
      ----------------------
      sec   rsa3072 2018-03-15 [SC] [expires: 2019-03-15]
 	   177B7C25DB99745EE2EE13ED026D2F19E99E63AA
@@ -1180,7 +1165,7 @@
    my own =gpg.conf= file in order to be able to generate this:
 
    #+begin_src shell
-     bash-4.4$ gpg --homedir /tmp/dmgpg --edit-key 177B7C25DB99745EE2EE13ED026D2F19E99E63AA showpref quit
+     bash-4.4$ gpg --homedir ~/.gnupg-dm --edit-key 177B7C25DB99745EE2EE13ED026D2F19E99E63AA showpref quit
      Secret key is available.
 
      sec  rsa3072/026D2F19E99E63AA
@@ -1218,7 +1203,7 @@
      import gpg
 
      c = gpg.Context()
-     c.home_dir = "/tmp/dmgpg"
+     c.home_dir = "~/.gnupg-dm"
 
      key = c.get_key(dmkey.fpr, secret = True)
      dmsub = c.create_subkey(key, algorithm = "rsa3072", expires_in = 15768000,
@@ -1242,8 +1227,8 @@
    As well as on the command line with:
 
    #+begin_src shell
-     bash-4.4$ gpg --homedir /tmp/dmgpg -K
-     /tmp/dmgpg/pubring.kbx
+     bash-4.4$ gpg --homedir ~/.gnupg-dm -K
+     ~/.gnupg-dm/pubring.kbx
      ----------------------
      sec   rsa3072 2018-03-15 [SC] [expires: 2019-03-15]
 	   177B7C25DB99745EE2EE13ED026D2F19E99E63AA
@@ -1268,7 +1253,7 @@
      import gpg
 
      c = gpg.Context()
-     c.home_dir = "/tmp/dmgpg"
+     c.home_dir = "~/.gnupg-dm"
 
      dmfpr = "177B7C25DB99745EE2EE13ED026D2F19E99E63AA"
      key = c.get_key(dmfpr, secret = True)
@@ -1280,8 +1265,8 @@
    Unsurprisingly the result of this is:
 
    #+begin_src shell
-     bash-4.4$ gpg --homedir /tmp/dmgpg -K
-     /tmp/dmgpg/pubring.kbx
+     bash-4.4$ gpg --homedir ~/.gnupg-dm -K
+     ~/.gnupg-dm/pubring.kbx
      ----------------------
      sec   rsa3072 2018-03-15 [SC] [expires: 2019-03-15]
 	   177B7C25DB99745EE2EE13ED026D2F19E99E63AA

-----------------------------------------------------------------------

Summary of changes:
 lang/python/docs/GPGMEpythonHOWTOen.org | 123 ++++++++++++++------------------
 1 file changed, 54 insertions(+), 69 deletions(-)


hooks/post-receive
-- 
GnuPG Made Easy
http://git.gnupg.org




More information about the Gnupg-commits mailing list