+
    8i@                      a  0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIH	t	H
t
 ^ RIHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHtHtHt ^ RIHtHt ^ R	IH t  ^ R
I!H"t" ^ RI#H$t$H%t% ^ RI&H't' ]'       d   ^ RI(H)t) ^ RI*H+t+ Rt,Rt- ^ RI.t/]0! ]1! ]2]/Pf                  Pi                  R4      R,          4      4      R:8  d   Rt-Rt6R R lt7R R lt8R R lt9R R lt:R R lt;R R lt<R R  lt=R! R" lt>R#];R$]=R%]"R&]$R']<R(]P~                  ! ]7R(R)7      R*]P~                  ! ]7R*R)7      R+]>/t@R,]AR-&    ! R. R/4      tB ! R0 R1]B4      tC ! R2 R3]B4      tD ! R4 R5]B4      tER$]DR(]P~                  ! ]CR(R)7      R*]P~                  ! ]CR*R)7      R&]ER+]P~                  ! ]CR*R)7      /tFR6]AR7&   R;R8 R9 lltGR#   ]5 d     ^ RI/t/ L  ]5 d    Rt,  ELi ; ii ; i)<zAuthentication helpers.)annotationsN)standard_b64decodestandard_b64encode)TYPE_CHECKINGAnyCallableMappingMutableMappingOptionalcast)quote)Binary)MongoCredential_authenticate_scram_start_parse_scram_response_xor)ConfigurationErrorOperationFailure)saslprep)_authenticate_aws)_authenticate_oidc_get_authenticator)_getaddrinfo)Hello)
ConnectionTF.:N   Nc               (    V ^8  d   QhRRRRRRRR/# )	r   credentialsr   connr   	mechanismstrreturnNone )formats   "V/var/www/html/photoedit/myenv/lib/python3.14/site-packages/pymongo/synchronous/auth.py__annotate__r'   G   s6     PL PL_ PLJ PLSV PL[_ PL    c                <   V P                   pVR8X  d8   Rp\        P                  p\        V P                  4      P                  R4      pM6Rp\        P                  p\        W0P                  4      P                  R4      pV P                  pV P                  p\        P                  p	VP                  p
V
'       dZ   V
P                  4       '       dD   \        V
\        4      '       g   Q hV
P                   f   Q hV
P                   w  rV
P"                  pM\%        W4      w  rpVP'                  W~4      pVf   Q hVR,          p\)        V4      p\+        VR,          4      pVR8  d   \-        R	4      hVR
,          pVR,          pVP/                  V4      '       g   \-        R4      hRV,           pVP0                  '       d   VP0                  w  ppppMRw  ppppV'       d   VV8w  g   VV8w  d]   \        P2                  ! WF\5        V4      V4      pV	! VRV4      P7                  4       pV	! VRV4      P7                  4       pVVVV3Vn        V! V4      P7                  4       pRP9                  WV34      pV	! VVV4      P7                  4       pR\;        \=        VV4      4      ,           pRP9                  VV34      p\;        V	! VVV4      P7                  4       4      pR^RVR,          R\?        V4      /pVP'                  W~4      p\)        VR,          4      p\        P@                  ! VR,          V4      '       g   \-        R4      hVR,          '       gF   R^RVR,          R\?        R4      /pVP'                  W~4      pVR,          '       g   \-        R4      hR# R# )zAuthenticate using SCRAM.SCRAM-SHA-256sha256utf-8sha1Npayload   ii   z+Server returned an invalid iteration count.   s   rz!Server returned an invalid nonce.s	   c=biws,r=s
   Client Keys
   Server Key   ,s   p=saslContinueconversationId   vz%Server returned an invalid signature.doner(   z%SASL conversation failed to complete.)NNNN)!usernamehashlibr+   r   passwordencoder-   _password_digestsourcecachehmacHMACauth_ctxspeculate_succeeded
isinstance_ScramContext
scram_dataspeculative_authenticater   commandr   intr   
startswithdatapbkdf2_hmacr   digestjoinr   r   r   compare_digest) r   r   r    r7   rK   	digestmodrI   r<   r=   _hmacctxnonce
first_barerescmdserver_firstparsed
iterationssaltrnoncewithout_proof
client_key
server_keycsaltciterationssalted_pass
stored_keyauth_msg
client_sigclient_proofclient_final
server_sigs    &&&                             r&   _authenticate_scramrf   G   sF   ##HO#NN	,,-44W=LL	*>*>?FFwOFE IIE
--C
s&&((#}----~~)))NN**!:;!R3ll6'??y>L"<0FVD\"JDLMM$<DD\FU##BCC 6)Mzzz5:ZZ2
J{5K2
J{ **C))&8J48PR\];yAHHJ
;yAHHJ
 *dJ?
:&--/Jyy*MBCHz8Y7>>@J-d:z.JKKL99m\:;L#E*h	$J$Q$Q$STJ 	#./6,'C
 ,,v
#C"3y>2Fvd|Z88FGG v;;Ac"23vc{

 ll6'6{{"#JKK  r(   c               $    V ^8  d   QhRRRRRR/# )r   r7   r!   r9   r"   r$   )r%   s   "r&   r'   r'      s!      s c c r(   c                l   \        V\        4      '       g   \        R4      h\        V4      ^ 8X  d   \	        R4      h\        V \        4      '       g   \        R\        V 4       24      h\        P                  ! 4       pV  RV 2pVP                  VP                  R4      4       VP                  4       # )z0Get a password digest to use for authentication.z#password must be an instance of strzpassword can't be emptyz)username must be an instance of str, not z:mongo:r,   )rB   r!   	TypeErrorlen
ValueErrortyper8   md5updater:   	hexdigest)r7   r9   md5hashrI   s   &&  r&   r;   r;      s    h$$=>>
8}233h$$CDNCSTUUkkmGZwxj)DNN4;;w'(r(   c               (    V ^8  d   QhRRRRRRRR/# )r   rQ   r!   r7   r9   r"   r$   )r%   s   "r&   r'   r'      s(      S C 3 3 r(   c                    \        W4      p\        P                  ! 4       pV  V V 2pVP                  VP	                  R4      4       VP                  4       # )z*Get an auth key to use for authentication.r,   )r;   r8   rm   rn   r:   ro   )rQ   r7   r9   rK   rp   rI   s   &&&   r&   	_auth_keyrs      sM    h1FkkmGWXJvh'DNN4;;w'(r(   c               $    V ^8  d   QhRRRRRR/# )r   hostnamer!   optionz
str | boolr"   r$   )r%   s   "r&   r'   r'      s!      S *  r(   c           	        VR9   d   V # \        V R^ ^ \        P                  \        P                  R7      ^ ,          w  r#rEpVR8X  d   VP	                  4       #  \        P
                  ! V\        P                  4      pT^ ,          P	                  4       #   \        P                   d    TP	                  4       u # i ; i)z2Canonicalize hostname following MIT-krb5 behavior.N)familyrl   protoflagsforward)Fnone)r   socketIPPROTO_TCPAI_CANONNAMElowergetnameinfoNI_NAMEREQDgaierror)ru   rv   afsocktypery   	canonnamesockaddrnames   &&      r&   _canonicalize_hostnamer      s       	$$%%	
 	0	,B%H   !!!(F,>,>? 7==? ?? !  !s   %B %B>=B>c               $    V ^8  d   QhRRRRRR/# r   r   r   r   r   r"   r#   r$   )r%   s   "r&   r'   r'      s&     k3 k3o k3Z k3D k3r(   c                   \         '       g   \        R4      h V P                  pV P                  pV P                  pVP
                  ;'       g    VP                  ^ ,          p\        WTP                  4      pVP                  R,           V,           pVP                  e   VR,           VP                  ,           pVe   \        '       dO   RP                  \        V4      \        V4      34      p\        P                  ! Wg\        P                   R7      w  rMsRV9   d   VP#                  R^4      w  rMTRr\        P                  ! V\        P                   V
VVR7      w  rM(\        P                  ! V\        P                   R7      w  rV\        P$                  8w  d   \'        R4      h \        P(                  ! V	R4      ^ 8w  d   \'        R	4      h\        P*                  ! V	4      pR
^RRRVR^/pVP-                  RV4      p\/        ^
4       F  p\        P(                  ! V	\1        VR,          4      4      pVR8X  d   \'        R	4      h\        P*                  ! V	4      ;'       g    RpR^RVR,          RV/pVP-                  RV4      pV\        P$                  8X  g   K   M	  \'        R4      h\        P2                  ! V	\1        VR,          4      4      ^8w  d   \'        R4      h\        P4                  ! V	\        P*                  ! V	4      V4      ^8w  d   \'        R4      h\        P*                  ! V	4      pR^RVR,          RV/pVP-                  RV4       \        P6                  ! V	4       R#   \        P6                  ! T	4       i ; i  \        P8                   d   p\'        \1        T4      4      RhRp?ii ; i)zAuthenticate using GSSAPI.zEThe "kerberos" module must be installed to use GSSAPI authentication.@N:)gssflags)r   userdomainr9   z&Kerberos context failed to initialize. z*Unknown kerberos failure in step function.	saslStartr    GSSAPIr.   autoAuthorize	$externalr3   r4   z+Kerberos authentication failed to complete.z0Unknown kerberos failure during GSS_Unwrap step.z.Unknown kerberos failure during GSS_Wrap step.)HAVE_KERBEROSr   r7   r9   mechanism_propertiesservice_hostaddressr   canonicalize_host_nameservice_nameservice_realm_USE_PRINCIPALrL   r   kerberosauthGSSClientInitGSS_C_MUTUAL_FLAGsplitAUTH_GSS_COMPLETEr   authGSSClientStepauthGSSClientResponserF   ranger!   authGSSClientUnwrapauthGSSClientWrapauthGSSClientCleanKrbError)r   r   r7   r9   propshostservice	principalresultrP   r   r   r.   rT   response_excs   &&               r&   _authenticate_gssapir      sU   = S
 	
d3''''00 !!44T\\!_%d,H,HI$$s*T1*me&9&99G~  HHeHouX%GH	&881K1K (?#+>>#q#9LD&#+T&&88%77!% #44WxGaGabKFX///"#KLL:	-
 ))#r2a7&'STT 44S9GQX7	C ||K5H 2Y!33CXi=P9QRR<*+WXX"88=CC #A$h/?&@w
  <<S9X777 " ''TUU ++CXi5H1IJaO&'YZZ))#x/M/Mc/RT\]abb&'WXX44S9G (+;"<7C
 LLc* '',H'', 3s3x(d23sK   6N A:N C!N -B<M6 *6M6 %B9M6 N 6NN O &N;;O c               $    V ^8  d   QhRRRRRR/# r   r$   )r%   s   "r&   r'   r'   =  s!      _ J 4 r(   c                    V P                   pV P                  pV P                  pRV RV 2P                  4       pR^RRR\	        V4      R^/pVP                  W&4       R# )z(Authenticate using SASL PLAIN (RFC 4616) r   r    PLAINr.   r   N)r<   r7   r9   r:   r   rF   )r   r   r<   r7   r9   r.   rT   s   &&     r&   _authenticate_plainr   =  sk    F##H##HhZtH:.668GQW6'?	C 	LLr(   c               $    V ^8  d   QhRRRRRR/# r   r$   )r%   s   "r&   r'   r'   L  s!     # #O #: #$ #r(   c                    VP                   pV'       d   VP                  4       '       d   R# \        WP                  4      P	                  4       pVP                  RV4       R# )z Authenticate using MONGODB-X509.Nr   )r@   rA   _X509Contextr   speculate_commandrF   )r   r   rP   rT   s   &&  r&   _authenticate_x509r   L  sD    
--C
s&&((
{LL
1
C
C
ECLLc"r(   c               $    V ^8  d   QhRRRRRR/# r   r$   )r%   s   "r&   r'   r'   W  s&     E E Ej ET Er(   c                p   VP                   ^8  d   VP                  '       d   VP                  pM\V P                  pVP                  4       pVR,           V P                  ,           VR&   VP                  W4RR7      P                  R. 4      pRV9   d   \        WR4      # \        WR4      # \        WR4      # )   r   saslSupportedMechsF)publish_eventsr*   SCRAM-SHA-1)max_wire_versionnegotiated_mechsr<   	hello_cmdr7   rF   getrf   )r   r   mechsr<   rT   s   &&   r&   _authenticate_defaultr   W  s    !   ))E ''F.."C(.{7K7K(KC$%\\&e\DIIJ^`bcEe#&{/JJ&{-HH";mDDr(   r   MONGODB-X509zMONGODB-AWSMONGODB-OIDCr   r   )r    r*   DEFAULTz!Mapping[str, Callable[..., None]]	_AUTH_MAPc                  \    ] tR tRtR R lt]R R l4       tR R ltR R	 ltR
 R lt	Rt
R# )_AuthContextit  c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   tuple[str, int]r"   r#   r$   )r%   s   "r&   r'   _AuthContext.__annotate__u  s"      O o RV r(   c                	,    Wn         R V n        W n        R # N)r   rE   r   )selfr   r   s   &&&r&   __init___AuthContext.__init__u  s    &EI%r(   c               $    V ^8  d   QhRRRRRR/# )r   credsr   r   r   r"   zOptional[_AuthContext]r$   )r%   s   "r&   r'   r   {  s$      )8	r(   c                	    \         P                  V P                  4      pV'       d   \        \        V! W4      4      # R # r   )_SPECULATIVE_AUTH_MAPr   r    r   r   )r   r   spec_clss   && r&   from_credentials_AuthContext.from_credentialsz  s0     ),,U__=hu&>??r(   c                   V ^8  d   QhRR/# r   r"   z"Optional[MutableMapping[str, Any]]r$   )r%   s   "r&   r'   r     s     " "#E "r(   c                	    \         hr   )NotImplementedErrorr   s   &r&   r   _AuthContext.speculate_command  s    !!r(   c                    V ^8  d   QhRRRR/# )r   hellozHello[Mapping[str, Any]]r"   r#   r$   )r%   s   "r&   r'   r     s     G G$< G Gr(   c                	(    VP                   V n         R # r   )rE   )r   r   s   &&r&   parse_response_AuthContext.parse_response  s    (-(F(F%r(   c                   V ^8  d   QhRR/# )r   r"   boolr$   )r%   s   "r&   r'   r     s     3 3T 3r(   c                	,    \        V P                  4      # r   )r   rE   r   s   &r&   rA    _AuthContext.speculate_succeeded  s    D1122r(   )r   r   rE   N)__name__
__module____qualname____firstlineno__r   staticmethodr   r   r   rA   __static_attributes__r$   r(   r&   r   r   t  s0    
  "G3 3r(   r   c                  :   a  ] tR tRtR V 3R lltR R ltRtV ;t# )rC   i  c               (    V ^8  d   QhRRRRRRRR/# )	r   r   r   r   r   r    r!   r"   r#   r$   )r%   s   "r&   r'   _ScramContext.__annotate__  s,     # #*#5D#QT#	#r(   c                	@   < \         SV `  W4       R V n        W0n        R # r   )superr   rD   r    )r   r   r   r    	__class__s   &&&&r&   r   _ScramContext.__init__  s     	.9="r(   c                   V ^8  d   QhRR/# r   r$   )r%   s   "r&   r'   r           #E r(   c                	    \        V P                  V P                  4      w  rpV P                  P                  VR &   W3V n        V# )db)r   r   r    r<   rD   )r   rQ   rR   rT   s   &   r&   r   _ScramContext.speculate_command  sA    !:4;K;KT^^!\3$$++D	 -
r(   )r    rD   )r   r   r   r   r   r   r   __classcell__)r   s   @r&   rC   rC     s    # # r(   rC   c                  "    ] tR tRtR R ltRtR# )r   i  c                   V ^8  d   QhRR/# )r   r"   zMutableMapping[str, Any]r$   )r%   s   "r&   r'   _X509Context.__annotate__  s      #; r(   c                	t    R ^RR/pV P                   P                  e   V P                   P                  VR&   V# )authenticater    r   r   )r   r7   )r   rT   s   & r&   r   _X509Context.speculate_command  s<    q+~>$$0**33CK
r(   r$   Nr   r   r   r   r   r   r$   r(   r&   r   r     s     r(   r   c                  "    ] tR tRtR R ltRtR# )_OIDCContexti  c                   V ^8  d   QhRR/# r   r$   )r%   s   "r&   r'   _OIDCContext.__annotate__  r   r(   c                	    \        V P                  V P                  4      pVP                  4       pVf   R # V P                  P                  VR&   V# )Nr   )r   r   r   get_spec_auth_cmdr<   )r   authenticatorrT   s   &  r&   r   _OIDCContext.speculate_command  sH    *4+;+;T\\J--/;$$++D	
r(   r$   Nr  r$   r(   r&   r
  r
    s     r(   r
  zMapping[str, Any]r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r   r   r   r   reauthenticater   r"   r#   r$   )r%   s   "r&   r'   r'     s,     	% 	% 	%(2	%DH	%		%r(   c                r    V P                   p\        V,          pVR8X  d   \        WV4       R# V! W4       R# )zAuthenticate connection.r   N)r    r   r   )r   r   r  r    	auth_funcs   &&&  r&   r  r    s3     %%I)$IN";n=+$r(   )       )F)H__conditional_annotations____doc__
__future__r   	functoolsr8   r>   r}   base64r   r   typingr   r   r   r   r	   r
   r   urllib.parser   bson.binaryr   pymongo.auth_sharedr   r   r   r   pymongo.errorsr   r   pymongo.saslprepr   pymongo.synchronous.auth_awsr   pymongo.synchronous.auth_oidcr   r   pymongo.synchronous.helpersr   pymongo.hellor   pymongo.synchronous.poolr   r   r   winkerberosr   tuplemaprG   __version__r   ImportError_IS_SYNCrf   r;   rs   r   r   r   r   r   partialr   __annotations__r   rC   r   r
  r   r  )r  s   @r&   <module>r/     s    "     9      @ % : 5#3	"Sh**005b9:;vE PLf:k3\#E$ "&$& 9$$%8MRY&&':oV$	0	, 	3 32L "< <  L9$$]mLY&&}PLy  /J, ( 	% 	%y   s*   
:F- -G5F;;	G	GG		G