doc: Basic operation of the python bindings
* Added sample code for encrypting some text to a single key. * Basically I'm just lifting existing production code and changing the key IDs from mine to "0x12345678DEADBEEF" for these first few examples. * I'll fill in the text description after. * Note: due to my regional location, I might split some tasks into more commits in order to be sure no work gets lost in case of emergency (or to put it another way: I know Telstra too well to trust them).
This commit is contained in:
parent
a98f2c556f
commit
75463d5895
@ -254,6 +254,57 @@ Python bindings to programmatically leverage the GPGME library.
|
|||||||
operation type has one.
|
operation type has one.
|
||||||
|
|
||||||
|
|
||||||
|
* Basic Functions
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: howto-the-basics
|
||||||
|
:END:
|
||||||
|
|
||||||
|
** Encryption
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: howto-basic-encryption
|
||||||
|
:END:
|
||||||
|
|
||||||
|
Encrypting to one key:
|
||||||
|
|
||||||
|
#+begin_src python
|
||||||
|
import gpg
|
||||||
|
import os
|
||||||
|
import os.path
|
||||||
|
|
||||||
|
rkey = "0x12345678DEADBEEF"
|
||||||
|
text = """
|
||||||
|
Some plain text to test with. Obtained from any input source Python can read.
|
||||||
|
|
||||||
|
It makes no difference whether it is string or bytes, but the bindings always
|
||||||
|
produce byte output data. Which is useful to know when writing out either the
|
||||||
|
encrypted or decrypted results.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
plain = gpg.core.Data(text)
|
||||||
|
cipher = gpg.core.Data()
|
||||||
|
c = gpg.core.Context()
|
||||||
|
c.set_armor(1)
|
||||||
|
|
||||||
|
c.op_keylist_start(rkey, 0)
|
||||||
|
r = c.op_keylist_next()
|
||||||
|
|
||||||
|
if r == None:
|
||||||
|
print("""The key for user "{0}" was not found""".format(rkey))
|
||||||
|
else:
|
||||||
|
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()
|
||||||
|
except gpg.errors.GPGMEError as ex:
|
||||||
|
print(ex.getstring())
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
* Copyright and Licensing
|
* Copyright and Licensing
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: copyright-and-license
|
:CUSTOM_ID: copyright-and-license
|
||||||
|
Loading…
Reference in New Issue
Block a user