python bindings: howto examples
authorBen McGinnes <ben@adversary.org>
Sat, 7 Jul 2018 17:40:35 +0000 (03:40 +1000)
committerBen McGinnes <ben@adversary.org>
Sat, 7 Jul 2018 17:40:35 +0000 (03:40 +1000)
* Made sure all example scripts meet PEP8 compliance.
* Required fixing approx. a dozen of them in minor ways.

13 files changed:
lang/python/examples/howto/decrypt-file.py
lang/python/examples/howto/encrypt-file.py
lang/python/examples/howto/encrypt-sign-file.py
lang/python/examples/howto/encrypt-to-group-gullible.py
lang/python/examples/howto/encrypt-to-group-trustno1.py
lang/python/examples/howto/encrypt-to-group.py
lang/python/examples/howto/export-key.py
lang/python/examples/howto/export-minimised-key.py
lang/python/examples/howto/export-secret-key.py
lang/python/examples/howto/export-secret-keys.py
lang/python/examples/howto/import-key.py
lang/python/examples/howto/import-keys.py
lang/python/examples/howto/temp-homedir-config.py

index b38acc7..2fe37f2 100755 (executable)
@@ -32,10 +32,10 @@ if len(sys.argv) == 3:
     newfile = sys.argv[2]
 elif len(sys.argv) == 2:
     ciphertext = sys.argv[1]
-    newfile = input("Enter path and filename of file to save decrypted data to: ")
+    newfile = input("Enter path and filename to save decrypted data to: ")
 else:
     ciphertext = input("Enter path and filename of encrypted file: ")
-    newfile = input("Enter path and filename of file to save decrypted data to: ")
+    newfile = input("Enter path and filename to save decrypted data to: ")
 
 with open(ciphertext, "rb") as cfile:
     try:
index ad4e1ce..7c84a6f 100755 (executable)
@@ -3,6 +3,9 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import sys
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,9 +27,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import sys
-
 """
 Encrypts a file to a specified key.  If entering both the key and the filename
 on the command line, the key must be entered first.
@@ -55,7 +55,7 @@ with open(filename, "rb") as f:
 with gpg.Context(armor=True) as ca:
     try:
         ciphertext, result, sign_result = ca.encrypt(text, recipients=rkey,
-                                                    sign=False)
+                                                     sign=False)
         with open("{0}.asc".format(filename), "wb") as fa:
             fa.write(ciphertext)
     except gpg.errors.InvalidRecipients as e:
@@ -64,7 +64,7 @@ with gpg.Context(armor=True) as ca:
 with gpg.Context() as cg:
     try:
         ciphertext, result, sign_result = cg.encrypt(text, recipients=rkey,
-                                                    sign=False)
+                                                     sign=False)
         with open("{0}.gpg".format(filename), "wb") as fg:
             fg.write(ciphertext)
     except gpg.errors.InvalidRecipients as e:
index 41aaac8..a08176b 100755 (executable)
@@ -3,6 +3,9 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import sys
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,9 +27,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import sys
-
 """
 Signs and encrypts a file to a specified key.  If entering both the key and the
 filename on the command line, the key must be entered first.
@@ -58,13 +58,13 @@ with open(filename, "rb") as f:
 with gpg.Context(armor=True) as ca:
     ciphertext, result, sign_result = ca.encrypt(text, recipients=rkey,
                                                  always_trust=True,
-                                                     add_encrypt_to=True)
+                                                 add_encrypt_to=True)
     with open("{0}.asc".format(filename), "wb") as fa:
         fa.write(ciphertext)
 
 with gpg.Context() as cg:
     ciphertext, result, sign_result = cg.encrypt(text, recipients=rkey,
                                                  always_trust=True,
-                                                     add_encrypt_to=True)
+                                                 add_encrypt_to=True)
     with open("{0}.gpg".format(filename), "wb") as fg:
         fg.write(ciphertext)
index 7ebfb6b..c96e829 100755 (executable)
@@ -3,6 +3,10 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import sys
+from groups import group_lists
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,10 +28,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import sys
-from groups import group_lists
-
 """
 Uses the groups module to encrypt to multiple recipients.
 
@@ -74,7 +74,7 @@ if klist is not None:
                                                     add_encrypt_to=True,
                                                     always_trust=True)
     with open("{0}.asc".format(filepath), "wb") as f:
-              f.write(ciphertext)
+        f.write(ciphertext)
 else:
     pass
 
index 736c5f1..da0376b 100755 (executable)
@@ -3,6 +3,10 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import sys
+from groups import group_lists
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,10 +28,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import sys
-from groups import group_lists
-
 """
 Uses the groups module to encrypt to multiple recipients.
 
@@ -83,7 +83,7 @@ if klist is not None:
         except:
             pass
     with open("{0}.asc".format(filepath), "wb") as f:
-              f.write(ciphertext)
+        f.write(ciphertext)
 else:
     pass
 
index 84f8d10..d4cb074 100755 (executable)
@@ -3,6 +3,10 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import sys
+from groups import group_lists
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,10 +28,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import sys
-from groups import group_lists
-
 """
 Uses the groups module to encrypt to multiple recipients.
 
@@ -84,7 +84,7 @@ if klist is not None:
         except:
             pass
     with open("{0}.asc".format(filepath), "wb") as f:
-              f.write(ciphertext)
+        f.write(ciphertext)
 else:
     pass
 
index 41be64f..6def687 100755 (executable)
@@ -3,6 +3,10 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import os.path
+import sys
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,10 +28,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import os.path
-import sys
-
 print("""
 This script exports one or more public keys.
 """)
index d28b1cb..c2c533e 100755 (executable)
@@ -3,6 +3,10 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import os.path
+import sys
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,10 +28,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import os.path
-import sys
-
 print("""
 This script exports one or more public keys in minimised form.
 """)
index 8bbe409..e9c53fe 100755 (executable)
@@ -3,6 +3,11 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import os
+import os.path
+import sys
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,11 +29,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import os
-import os.path
-import sys
-
 print("""
 This script exports one or more secret keys.
 
index 03037c9..f0a791e 100755 (executable)
@@ -3,6 +3,12 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import os
+import os.path
+import subprocess
+import sys
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,12 +30,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import os
-import os.path
-import subprocess
-import sys
-
 print("""
 This script exports one or more secret keys as both ASCII armored and binary
 file formats, saved in files within the user's GPG home directory.
index 56cfe25..464052d 100755 (executable)
@@ -3,6 +3,10 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import os.path
+import sys
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,10 +28,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import os.path
-import sys
-
 print("""
 This script exports one or more public keys.
 """)
index 8a3bb29..bdc15a6 100755 (executable)
@@ -3,6 +3,10 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import gpg
+import os.path
+import requests
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,21 +28,14 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import gpg
-import os.path
-import requests
-
 print("""
 This script imports one or more public keys from the SKS keyservers.
 """)
 
-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 }
+payload = {"op": "get", "search": pattern}
 
 r = requests.get(url, verify=True, params=payload)
 result = c.key_import(r.content)
index ddd7932..3bb5cf3 100755 (executable)
@@ -3,6 +3,10 @@
 
 from __future__ import absolute_import, division, unicode_literals
 
+import os
+import os.path
+import sys
+
 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
@@ -24,10 +28,6 @@ from __future__ import absolute_import, division, unicode_literals
 # Lesser General Public along with this program; if not, see
 # <http://www.gnu.org/licenses/>.
 
-import os
-import os.path
-import sys
-
 intro = """
 This script creates a temporary directory to use as a homedir for
 testing key generation tasks with the correct permissions, along
@@ -54,6 +54,13 @@ message telling you to specify a new directory name.  There is no
 default directory name.
 """
 
+ciphers256 = "TWOFISH CAMELLIA256 AES256"
+ciphers192 = "CAMELLIA192 AES192"
+ciphers128 = "CAMELLIA128 AES"
+ciphersBad = "BLOWFISH IDEA CAST5 3DES"
+digests = "SHA512 SHA384 SHA256 SHA224 RIPEMD160 SHA1"
+compress = "ZLIB BZIP2 ZIP Uncompressed"
+
 gpgconf = """# gpg.conf settings for key generation:
 expert
 allow-freeform-uid
@@ -63,11 +70,11 @@ tofu-default-policy unknown
 enable-large-rsa
 enable-dsa2
 cert-digest-algo SHA512
-default-preference-list TWOFISH CAMELLIA256 AES256 CAMELLIA192 AES192 CAMELLIA128 AES BLOWFISH IDEA CAST5 3DES SHA512 SHA384 SHA256 SHA224 RIPEMD160 SHA1 ZLIB BZIP2 ZIP Uncompressed
-personal-cipher-preferences TWOFISH CAMELLIA256 AES256 CAMELLIA192 AES192 CAMELLIA128 AES BLOWFISH IDEA CAST5 3DES
-personal-digest-preferences SHA512 SHA384 SHA256 SHA224 RIPEMD160 SHA1
-personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed
-"""
+default-preference-list {0} {1} {2} {3} {4} {5}
+personal-cipher-preferences {0} {1} {2} {3}
+personal-digest-preferences {4}
+personal-compress-preferences {5}
+""".format(ciphers256, ciphers192, ciphers128, ciphersBad, digests, compress)
 
 agentconf = """# gpg-agent.conf settings for key generation:
 default-cache-ttl 300