doc: python bindings howto

* moved single encrytion examples up to the first ones, pending merge
  and major cut.
* This is basically just to make future checks of revisions a little easier.
This commit is contained in:
Ben McGinnes 2018-03-19 08:49:17 +11:00
parent 82c5af225f
commit 4811ff7b6c

View File

@ -511,6 +511,70 @@
print(ex.getstring())
#+end_src
*** 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)
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
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)
with open("secret_plans.txt.asc", "wb") as afile:
afile.write(cipher[0])
#+end_src
*** Encrypting to multiple keys
:PROPERTIES:
:CUSTOM_ID: howto-basic-encryption-multiple
@ -610,70 +674,6 @@
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)
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
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)
with open("secret_plans.txt.asc", "wb") as afile:
afile.write(cipher[0])
#+end_src
** Decryption
:PROPERTIES: