python bindings: howto examples
* Made sure all example scripts meet PEP8 compliance. * Required fixing approx. a dozen of them in minor ways.
This commit is contained in:
parent
66c2a99422
commit
cacca62d06
@ -32,10 +32,10 @@ if len(sys.argv) == 3:
|
|||||||
newfile = sys.argv[2]
|
newfile = sys.argv[2]
|
||||||
elif len(sys.argv) == 2:
|
elif len(sys.argv) == 2:
|
||||||
ciphertext = sys.argv[1]
|
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:
|
else:
|
||||||
ciphertext = input("Enter path and filename of encrypted file: ")
|
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:
|
with open(ciphertext, "rb") as cfile:
|
||||||
try:
|
try:
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
from __future__ import absolute_import, division, unicode_literals
|
||||||
|
|
||||||
|
import gpg
|
||||||
|
import sys
|
||||||
|
|
||||||
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import gpg
|
|
||||||
import sys
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Encrypts a file to a specified key. If entering both the key and the filename
|
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.
|
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:
|
with gpg.Context(armor=True) as ca:
|
||||||
try:
|
try:
|
||||||
ciphertext, result, sign_result = ca.encrypt(text, recipients=rkey,
|
ciphertext, result, sign_result = ca.encrypt(text, recipients=rkey,
|
||||||
sign=False)
|
sign=False)
|
||||||
with open("{0}.asc".format(filename), "wb") as fa:
|
with open("{0}.asc".format(filename), "wb") as fa:
|
||||||
fa.write(ciphertext)
|
fa.write(ciphertext)
|
||||||
except gpg.errors.InvalidRecipients as e:
|
except gpg.errors.InvalidRecipients as e:
|
||||||
@ -64,7 +64,7 @@ with gpg.Context(armor=True) as ca:
|
|||||||
with gpg.Context() as cg:
|
with gpg.Context() as cg:
|
||||||
try:
|
try:
|
||||||
ciphertext, result, sign_result = cg.encrypt(text, recipients=rkey,
|
ciphertext, result, sign_result = cg.encrypt(text, recipients=rkey,
|
||||||
sign=False)
|
sign=False)
|
||||||
with open("{0}.gpg".format(filename), "wb") as fg:
|
with open("{0}.gpg".format(filename), "wb") as fg:
|
||||||
fg.write(ciphertext)
|
fg.write(ciphertext)
|
||||||
except gpg.errors.InvalidRecipients as e:
|
except gpg.errors.InvalidRecipients as e:
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
from __future__ import absolute_import, division, unicode_literals
|
||||||
|
|
||||||
|
import gpg
|
||||||
|
import sys
|
||||||
|
|
||||||
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <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
|
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.
|
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:
|
with gpg.Context(armor=True) as ca:
|
||||||
ciphertext, result, sign_result = ca.encrypt(text, recipients=rkey,
|
ciphertext, result, sign_result = ca.encrypt(text, recipients=rkey,
|
||||||
always_trust=True,
|
always_trust=True,
|
||||||
add_encrypt_to=True)
|
add_encrypt_to=True)
|
||||||
with open("{0}.asc".format(filename), "wb") as fa:
|
with open("{0}.asc".format(filename), "wb") as fa:
|
||||||
fa.write(ciphertext)
|
fa.write(ciphertext)
|
||||||
|
|
||||||
with gpg.Context() as cg:
|
with gpg.Context() as cg:
|
||||||
ciphertext, result, sign_result = cg.encrypt(text, recipients=rkey,
|
ciphertext, result, sign_result = cg.encrypt(text, recipients=rkey,
|
||||||
always_trust=True,
|
always_trust=True,
|
||||||
add_encrypt_to=True)
|
add_encrypt_to=True)
|
||||||
with open("{0}.gpg".format(filename), "wb") as fg:
|
with open("{0}.gpg".format(filename), "wb") as fg:
|
||||||
fg.write(ciphertext)
|
fg.write(ciphertext)
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
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>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import gpg
|
|
||||||
import sys
|
|
||||||
from groups import group_lists
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Uses the groups module to encrypt to multiple recipients.
|
Uses the groups module to encrypt to multiple recipients.
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ if klist is not None:
|
|||||||
add_encrypt_to=True,
|
add_encrypt_to=True,
|
||||||
always_trust=True)
|
always_trust=True)
|
||||||
with open("{0}.asc".format(filepath), "wb") as f:
|
with open("{0}.asc".format(filepath), "wb") as f:
|
||||||
f.write(ciphertext)
|
f.write(ciphertext)
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
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>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import gpg
|
|
||||||
import sys
|
|
||||||
from groups import group_lists
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Uses the groups module to encrypt to multiple recipients.
|
Uses the groups module to encrypt to multiple recipients.
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ if klist is not None:
|
|||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
with open("{0}.asc".format(filepath), "wb") as f:
|
with open("{0}.asc".format(filepath), "wb") as f:
|
||||||
f.write(ciphertext)
|
f.write(ciphertext)
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
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>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import gpg
|
|
||||||
import sys
|
|
||||||
from groups import group_lists
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Uses the groups module to encrypt to multiple recipients.
|
Uses the groups module to encrypt to multiple recipients.
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ if klist is not None:
|
|||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
with open("{0}.asc".format(filepath), "wb") as f:
|
with open("{0}.asc".format(filepath), "wb") as f:
|
||||||
f.write(ciphertext)
|
f.write(ciphertext)
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
from __future__ import absolute_import, division, unicode_literals
|
||||||
|
|
||||||
|
import gpg
|
||||||
|
import os.path
|
||||||
|
import sys
|
||||||
|
|
||||||
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import gpg
|
|
||||||
import os.path
|
|
||||||
import sys
|
|
||||||
|
|
||||||
print("""
|
print("""
|
||||||
This script exports one or more public keys.
|
This script exports one or more public keys.
|
||||||
""")
|
""")
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
from __future__ import absolute_import, division, unicode_literals
|
||||||
|
|
||||||
|
import gpg
|
||||||
|
import os.path
|
||||||
|
import sys
|
||||||
|
|
||||||
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import gpg
|
|
||||||
import os.path
|
|
||||||
import sys
|
|
||||||
|
|
||||||
print("""
|
print("""
|
||||||
This script exports one or more public keys in minimised form.
|
This script exports one or more public keys in minimised form.
|
||||||
""")
|
""")
|
||||||
|
@ -3,6 +3,11 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
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>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import gpg
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import sys
|
|
||||||
|
|
||||||
print("""
|
print("""
|
||||||
This script exports one or more secret keys.
|
This script exports one or more secret keys.
|
||||||
|
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
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>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import gpg
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
|
|
||||||
print("""
|
print("""
|
||||||
This script exports one or more secret keys as both ASCII armored and binary
|
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.
|
file formats, saved in files within the user's GPG home directory.
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
from __future__ import absolute_import, division, unicode_literals
|
||||||
|
|
||||||
|
import gpg
|
||||||
|
import os.path
|
||||||
|
import sys
|
||||||
|
|
||||||
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import gpg
|
|
||||||
import os.path
|
|
||||||
import sys
|
|
||||||
|
|
||||||
print("""
|
print("""
|
||||||
This script exports one or more public keys.
|
This script exports one or more public keys.
|
||||||
""")
|
""")
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
from __future__ import absolute_import, division, unicode_literals
|
||||||
|
|
||||||
|
import gpg
|
||||||
|
import os.path
|
||||||
|
import requests
|
||||||
|
|
||||||
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import gpg
|
|
||||||
import os.path
|
|
||||||
import requests
|
|
||||||
|
|
||||||
print("""
|
print("""
|
||||||
This script imports one or more public keys from the SKS keyservers.
|
This script imports one or more public keys from the SKS keyservers.
|
||||||
""")
|
""")
|
||||||
|
|
||||||
import gpg
|
|
||||||
import requests
|
|
||||||
|
|
||||||
c = gpg.Context()
|
c = gpg.Context()
|
||||||
url = "https://sks-keyservers.net/pks/lookup"
|
url = "https://sks-keyservers.net/pks/lookup"
|
||||||
pattern = input("Enter the pattern to search for key or user IDs: ")
|
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)
|
r = requests.get(url, verify=True, params=payload)
|
||||||
result = c.key_import(r.content)
|
result = c.key_import(r.content)
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, unicode_literals
|
from __future__ import absolute_import, division, unicode_literals
|
||||||
|
|
||||||
|
import os
|
||||||
|
import os.path
|
||||||
|
import sys
|
||||||
|
|
||||||
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
# Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# 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
|
# Lesser General Public along with this program; if not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import sys
|
|
||||||
|
|
||||||
intro = """
|
intro = """
|
||||||
This script creates a temporary directory to use as a homedir for
|
This script creates a temporary directory to use as a homedir for
|
||||||
testing key generation tasks with the correct permissions, along
|
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.
|
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:
|
gpgconf = """# gpg.conf settings for key generation:
|
||||||
expert
|
expert
|
||||||
allow-freeform-uid
|
allow-freeform-uid
|
||||||
@ -63,11 +70,11 @@ tofu-default-policy unknown
|
|||||||
enable-large-rsa
|
enable-large-rsa
|
||||||
enable-dsa2
|
enable-dsa2
|
||||||
cert-digest-algo SHA512
|
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
|
default-preference-list {0} {1} {2} {3} {4} {5}
|
||||||
personal-cipher-preferences TWOFISH CAMELLIA256 AES256 CAMELLIA192 AES192 CAMELLIA128 AES BLOWFISH IDEA CAST5 3DES
|
personal-cipher-preferences {0} {1} {2} {3}
|
||||||
personal-digest-preferences SHA512 SHA384 SHA256 SHA224 RIPEMD160 SHA1
|
personal-digest-preferences {4}
|
||||||
personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed
|
personal-compress-preferences {5}
|
||||||
"""
|
""".format(ciphers256, ciphers192, ciphers128, ciphersBad, digests, compress)
|
||||||
|
|
||||||
agentconf = """# gpg-agent.conf settings for key generation:
|
agentconf = """# gpg-agent.conf settings for key generation:
|
||||||
default-cache-ttl 300
|
default-cache-ttl 300
|
||||||
|
Loading…
Reference in New Issue
Block a user