ó
    Ö›‘h  ã                   óî   • S r SSKrSSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr  SS	KJr  S
rSr\" S5      (       a  SSKJr  OSrSr\" \S5      (       d  SrSr\" \\5       " S S\5      5       rg)z,
Tests for L{twisted.conch.openssh_compat}.
é    N)ÚskipIf)ÚgetDHGeneratorAndPrime)Úkeydata)ÚFilePath)ÚrequireModule)ÚMockOS)ÚTestCaseFÚ Úcryptography)ÚOpenSSHFactoryTzCannot run without cryptographyÚgeteuidzgeteuid/seteuid not availablec                   óJ   • \ rS rSrSrS
S jrS
S jrS
S jrS
S jrS
S jr	S	r
g)ÚOpenSSHFactoryTestsé   z
Tests for L{OpenSSHFactory}.
Nc                 ó   • [        5       U l        [        U R                  5       5      U l        U R                  R                  5         U R                  R                  U R                  l        [        U R                  5       5      U l        U R                  R                  5         U R                  R                  U R                  l	        U R                  R                  S5      R                  S5        U R                  R                  S5      R                  S5        U R                  R                  S5      R                  [        R                  5        U R                  R                  S5      R                  [        R                  5        U R                  R                  S5      R                  S5        U R                  R                  S5      R                  [        R                  5        U R                  R                  S	5      R                  S
5        [!        5       U l        U R%                  [&        SU R"                  R(                  5        U R%                  [&        SU R"                  R*                  5        g )NÚssh_host_foos   fooÚbar_keyÚssh_host_one_keyÚssh_host_two_keyÚssh_host_three_keys   not a key contentzssh_host_one_key.pubÚmodulis�  
#    $OpenBSD: moduli,v 1.xx 2016/07/26 12:34:56 jhacker Exp $i
# Time Type Tests Tries Size Generator Modulus
20030501000000 2 6 100 2047 2 FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF
ÚseteuidÚsetegid)r   Úfactoryr   ÚmktempÚkeysDirÚmakedirsÚpathÚdataRootÚ	moduliDirÚ
moduliRootÚchildÚ
setContentr   ÚprivateRSA_opensshÚprivateDSA_opensshÚpublicRSA_opensshr   ÚmockosÚpatchÚosr   r   )Úselfs    ÚjC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/conch/test/test_openssh_compat.pyÚsetUpÚOpenSSHFactoryTests.setUp%   s¢  € Ü%Ó'ˆŒÜ §¡£Ó.ˆŒØ�‰×ÑÔØ $§¡× 1Ñ 1ˆ�‰ÔÜ! $§+¡+£-Ó0ˆŒØ�‰×ÑÔ!Ø"&§.¡.×"5Ñ"5ˆ�‰Ôà�‰×Ñ˜>Ó*×5Ñ5°fÔ=Ø�‰×Ñ˜9Ó%×0Ñ0°Ô8Ø�‰×ÑÐ-Ó.×9Ñ9¼'×:TÑ:TÔUØ�‰×ÑÐ-Ó.×9Ñ9¼'×:TÑ:TÔUØ�‰×ÑÐ/Ó0×;Ñ;Ð<PÔQà�‰×ÑÐ1Ó2×=Ñ=¼g×>WÑ>WÔXà�‰×Ñ˜XÓ&×1Ñ1ðô	
ô  “hˆŒØ�
‰
”2�y $§+¡+×"5Ñ"5Ô6Ø�
‰
”2�y $§+¡+×"5Ñ"5Õ6ó    c                 óÆ   • U R                   R                  5       nU R                  [        U5      S5        UR	                  5       nU R                  [        U5      S/5        g)z_
L{OpenSSHFactory.getPublicKeys} should return the available public keys
in the data directory
é   ó   ssh-rsaN)r   ÚgetPublicKeysÚassertEqualÚlenÚkeysÚlist©r*   r5   ÚkeyTypess      r+   Útest_getPublicKeysÚ&OpenSSHFactoryTests.test_getPublicKeysJ   sK   € ð
 �|‰|×)Ñ)Ó+ˆØ×Ñœ˜T› AÔ&Ø—9‘9“;ˆØ×Ñœ˜h›¨*¨Õ6r.   c                 ó`  • U R                   R                  5       nU R                  [        U5      S5        UR	                  5       nU R                  [        U5      SS15        U R                  U R                  R                  / 5        U R                  U R                  R                  / 5        g)zm
Will return the available private keys in the data directory, ignoring
key files which failed to be loaded.
é   r1   ó   ssh-dssN)	r   ÚgetPrivateKeysr3   r4   r5   Úsetr'   ÚseteuidCallsÚsetegidCallsr7   s      r+   Útest_getPrivateKeysÚ'OpenSSHFactoryTests.test_getPrivateKeysT   s‚   € ð
 �|‰|×*Ñ*Ó,ˆØ×Ñœ˜T› AÔ&Ø—9‘9“;ˆØ×Ñœ˜X›¨°ZÐ(@ÔAØ×Ñ˜Ÿ™×1Ñ1°2Ô6Ø×Ñ˜Ÿ™×1Ñ1°2Õ6r.   c                 ó¸  ^^• U R                   R                  S5      mTR                  S5        U R                  TR                  S5        [        R
                  mS[        SS4UU4S jjnU R                  [        SU5        U R                  R                  5       nU R                  [        U5      S	5        UR                  5       nU R                  [        U5      S
S15        U R                  U R                  R                  S[        R                   " 5       /5        U R                  U R                  R"                  S[        R$                  " 5       /5        g)zi
L{OpenSSHFactory.getPrivateKeys} should switch to root if the keys
aren't readable by the current user.
r   r   éÿ  ÚeuidÚreturnNc                 ó6   >• TR                  S5        T" U 5      $ )NrE   )Úchmod)rF   ÚkeyFileÚsavedSeteuids    €€r+   r   Ú>OpenSSHFactoryTests.test_getPrivateKeysAsRoot.<locals>.seteuidl   s   ø€ Ø�M‰M˜%Ô Ù Ó%Ð%r.   r   r<   r1   r=   )r   r"   rI   Ú
addCleanupr)   r   Úintr(   r   r>   r3   r4   r5   r?   r'   r@   r   rA   Úgetegid)r*   r   r5   r8   rJ   rK   s       @@r+   Útest_getPrivateKeysAsRootÚ-OpenSSHFactoryTests.test_getPrivateKeysAsRoot`   sÿ   ù€ ð
 —,‘,×$Ñ$Ð%7Ó8ˆà�‰�dÔØ�‰˜Ÿ™ uÔ-ä—z‘zˆð	&œ#ð 	& $÷ 	&ð 	&ð 	�
‰
”2�y 'Ô*Ø�|‰|×*Ñ*Ó,ˆØ×Ñœ˜T› AÔ&Ø—9‘9“;ˆØ×Ñœ˜X›¨°ZÐ(@ÔAØ×Ñ˜Ÿ™×1Ñ1°A´r·z²z³|Ð3DÔEØ×Ñ˜Ÿ™×1Ñ1°A´r·z²z³|Ð3DÕEr.   c                 ót   • U R                   R                  5       nU R                  US[        S5      /05        g)zY
L{OpenSSHFactory.getPrimes} should return the available primes
in the moduli directory.
i   s   diffie-hellman-group14-sha1N)r   Ú	getPrimesr3   r   )r*   Úprimess     r+   Útest_getPrimesÚ"OpenSSHFactoryTests.test_getPrimesx   s;   € ð
 —‘×'Ñ'Ó)ˆØ×ÑØàÔ-Ð.LÓMÐNðõ	
r.   )r   r   r'   r    )rG   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r,   r9   rB   rP   rU   Ú__static_attributes__© r.   r+   r   r      s"   † ñô#7ôJ7ô
7ôF÷0
r.   r   )r[   r)   Úunittestr   Útwisted.conch.ssh._kexr   Útwisted.conch.testr   Útwisted.python.filepathr   Útwisted.python.reflectr   Útwisted.test.test_processr   Útwisted.trial.unittestr	   ÚdoSkipÚ
skipReasonÚ$twisted.conch.openssh_compat.factoryr   Úhasattrr   r]   r.   r+   Ú<module>ri      s‚   ðñó 
Ý å 9Ý &Ý ,Ý 0Ý ,Ý +à	€Ø€
Ù�× Ñ ÞCà€FØ2€Jáˆr�9×ÑØ€FØ0€Jñ ˆ�
Óôc
˜(ó c
ó ñc
r.   