
    )Jfy                     4    d dl mZ d Z G d de          ZdS )    )	cryptutilc                 V   t          |           t          |          k    rt          d          t          | t                    r|                     d          } t          |t                    r|                    d          }t          d t          | |          D                       S )Nz*Inputs to strxor must have the same lengthzutf-8c                     g | ]
\  }}||z  S  r   ).0abs      L/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/openid/dh.py
<listcomp>zstrxor.<locals>.<listcomp>   s     ...DAq!a%...    )len
ValueError
isinstancestrencodebyteszip)xys     r
   strxorr      s    
1vvQEFFF!S HHW!S HHW..C1II...///r   c                   P    e Zd ZdZdZd Z ee          Zd Zd Zd Z	d Z
d Zd	S )
DiffieHellmanlE   EKx[/B.>" \6yRW4fG9OQRQ FoH(:.7qBrrBz]A&m0GliXl|'\8$f	O\h]0ncn]8btp,X&frr.hg    c                 .     | | j         | j                  S N)DEFAULT_MODDEFAULT_GEN)clss    r
   fromDefaultszDiffieHellman.fromDefaults   s    s3?CO444r   c                     t          |          | _        t          |          | _        |                     t	          j        d|dz
                       d S )N   )intmodulus	generator_setPrivater   	randrange)selfr#   r$   s      r
   __init__zDiffieHellman.__init__   sG    7||Y,Q!<<=====r   c                 ^    || _         t          | j        | j         | j                  | _        dS )z#This is here to make testing easierN)privatepowr$   r#   public)r'   r*   s     r
   r%   zDiffieHellman._setPrivate    s&    $.$,EEr   c                 B    | j         | j        k    o| j        | j        k    S r   )r#   r   r$   r   )r'   s    r
   usingDefaultValuesz DiffieHellman.usingDefaultValues%   s&     00 3$"22	4r   c                 8    t          || j        | j                  S r   )r+   r*   r#   )r'   	composites     r
   getSharedSecretzDiffieHellman.getSharedSecret)   s    9dlDL999r   c                     |                      |          } |t          j        |                    }t          ||          S r   )r1   r   longToBinaryr   )r'   r0   secret	hash_func	dh_sharedhashed_dh_shareds         r
   	xorSecretzDiffieHellman.xorSecret,   sA    ((33	$9Y%;I%F%FGGf.///r   N)__name__
__module____qualname__r   r   r   classmethodr(   r%   r.   r1   r8   r   r   r
   r   r      s         HKK5 5 5 ;|,,L> > >F F F
4 4 4: : :0 0 0 0 0r   r   N)openidr   r   objectr   r   r   r
   <module>r?      sZ         	0 	0 	00 0 0 0 0F 0 0 0 0 0r   