Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /usr/lib/python2.7/dist-packages/landscape/lib/ |
Upload File : |
import shutil import tempfile from twisted.internet.utils import getProcessOutputAndValue class InvalidGPGSignature(Exception): """Raised when the gpg signature for a given file is invalid.""" def gpg_verify(filename, signature, gpg="/usr/bin/gpg"): """Verify the GPG signature of a file. @param filename: Path to the file to verify the signature against. @param signature: Path to signature to use. @param gpg: Optionally, path to the GPG binary to use. @return: a C{Deferred} resulting in C{True} if the signature is valid, C{False} otherwise. """ def remove_gpg_home(ignored): shutil.rmtree(gpg_home) return ignored def check_gpg_exit_code((out, err, code)): if code != 0: raise InvalidGPGSignature("%s failed (out='%s', err='%s', " "code='%d')" % (gpg, out, err, code)) gpg_home = tempfile.mkdtemp() args = ("--no-options", "--homedir", gpg_home, "--no-default-keyring", "--ignore-time-conflict", "--keyring", "/etc/apt/trusted.gpg", "--verify", signature, filename) result = getProcessOutputAndValue(gpg, args=args) result.addBoth(remove_gpg_home) result.addCallback(check_gpg_exit_code) return result