
    fy                     ,    d dl mZ d Z G d de      Zy)    )	cryptutilc                 ,   t        |       t        |      k7  rt        d      t        | t              r| j	                  d      } t        |t              r|j	                  d      }t        t        | |      D cg c]
  \  }}||z   c}}      S c c}}w )Nz*Inputs to strxor must have the same lengthzutf-8)len
ValueError
isinstancestrencodebyteszip)xyabs       D/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/openid/dh.pystrxorr      su    
1vQEFF!SHHW!SHHWC1I.DAq!a%.//.s   9B
c                   H    e Zd ZdZdZd Z ee      Zd Zd Zd Z	d Z
d Zy	)
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    3??COO44    c                     t        |      | _        t        |      | _        | j                  t	        j
                  d|dz
               y )N   )intmodulus	generator_setPrivater   	randrange)selfr   r    s      r   __init__zDiffieHellman.__init__   s7    7|Y,,Q!<=r   c                 r    || _         t        | j                  | j                   | j                        | _        y)z#This is here to make testing easierN)privatepowr    r   public)r#   r&   s     r   r!   zDiffieHellman._setPrivate    s%    $..$,,Er   c                 j    | j                   | j                  k(  xr | j                  | j                  k(  S r   )r   r   r    r   )r#   s    r   usingDefaultValuesz DiffieHellman.usingDefaultValues%   s0     0 00 3$"2"22	4r   c                 D    t        || j                  | j                        S r   )r'   r&   r   )r#   	composites     r   getSharedSecretzDiffieHellman.getSharedSecret)   s    9dllDLL99r   c                 r    | j                  |      } |t        j                  |            }t        ||      S r   )r-   r   longToBinaryr   )r#   r,   secret	hash_func	dh_sharedhashed_dh_shareds         r   	xorSecretzDiffieHellman.xorSecret,   s6    ((3	$Y%;%;I%FGf.//r   N)__name__
__module____qualname__r   r   r   classmethodr$   r!   r*   r-   r4    r   r   r   r      s:     HKK5 |,L>F
4:0r   r   N)openidr   r   objectr   r9   r   r   <module>r<      s    	00F 0r   