From 1e34141f6770cd8ca243048ec6f78d600bed4262 Mon Sep 17 00:00:00 2001
From: Ben McGinnes
Date: Fri, 13 Jul 2018 22:08:42 +1000
Subject: [PATCH] python bindings howto: dita version
* Numerous updates to bring it back into sync with the official doc.
* Especially important since it now looks like the babel thing is a
real bug after all and not me doing something stupid.
---
.../docs/dita/gpgme-python-howto.ditamap | 2 +-
.../docs/dita/howto/part02/installing.dita | 4 +-
.../part02/{daesh.dita => isis-gnupg.dita} | 0
.../dita/howto/part03/exporting-pubkeys.dita | 4 +-
.../dita/howto/part03/importing-eff-keys.dita | 74 +++++++++++++++++++
lang/python/docs/dita/howto/version-info.dita | 2 +-
6 files changed, 80 insertions(+), 6 deletions(-)
rename lang/python/docs/dita/howto/part02/{daesh.dita => isis-gnupg.dita} (100%)
create mode 100644 lang/python/docs/dita/howto/part03/importing-eff-keys.dita
diff --git a/lang/python/docs/dita/gpgme-python-howto.ditamap b/lang/python/docs/dita/gpgme-python-howto.ditamap
index 1809acb3..10ba8a64 100644
--- a/lang/python/docs/dita/gpgme-python-howto.ditamap
+++ b/lang/python/docs/dita/gpgme-python-howto.ditamap
@@ -39,7 +39,7 @@
-
+
diff --git a/lang/python/docs/dita/howto/part02/installing.dita b/lang/python/docs/dita/howto/part02/installing.dita
index 879f6ca7..4ede496d 100644
--- a/lang/python/docs/dita/howto/part02/installing.dita
+++ b/lang/python/docs/dita/howto/part02/installing.dita
@@ -16,8 +16,8 @@
For Python 2 it checks for these executables in this order: python,
python2 and python2.7.
For Python 3 it checks for these executables in this order: python3,
- python3.6, python3.5 and
- python3.4.
+ python3.6, python3.5, python3.4
+ and python3.7.
There are two methods of exporting public keys, both of which are very similar to the
- other. The default method, key_export() will export a public key or keys
+ other. The default method, key_export(), will export a public key or keys
matching a specified pattern as normal. The alternative, the
- key_export_minimal() method will do the same thing except producing a
+ key_export_minimal() method, will do the same thing except producing a
minimised output with extra signatures and third party signatures or certifications
removed.
diff --git a/lang/python/docs/dita/howto/part03/importing-eff-keys.dita b/lang/python/docs/dita/howto/part03/importing-eff-keys.dita
new file mode 100644
index 00000000..124ebdac
--- /dev/null
+++ b/lang/python/docs/dita/howto/part03/importing-eff-keys.dita
@@ -0,0 +1,74 @@
+
+
+
+
+ Importing Keys
+ DRAFT VERSION
+
+ Importing keys is possible with the key_import() method and takes one
+ argument which is a bytes literal object containing either the binary or ASCII armoured key
+ data for one or more keys.
+ In the following example a key will be retrieved from the SKS keyservers via the web using
+ the requests module. Since requests returns the content as a bytes literal object, we can
+ then use that directly to import the resulting data into our keybox. In order to demonstrate
+ multiple imports this example searches for all the keys of users at a particular domain
+ name. This time we're using the EFF, since they've always been such good supporters of
+ strong encryption and good security practices.
+ If this holds true then I would expect that some keys I already have will be updated and
+ some others will be added. Most of the keys created most recently and belonging to still
+ active people within the EFF should, if they are following their own recent statements, be
+ revoked. If they are not revoked then it would be best left to the reader to determine
+ whether or not the change in leadership at that organisation indicates a change in their
+ policy of supporting good security practices.
+
+ import gpg
+import requests
+
+c = gpg.Context()
+url = "https://sks-keyservers.net/pks/lookup"
+pattern = input("Enter the pattern to search for key or user IDs: ")
+payload = { "op": "get", "search": pattern }
+
+r = requests.get(url, verify=True, params=payload)
+k = c.key_import(r.content)
+
+summary = """
+Total number of keys: {0}
+Total number imported: {1}
+Number of version 3 keys ignored: {2}
+
+Number of imported key objects or updates: {3}
+Number of unchanged keys: {4}
+Number of new signatures: {5}
+Number of revoked keys: {6}
+""".format(k.considered, len(k.imports), k.skipped_v3_keys, k.imported,
+ k.unchanged, k.new_signatures, k.new_revocations)
+
+print(summary)
+
+ The resulting output in that case, where the search pattern entered was
+ @eff.org was:
+
+ Total number of keys: 272
+Total number imported: 249
+Number of version 3 keys ignored: 23
+
+Number of imported key objects or updates: 180
+Number of unchanged keys: 66
+Number of new signatures: 7
+Number of revoked keys: 0
+
+ The 23 skipped keys all date back to the 1990s, some of which were made very shortly after
+ PGP 2 was first released.
+
+ Pretty Good Privacy version 2 and above are the only versions with any widespread use.
+ Pretty Good Privacy version 1 had a number of serious security problems, not least of
+ which being that it relied on an encryption algorithm called Bass-O-Matic which was
+ written by Phil Zimmermann. Following feedback on this algorithm, Zimmermann withdrew
+ version 1 and re-implemented version 2 using RSA and IDEA, even though both were subject
+ to software patents at the time (both of those software patents have long since
+ expired).
+
+
+
+
diff --git a/lang/python/docs/dita/howto/version-info.dita b/lang/python/docs/dita/howto/version-info.dita
index f9bb42aa..f07c1362 100644
--- a/lang/python/docs/dita/howto/version-info.dita
+++ b/lang/python/docs/dita/howto/version-info.dita
@@ -4,7 +4,7 @@
Documentation Version
- Version: 0.1.2-DRAFT
+ Version: 0.1.3-DRAFT
Author: Ben McGinnes <ben@gnupg.org>
Author GPG Key ID: