Ë
    zñ�jó  ã                   óN   — d Z ddlZddlmZ ddlmZ ddlmZ d„ Z G d„ d«      Z	y)	z,
Utility functions for dealing with primes.
é    N)Úutil)Ú	byte_mask)ÚSSHExceptionc                 ó  — t        j                  | dz
  «      }|dz   dz  }t        d|dz  «      dz
  }	 t        j                  |«      }|dkD  rt        |d   |«      |dd z   }t        j                  |d«      }|| k  r	 |S ŒN)z returns a random # from 0 to N-1é   é   é   é   r   N)r   Ú
bit_lengthÚpowÚosÚurandomr   Úinflate_long)ÚnÚbitsÚ
byte_countÚ
hbyte_maskÚxÚnums         úP/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/paramiko/primes.pyÚ_roll_randomr      s‘   € ä�?‰?˜1˜q™5Ó!€DØ˜‘(˜q‘€JÜ�Q˜˜q™Ó! AÑ%€Jð Ü�J‰J�zÓ"ˆØ˜Š>Ü˜!˜A™$ 
Ó+¨a°°¨eÑ3ˆAÜ×Ñ  1Ó%ˆØ�Š7ØØ€Jð ó    c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚModulusPackzx
    convenience object for holding the contents of the /etc/ssh/moduli file,
    on systems that have such a file.
    c                 ó    — i | _         g | _        y )N)ÚpackÚ	discarded)Úselfs    r   Ú__init__zModulusPack.__init__:   s   € àˆŒ	Øˆ�r   c                 óN  — |j                  «       \  }}}}}}}t        |«      }t        |«      }t        |«      }t        |«      }t        |«      }t        |d«      }|dk  s|dk  s|dz  r(|dk  r#|dk  r| j                  j                  |df«       y |dk(  rd}t	        j
                  |«      }	|	|k7  r5|	|dz   k7  r-| j                  j                  |d	j                  |«      f«       y |	| j                  vrg | j                  |	<   | j                  |	   j                  ||f«       y )
Né   r
   é   r	   éd   z does not meet basic requirementsr   r   z"incorrectly reported bit length {})ÚsplitÚintr   Úappendr   r   Úformatr   )
r   ÚlineÚ	timestampÚmod_typeÚtestsÚtriesÚsizeÚ	generatorÚmodulusÚbls
             r   Ú_parse_moduluszModulusPack._parse_modulus?   s/  € ð �J‰J‹Lñ	
ØØØØØØØä�x“=ˆÜ�E“
ˆÜ�E“
ˆÜ�4‹yˆÜ˜	“Nˆ	Ü�g˜rÓ"ˆð �qŠLØ�qŠyØ˜’	˜e aši¨E°CªKà�N‰N×!Ñ!ØÐ<Ð=ôð Ø˜Š>ØˆIô
 �_‰_˜WÓ%ˆØ�$ŠJ˜R 4¨!¡8š^Ø�N‰N×!Ñ!ØÐ>×EÑEÀdÓKÐLôð Ø�T—Y‘YÑØˆD�I‰I�b‰MØ�	‰	�"‰×Ñ˜i¨Ð1Õ2r   c                 óä   — i | _         t        |d«      5 }|D ];  }|j                  «       }t        |«      dk(  s|d   dk(  rŒ*	 | j	                  |«       Œ= 	 ddd«       y#  Y ŒLxY w# 1 sw Y   yxY w)zM
        :raises IOError: passed from any file operations that fail.
        Úrr   ú#N)r   ÚopenÚstripÚlenr1   )r   ÚfilenameÚfr(   s       r   Ú	read_filezModulusPack.read_filem   s€   € ð ˆŒ	Ü�(˜CÓ ð 	 AØò �Ø—z‘z“|�Ü˜“I ’N¨¨Q©°3ªØðØ×'Ñ'¨Õ-ñ÷	ð 	øðÙú÷	ð 	ús#   ”-A&ÁAÁA&ÁA#Á!A&Á&A/c                 óŒ  — t        | j                  j                  «       «      }t        |«      dk(  rt	        d«      ‚d}|D ]  }||k\  sŒ	||k  sŒ||k  s|dk(  sŒ|}Œ |dk(  r|D ]  }||k\  sŒ	||k  sŒ||kD  sŒ|}Œ |dk(  r|d   }||kD  r|d   }t        t        | j                  |   «      «      }| j                  |   |   S )Nr   zno moduli availableéÿÿÿÿ)Úsortedr   Úkeysr7   r   r   )r   ÚminÚpreferÚmaxÚbitsizesÚgoodÚbr   s           r   Úget_moduluszModulusPack.get_modulus|   sß   € Ü˜$Ÿ)™)Ÿ.™.Ó*Ó+ˆÜˆx‹=˜AÒÜÐ4Ó5Ð5Øˆàò 	ˆAØ�V“ ! s£(°°T²¸TÀR»ZØ‘ð	ð �2Š:Øò �Ø˜“H 1¨£8°!°d³(Ø‘Dðð �2Š:ð
 ˜A‘;ˆDØ�TŠzØ ‘|�äœ˜TŸY™Y t™_Ó-Ó.ˆØ�y‰y˜‰˜qÑ!Ð!r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r1   r:   rE   © r   r   r   r   4   s   „ ñò
ò
,3ò\ó"r   r   )
rI   r   Úparamikor   Úparamiko.commonr   Úparamiko.ssh_exceptionr   r   r   rJ   r   r   ú<module>rN      s)   ðñ&ó 
å Ý %Ý /ò÷,`"ò `"r   