diff options
| author | Ben McGinnes <[email protected]> | 2018-03-14 09:36:30 +0000 | 
|---|---|---|
| committer | Ben McGinnes <[email protected]> | 2018-03-14 09:36:30 +0000 | 
| commit | 423fdcd4653cb01f07f2b0e72cfcf49554930f70 (patch) | |
| tree | f37f4c49648045a6d4ee153e10d604c278c1a20b /lang/python/docs/GPGMEpythonHOWTOen.org | |
| parent | doc: python binding howto (diff) | |
| download | gpgme-423fdcd4653cb01f07f2b0e72cfcf49554930f70.tar.gz gpgme-423fdcd4653cb01f07f2b0e72cfcf49554930f70.zip | |
doc: python bindings howto
* Added recommended method of single encryption with description.
Diffstat (limited to 'lang/python/docs/GPGMEpythonHOWTOen.org')
| -rw-r--r-- | lang/python/docs/GPGMEpythonHOWTOen.org | 66 | 
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: | 
