X-Git-Url: https://git.tld-linux.org/?p=TLD.git;a=blobdiff_plain;f=pld-builder.new%2FPLD_Builder%2Fgpg.py;fp=pld-builder.new%2FPLD_Builder%2Fgpg.py;h=0000000000000000000000000000000000000000;hp=5c5dbecfc08853b55023abc74224358d1febb11b;hb=3dc53b6865f716904ad4d02e934e04b3d4855c32;hpb=b235722fd546915a60800f2660d76f684d6f1445 diff --git a/pld-builder.new/PLD_Builder/gpg.py b/pld-builder.new/PLD_Builder/gpg.py deleted file mode 100644 index 5c5dbec..0000000 --- a/pld-builder.new/PLD_Builder/gpg.py +++ /dev/null @@ -1,88 +0,0 @@ -# vi: encoding=utf-8 ts=8 sts=4 sw=4 et - -import log -import subprocess -import re -import StringIO - -import util -import os -import pipeutil - -def get_keys(buf): - """Extract keys from gpg message - - """ - - if not os.path.isfile('/usr/bin/gpg'): - log.error("missing gnupg binary: /usr/bin/gpg") - raise OSError, 'Missing gnupg binary' - - d_stdout = None - d_stderr = None - cmd = ['/usr/bin/gpg', '--batch', '--no-tty', '--decrypt'] - gpg_run = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) - try: - d_stdout, d_stderr = gpg_run.communicate(buf.encode('utf-8')) - except OSError, e: - log.error("gnupg run, does gpg binary exist? : %s" % e) - raise - - rx = re.compile("^gpg: Signature made .*using [DR]SA key ID (.+)") - keys = [] - - for l in d_stderr.split('\n'): - m = rx.match(l) - if m: - keys.append(m.group(1)) - - return keys - -def verify_sig(buf): - """Check signature. - - Given email as file-like object, return (signer-emails, signed-body). - where signer-emails is lists of strings, and signed-body is StringIO - object. - """ - - if not os.path.isfile('/usr/bin/gpg'): - log.error("missing gnupg binary: /usr/bin/gpg") - raise OSError, 'Missing gnupg binary' - - d_stdout = None - d_stderr = None - cmd = ['/usr/bin/gpg', '--batch', '--no-tty', '--decrypt'] - gpg_run = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) - try: - d_stdout, d_stderr = gpg_run.communicate(buf.encode('utf-8')) - except OSError, e: - log.error("gnupg run failed, does gpg binary exist? : %s" % e) - raise - - rx = re.compile("^gpg: (Good signature from| aka) .*<([^>]+)>") - emails = [] - for l in d_stderr.split('\n'): - m = rx.match(l) - if m: - emails.append(m.group(2)) - if not emails: - log.error("gnupg signature check failed: %s" % d_stderr) - return (emails, d_stdout) - -def sign(buf): - if not os.path.isfile('/usr/bin/gpg'): - log.error("missing gnupg binary: /usr/bin/gpg") - raise OSError, 'Missing gnupg binary' - - d_stdout = None - d_stderr = None - cmd = ['/usr/bin/gpg', '--batch', '--no-tty', '--clearsign'] - gpg_run = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) - try: - d_stdout, d_stderr = gpg_run.communicate(buf.encode('utf-8')) - except OSError, e: - log.error("gnupg signing failed, does gpg binary exist? : %s" % e) - raise - - return d_stdout