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:: * Basic Functions::
* Creating keys and subkeys:: * Creating keys and subkeys::
* Advanced or Experimental Use Cases:: * Advanced or Experimental Use Cases::
* Miscellaneous work-arounds:: * Miscellaneous extras and work-arounds::
* Copyright and Licensing:: * Copyright and Licensing::
@detailmenu @detailmenu
@ -125,9 +125,14 @@ Advanced or Experimental Use Cases
* C plus Python plus SWIG plus Cython:: * C plus Python plus SWIG plus Cython::
Miscellaneous work-arounds Miscellaneous extras and work-arounds
* Group lines:: * Group lines::
* Keyserver access for Python::
Keyserver access for Python
* Key import format::
Copyright and Licensing 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 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. @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 @node Miscellaneous extras and work-arounds
@chapter Miscellaneous work-arounds @chapter Miscellaneous extras and work-arounds
@menu @menu
* Group lines:: * Group lines::
* Keyserver access for Python::
@end menu @end menu
@node Group lines @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 converts them into crypt-hooks suitable for use with the Mutt and
Neomutt mail clients. 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 @node Copyright and Licensing
@chapter 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. [[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: :PROPERTIES:
:CUSTOM_ID: cheats-and-hacks :CUSTOM_ID: cheats-and-hacks
:END: :END:
@ -2157,6 +2157,34 @@ converts them into crypt-hooks suitable for use with the Mutt and
Neomutt mail clients. 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 * Copyright and Licensing
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: copyright-and-license :CUSTOM_ID: copyright-and-license