docs: python bindings and its special request

* Added some material on using the new-ish hkp4py module with GPGME.
* Example code will be added later once a couple of little issues are
  addressed.

Signed-off-by: Ben McGinnes <ben@adversary.org>
This commit is contained in:
Ben McGinnes 2018-09-20 11:38:20 +10:00
parent 34be6163f6
commit 5cb67257f2
2 changed files with 69 additions and 9 deletions

View File

@ -28,7 +28,7 @@
* Basic Functions::
* Creating keys and subkeys::
* Advanced or Experimental Use Cases::
* Miscellaneous work-arounds::
* Miscellaneous extras and work-arounds::
* Copyright and Licensing::
@detailmenu
@ -125,9 +125,14 @@ Advanced or Experimental Use Cases
* C plus Python plus SWIG plus Cython::
Miscellaneous work-arounds
Miscellaneous extras and work-arounds
* Group lines::
* Keyserver access for Python::
Keyserver access for Python
* Key import format::
Copyright and Licensing
@ -2178,11 +2183,12 @@ The example versions include some additional options to annotate the
existing code and to detect Cython's use. The latter comes from the
@uref{http://docs.cython.org/en/latest/src/tutorial/pure.html#magic-attributes-within-the-pxd, Magic Attributes} section of the Cython documentation.
@node Miscellaneous work-arounds
@chapter Miscellaneous work-arounds
@node Miscellaneous extras and work-arounds
@chapter Miscellaneous extras and work-arounds
@menu
* Group lines::
* Keyserver access for Python::
@end menu
@node Group lines
@ -2249,6 +2255,32 @@ script reads all the group entries in a user's @samp{gpg.conf} file and
converts them into crypt-hooks suitable for use with the Mutt and
Neomutt mail clients.
@node Keyserver access for Python
@section Keyserver access for Python
The @uref{https://github.com/Selfnet/hkp4py, hkp4py} module by Marcel Fest was originally a port of the old
@uref{https://github.com/dgladkov/python-hkp, python-hkp} module from Python 2 to Python 3 and updated to use the
@uref{http://docs.python-requests.org/en/latest/index.html, requests} module instead. It has since been modified to provide
support for Python 2.7 as well and is available via PyPI.
Since it rewrites the @samp{hkp} protocol prefix as @samp{http} and @samp{hkps} as
@samp{https}, the module is able to be used even with servers which do not
support the full scope of keyserver functions. It will work quite
readily when incorporated into a @ref{C plus Python plus SWIG plus Cython, , Cython} generated and compiled version
of any code.
@menu
* Key import format::
@end menu
@node Key import format
@subsection Key import format
The hkp4py module returns key data via requests as string literals
(@samp{r.text}) instead of byte literals (@samp{r.content}). This means that
the retrurned key data must be encoded to UTF-8 when importing that
key material using a @samp{gpg.Context().key_import()} method.
@node Copyright and Licensing
@chapter Copyright and Licensing

View File

@ -2084,7 +2084,7 @@ existing code and to detect Cython's use. The latter comes from the
[[http://docs.cython.org/en/latest/src/tutorial/pure.html#magic-attributes-within-the-pxd][Magic Attributes]] section of the Cython documentation.
* Miscellaneous work-arounds
* Miscellaneous extras and work-arounds
:PROPERTIES:
:CUSTOM_ID: cheats-and-hacks
:END:
@ -2157,6 +2157,34 @@ converts them into crypt-hooks suitable for use with the Mutt and
Neomutt mail clients.
** Keyserver access for Python
:PROPERTIES:
:CUSTOM_ID: hkp4py
:END:
The [[https://github.com/Selfnet/hkp4py][hkp4py]] module by Marcel Fest was originally a port of the old
[[https://github.com/dgladkov/python-hkp][python-hkp]] module from Python 2 to Python 3 and updated to use the
[[http://docs.python-requests.org/en/latest/index.html][requests]] module instead. It has since been modified to provide
support for Python 2.7 as well and is available via PyPI.
Since it rewrites the =hkp= protocol prefix as =http= and =hkps= as
=https=, the module is able to be used even with servers which do not
support the full scope of keyserver functions. It will work quite
readily when incorporated into a [[#cython][Cython]] generated and compiled version
of any code.
*** Key import format
:PROPERTIES:
:CUSTOM_ID: hkp4py-strings
:END:
The hkp4py module returns key data via requests as string literals
(=r.text=) instead of byte literals (=r.content=). This means that
the retrurned key data must be encoded to UTF-8 when importing that
key material using a =gpg.Context().key_import()= method.
* Copyright and Licensing
:PROPERTIES:
:CUSTOM_ID: copyright-and-license