aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/docs/GPGMEpythonHOWTOen.org
diff options
context:
space:
mode:
authorBen McGinnes <[email protected]>2018-03-14 09:36:30 +0000
committerBen McGinnes <[email protected]>2018-03-14 09:36:30 +0000
commit423fdcd4653cb01f07f2b0e72cfcf49554930f70 (patch)
treef37f4c49648045a6d4ee153e10d604c278c1a20b /lang/python/docs/GPGMEpythonHOWTOen.org
parentdoc: python binding howto (diff)
downloadgpgme-423fdcd4653cb01f07f2b0e72cfcf49554930f70.tar.gz
gpgme-423fdcd4653cb01f07f2b0e72cfcf49554930f70.zip
doc: python bindings howto
* Added recommended method of single encryption with description.
Diffstat (limited to '')
-rw-r--r--lang/python/docs/GPGMEpythonHOWTOen.org66
1 files changed, 66 insertions, 0 deletions
diff --git a/lang/python/docs/GPGMEpythonHOWTOen.org b/lang/python/docs/GPGMEpythonHOWTOen.org
index e4e2a743..360bce91 100644
--- a/lang/python/docs/GPGMEpythonHOWTOen.org
+++ b/lang/python/docs/GPGMEpythonHOWTOen.org
@@ -565,6 +565,72 @@
This will attempt to encrypt to all the keys searched for, then
remove invalid recipients if it fails and try again.
+**** Encrypting to one key using the second method
+ :PROPERTIES:
+ :CUSTOM_ID: howto-basic-encryption-monogamous
+ :END:
+
+ This example re-creates the first encryption example except it
+ uses the same =encrypt= method used in the subsequent examples
+ instead of the =op_encrypt= method. This means that, unlike the
+ =op_encrypt= method, it /must/ use byte literal input data.
+
+ #+begin_src python
+ import gpg
+
+ rkey = "0x12345678DEADBEEF"
+ text = b"""Some text to test with.
+
+ Since the text in this case must be bytes, it is most likely that
+ the input form will be a separate file which is opened with "rb"
+ as this is the simplest method of obtaining the correct data
+ format.
+ """
+
+ c = gpg.Context(armor=True)
+ rpattern = list(c.keylist(pattern=rkey, secret=False))
+ logrus = []
+
+ for i in range(len(rpattern)):
+ if rpattern[i].can_encrypt == 1:
+ logrus.append(rpattern[i])
+
+ cipher = c.encrypt(text, recipients=logrus, sign=False, always_trust=True)
+
+ afile = open("secret_plans.txt.asc", "wb")
+ afile.write(cipher[0])
+ afile.close()
+ #+end_src
+
+ With one or two exceptions, this method will probably prove to be
+ easier to implement than the first method and thus it is the
+ recommended encryption method. Though it is even more likely to
+ be used like this:
+
+ #+begin_src python
+ import gpg
+
+ rkey = "0x12345678DEADBEEF"
+
+ afile = open("secret_plans.txt", "rb")
+ text = afile.read()
+ afile.close()
+
+ c = gpg.Context(armor=True)
+ rpattern = list(c.keylist(pattern=rkey, secret=False))
+ logrus = []
+
+ for i in range(len(rpattern)):
+ if rpattern[i].can_encrypt == 1:
+ logrus.append(rpattern[i])
+
+ cipher = c.encrypt(text, recipients=logrus, sign=False, always_trust=True)
+
+ afile = open("secret_plans.txt.asc", "wb")
+ afile.write(cipher[0])
+ afile.close()
+ #+end_src
+
** Decryption
:PROPERTIES: