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

by Ben McGinnes cvs at cvs.gnupg.org
Fri Mar 9 06:51:58 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  01686463948ac6096dd8579a110c478d3a1f9a83 (commit)
      from  93252df9dc4c9932467814745655350a8cab900e (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 01686463948ac6096dd8579a110c478d3a1f9a83
Author: Ben McGinnes <ben at adversary.org>
Date:   Fri Mar 9 16:49:05 2018 +1100

    doc: python bindings howto
    
    * Wrote the text description explaining each step in the most basic
      encryption operation.
    * Will need to include additional examples for encrypting to multiple
      recipients using Context().encrypt instead of Context().op_encrypt.

diff --git a/lang/python/docs/GPGMEpythonHOWTOen.org b/lang/python/docs/GPGMEpythonHOWTOen.org
index 75f1ebd..0b882b5 100644
--- a/lang/python/docs/GPGMEpythonHOWTOen.org
+++ b/lang/python/docs/GPGMEpythonHOWTOen.org
@@ -259,12 +259,51 @@
   :CUSTOM_ID: howto-the-basics
   :END:
 
+  The most frequently called features of any cryptographic library
+  will be the most fundamental tasks for enxryption software.  In this
+  section we will look at how to programmatically encrypt data,
+  decrypt it, sign it and verify signatures.
+
 ** Encryption
    :PROPERTIES:
    :CUSTOM_ID: howto-basic-encryption
    :END:
 
-   Encrypting to one key:
+   Encrypting is very straight forward.  In the first example below
+   the message, =text=, is encrypted to a single recipient's key.  In
+   the second example the message will be encrypted to multiple
+   recipients.
+
+*** Encrypting to one key
+    :PROPERTIES:
+    :CUSTOM_ID: howto-basic-encryption-single
+    :END:
+
+   The text is then encapsulated in a GPGME Data object as =plain= and
+   the =cipher= object is created with another Data object.  Then we
+   create the Context as =c= and set it to use the ASCII armoured
+   OpenPGP format.  In later examples there will be alternative
+   methods of setting the OpenPGP output to be ASCII armoured.
+
+   Next we prepare a keylist object in our Context and follow it with
+   specifying the recipients as =r=.  Note that the configuration in
+   one's =gpg.conf= file is honoured, so if you have the options set
+   to encrypt to one key or to a default key, that will be included
+   with this operation.
+
+   This is followed by a quick check to be sure that the recipient is
+   actually selected and that the key is available.  Assuming it is,
+   the encryption can proceed, but if not a message will print stating
+   the key was not found.
+
+   The encryption operation is invoked within the Context with the
+   =c.op_encrypt= function, loading the recipien (=r=), the message
+   (=plain=) and the =cipher=.  The =cipher.seek= uses =os.SEEK_SET=
+   to set the data to the correct byte format for GPGME to use it.
+
+   At this point we no longer need the plaintext material, so we
+   delete both the =text= and the =plain= objects.  Then we write the
+   encrypted data out to a file, =secret_plans.txt.asc=.
 
    #+begin_src python
      import gpg
@@ -296,13 +335,19 @@
 	     cipher.seek(0, os.SEEK_SET)
 	     del(text)
 	     del(plain)
-	     afile = open("secret_plans.org.asc", "wb")
+	     afile = open("secret_plans.txt.asc", "wb")
 	     afile.write(cipher.read())
 	     afile.close()
 	 except gpg.errors.GPGMEError as ex:
 	     print(ex.getstring())
    #+end_src
 
+*** Encrypting to multiple keys
+    :PROPERTIES:
+    :CUSTOM_ID: howto-basic-encryption-multiple
+    :END:
+
+
 ** Decryption
    :PROPERTIES:
    :CUSTOM_ID: howto-basic-encryption
@@ -316,10 +361,10 @@
      import os.path
      import gpg
 
-     if os.path.exists("/path/to/secret_plans.org.asc") is True:
-	 ciphertext = "/path/to/secret_plans.org.asc"
-     elif os.path.exists("/path/to/secret_plans.org.gpg") is True:
-	 ciphertext = "/path/to/secret_plans.org.gpg"
+     if os.path.exists("/path/to/secret_plans.txt.asc") is True:
+	 ciphertext = "/path/to/secret_plans.txt.asc"
+     elif os.path.exists("/path/to/secret_plans.txt.gpg") is True:
+	 ciphertext = "/path/to/secret_plans.txt.gpg"
      else:
 	 ciphertext = None
 
@@ -327,7 +372,7 @@
 	 afile = open(ciphertext, "rb")
 	 plaintext = gpg.Context().decrypt(afile)
 	 afile.close()
-	 newfile = open("/path/to/secret_plans.org", "wb")
+	 newfile = open("/path/to/secret_plans.txt", "wb")
 	 newfile.write(plaintext[0])
 	 newfile.close()
 	 print(plaintext[0])
@@ -338,6 +383,7 @@
 	 pass
    #+end_src
 
+
 ** Signing text
    :PROPERTIES:
    :CUSTOM_ID: howto-basic-signing

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

Summary of changes:
 lang/python/docs/GPGMEpythonHOWTOen.org | 60 +++++++++++++++++++++++++++++----
 1 file changed, 53 insertions(+), 7 deletions(-)


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




More information about the Gnupg-commits mailing list