HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/twisted/conch/test/__pycache__/test_openssh_compat.cpython-38.pyc
U


W[�@s�dZddlZddlmZddlmZddlmZed�rNed�rNddlm	Z	ndZ	dd	l
mZdd
lm
Z
ddlmZGdd
�d
e�ZdS)z,
Tests for L{twisted.conch.openssh_compat}.
�N)�TestCase)�FilePath)�
requireModuleZcryptographyZpyasn1)�OpenSSHFactory)�getDHGeneratorAndPrime)�keydata)�MockOSc@sZeZdZdZeedd�dkr"dZnedkr.dZdd�Zdd	�Z	d
d�Z
dd
�Zdd�ZdS)�OpenSSHFactoryTestsz&
    Tests for L{OpenSSHFactory}.
    �geteuidNzgeteuid/seteuid not availablez)Cannot run without cryptography or PyASN1cCst�|_t|���|_|j��|jj|j_t|���|_|j��|jj|j_	|j�
d��d�|j�
d��d�|j�
d��tj
�|j�
d��tj�|j�
d��d�|j�
d��tj�|j�
d	��d
�t�|_|�td|jj�|�td|jj�dS)
NZssh_host_foosfooZbar_keyZssh_host_one_key�ssh_host_two_keyZssh_host_three_keysnot a key contentzssh_host_one_key.pubZmodulis�
#    $OpenBSD: moduli,v 1.xx 2016/07/26 12:34:56 jhacker Exp $
# Time Type Tests Tries Size Generator Modulus
20030501000000 2 6 100 2047 2 FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF

�seteuid�setegid)r�factoryrZmktemp�keysDir�makedirs�pathZdataRootZ	moduliDirZ
moduliRoot�childZ
setContentrZprivateRSA_opensshZprivateDSA_opensshZpublicRSA_opensshr�mockos�patch�osrr
)�self�r�H/usr/lib/python3/dist-packages/twisted/conch/test/test_openssh_compat.py�setUp"s2

����zOpenSSHFactoryTests.setUpcCs8|j��}|�t|�d�|��}|�t|�dg�dS)zw
        L{OpenSSHFactory.getPublicKeys} should return the available public keys
        in the data directory
        ��ssh-rsaN)rZ
getPublicKeys�assertEqual�len�keys�list�rr�keyTypesrrr�test_getPublicKeysCs
z&OpenSSHFactoryTests.test_getPublicKeyscCs^|j��}|�t|�d�|��}|�t|�tddg��|�|jjg�|�|jjg�dS)z�
        Will return the available private keys in the data directory, ignoring
        key files which failed to be loaded.
        �r�ssh-dssN)	r�getPrivateKeysrrr�setr�seteuidCalls�setegidCallsr rrr�test_getPrivateKeysNs
z'OpenSSHFactoryTests.test_getPrivateKeyscs�|j�d����d�|��jd�tj���fdd�}|�td|�|j��}|�	t
|�d�|��}|�	t|�tdd	g��|�	|j
jdt��g�|�	|j
jdt��g�d
S)z�
        L{OpenSSHFactory.getPrivateKeys} should switch to root if the keys
        aren't readable by the current user.
        rr�cs��d��|�S)Nr*)�chmod)Zeuid�ZkeyFileZsavedSeteuidrrrfs
z>OpenSSHFactoryTests.test_getPrivateKeysAsRoot.<locals>.seteuidrr#rr$N)rrr+Z
addCleanuprrrrr%rrrr&rr'r
r(�getegid)rrrr!rr,r�test_getPrivateKeysAsRoot[s

z-OpenSSHFactoryTests.test_getPrivateKeysAsRootcCs$|j��}|�|dtd�gi�dS)zq
        L{OpenSSHFactory.getPrimes} should return the available primes
        in the moduli directory.
        isdiffie-hellman-group14-sha1N)rZ	getPrimesrr)rZprimesrrr�test_getPrimesrs

�z"OpenSSHFactoryTests.test_getPrimes)
�__name__�
__module__�__qualname__�__doc__�getattrr�skiprrr"r)r.r/rrrrr	s!
r	)r3rZtwisted.trial.unittestrZtwisted.python.filepathrZtwisted.python.reflectrZ$twisted.conch.openssh_compat.factoryrZtwisted.conch.ssh._kexrZtwisted.conch.testrZtwisted.test.test_processrr	rrrr�<module>s