HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/landscape/lib/__pycache__/gpg.cpython-310.pyc
o

�1Db�@sNddlZddlZddlZddlmZddlmZGdd�de�Zd
dd	�ZdS)�N)�glob)�getProcessOutputAndValuec@seZdZdZdS)�InvalidGPGSignaturez:Raised when the gpg signature for a given file is invalid.N)�__name__�
__module__�__qualname__�__doc__�r	r	�3/usr/lib/python3/dist-packages/landscape/lib/gpg.pyr
sr�/usr/bin/gpg�/etc/aptc		s��fdd�}�fdd�}t���ttjdd�ttd�|��td�|���D���}d	d
�ddf|d
||f}t�|d�}|�	|�|�
|�|S)a�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.
    @param apt_dir: Optionally, path to apt trusted keyring.
    @return: a C{Deferred} resulting in C{True} if the signature is
             valid, C{False} otherwise.
        cst���|S)N)�shutil�rmtree)�ignored)�gpg_homer	r
�remove_gpg_homes
z#gpg_verify.<locals>.remove_gpg_homecs@|\}}}|�d�|�d�}}|dkrtd�|||f��dS)N�asciirz)%s failed (out='%s', err='%s', code='%d'))�decoder)�args�out�err�code)�gpgr	r
�check_gpg_exit_codes

��z'gpg_verify.<locals>.check_gpg_exit_codecSsg|]}d|f�qS)z	--keyringr	)�.0�keyringr	r	r
�
<listcomp>'s��zgpg_verify.<locals>.<listcomp>z{}/trusted.gpgz{}/trusted.gpg.d/*.gpgz--no-optionsz	--homedirz--no-default-keyringz--ignore-time-conflictz--verify)r)�tempfile�mkdtemp�tuple�	itertools�chain�sortedr�formatr�addBoth�addCallback)	�filename�	signaturer�apt_dirrr�keyringsr�resultr	)rrr
�
gpg_verifys*	��
����

r+)rr)	r r
rr�twisted.internet.utilsr�	Exceptionrr+r	r	r	r
�<module>s