doc: python bindings howto
* Added a section on key selection. * Included recommendation for using fingerprint when selecting one specific key. * Also included the most ironically amusing example of multiple key selection in a GPG guide. Hey, it's public data ... (heh).
This commit is contained in:
parent
952b6042f7
commit
a10dcb4f13
@ -285,9 +285,68 @@
|
|||||||
:CUSTOM_ID: howto-keys
|
:CUSTOM_ID: howto-keys
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
|
** Key selection
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: howto-keys-selection
|
||||||
|
:END:
|
||||||
|
|
||||||
|
Selecting keys to encrypt to or to sign with will be a common
|
||||||
|
occurrence when working with GPGMe and the means available for
|
||||||
|
doing so are quite simple.
|
||||||
|
|
||||||
|
They do depend on utilising a Context; however once the data is
|
||||||
|
recorded in another variable, that Context does not need to be the
|
||||||
|
same one which subsequent operations are performed.
|
||||||
|
|
||||||
|
The easiest way to select a specific key is by searching for that
|
||||||
|
key's key ID or fingerprint, preferably the full fingerprint
|
||||||
|
without any spaces in it. A long key ID will probably be okay, but
|
||||||
|
is not advised and short key IDs are already a problem with some
|
||||||
|
being generated to match specific patterns. It does not matter
|
||||||
|
whether the pattern is upper or lower case.
|
||||||
|
|
||||||
|
So this is the best method:
|
||||||
|
|
||||||
|
#+begin_src python
|
||||||
|
import gpg
|
||||||
|
|
||||||
|
k = gpg.Context().keylist(pattern="258E88DCBD3CD44D8E7AB43F6ECB6AF0DEADBEEF")
|
||||||
|
keys = list(k)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
This is passable and very likely to be common:
|
||||||
|
|
||||||
|
#+begin_src python
|
||||||
|
import gpg
|
||||||
|
|
||||||
|
k = gpg.Context().keylist(pattern="0x6ECB6AF0DEADBEEF")
|
||||||
|
keys = list(k)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
And this is a really bad idea:
|
||||||
|
|
||||||
|
#+begin_src python
|
||||||
|
import gpg
|
||||||
|
|
||||||
|
k = gpg.Context().keylist(pattern="0xDEADBEEF")
|
||||||
|
keys = list(k)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Alternatively it may be that the intention is to create a list of
|
||||||
|
keys which all match a particular search string. For instance all
|
||||||
|
the addresses at a particular domain, like this:
|
||||||
|
|
||||||
|
#+begin_src python
|
||||||
|
import gpg
|
||||||
|
|
||||||
|
ncsc = gpg.Context().keylist(pattern="ncsc.mil")
|
||||||
|
nsa = list(ncsc)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
** Counting keys
|
** Counting keys
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: howto-basic-verification
|
:CUSTOM_ID: howto-keys-counting
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
Counting the number of keys in your public keybox (=pubring.kbx=),
|
Counting the number of keys in your public keybox (=pubring.kbx=),
|
||||||
|
Loading…
Reference in New Issue
Block a user