HOME


Mini Shell 1.0
DIR: /lib/python3/dist-packages/landscape/lib/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/landscape/lib/__pycache__/gpg.cpython-312.pyc
�

�~�e���R�ddlZddlZddlZddlmZddlmZGd�de�Zdd�Zy)�N)�glob)�getProcessOutputAndValuec��eZdZdZy)�InvalidGPGSignaturez:Raised when the gpg signature for a given file is invalid.N)�__name__�
__module__�__qualname__�__doc__���3/usr/lib/python3/dist-packages/landscape/lib/gpg.pyrr	s��Drrc�l��
��
fd�}�fd�}tj��
ttjtt
|�d��t
|�d��z�D�cgc]}d|f��c}��}dd�
dd	f|zd
||fz}t�|��}	|	j|�|	j|�|	Scc}w)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.
    c�2��tj��|S)N)�shutil�rmtree)�ignored�gpg_homes �r
�remove_gpg_homez#gpg_verify.<locals>.remove_gpg_homes����
�
�h���rc
���|\}}}|jd�|jd�}}|dk7rt��d|�d|�d|d�d���y)N�asciirz failed (out='z', err='z	', code='�dz'))�decoder)�args�out�err�code�gpgs    �r
�check_gpg_exit_codez'gpg_verify.<locals>.check_gpg_exit_codesb������S�$��:�:�g�&��
�
�7�(;�S���1�9�%��%�~�c�U�(�3�%�y��a���K��
�rz/trusted.gpgz/trusted.gpg.d/*.gpgz	--keyringz--no-optionsz	--homedirz--no-default-keyringz--ignore-time-conflictz--verify)r)
�tempfile�mkdtemp�tuple�	itertools�chain�sortedrr�addBoth�addCallback)�filename�	signaturer�apt_dirrr�keyring�keyringsr�resultrs  `       @r
�
gpg_verifyr-
s���������!�H����� &��G�9�L�1�2��g�Y�&:�;�<�=� ����g�&��	
�
�H�
���"�$�	
��	��y�(�
+�	,�	�&�c��
5�F�
�N�N�?�#�
���*�+��M��1s�B1)z/usr/bin/gpgz/etc/apt)	r"rrr�twisted.internet.utilsr�	Exceptionrr-rrr
�<module>r0s'���
���;�E�)�E�4r