+
    4O|jF  ã                  óÜ  € R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
HtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt  ^ RI!H"t# ^ RI$H%t& ^ RI'H(t) ^ RI*H+t, ^ RI*H-t. ^ RI/H0t1 ^ RI/H2t3 ^ RI4H5t6 ^ RI4H7t8 ^ RI4H9t: ^ RI4H;t< ^ RI4H=t> ^ RI?H@tA ^ RI?HBtC ^ RI?HDtE ^ RI?HFtG ^ RIHHItJ ^ RIHHKtL ^ RIMHNtO ^ RIPHQtR ^ R ISHTtT ^ R!IUHVtVHWtW ]'       dŸ   ^ R"IXHYtYHZtZH[t[H\t\H]t]H^t^H_t_ ^ R#I`Hata ^ R$I*Hbtb ^ R%I4HctcHdtd ^ R&IeHftfHgtg ^ R'I?HhthHiti ^ R(IjHktk ^ R)IUHltl ^ R*ImHntn ]]YP.                  ]]PD                  ]ZP8                  ]\PÞ                  ][Pà                  ]_PP                  ]^PJ                  3,          tq]Pä                  ! ]s4      tt]Pê                  ! R+]Pì                  4      twR, R- ltxR. R/ ltyR0 R1 ltzR2 R3 lt{R4 R5 lt|R6 R7 lt}R8 R9 lt~R: R; ltR< R= lt€R> R? lt�R@ RA lt‚R# )Bz4Support for requesting and verifying OCSP responses.)ÚannotationsN)Údatetime)Útimezone)ÚTYPE_CHECKINGÚIterableÚOptionalÚTypeÚUnion)ÚInvalidSignature)Údefault_backend)ÚDSAPublicKey)ÚECDSA)ÚEllipticCurvePublicKey)ÚPKCS1v15)ÚRSAPublicKey)ÚX448PublicKey)ÚX25519PublicKey)ÚSHA1)ÚHash)ÚEncoding)ÚPublicFormat)ÚAuthorityInformationAccess)ÚExtendedKeyUsage)ÚExtensionNotFound)Ú
TLSFeature)ÚTLSFeatureType)ÚOCSPCertStatus)ÚOCSPRequestBuilder)ÚOCSPResponseStatus)Úload_der_ocsp_response)ÚAuthorityInformationAccessOID)ÚExtendedKeyUsageOID)Úpost)ÚRequestException)Ú_csot)Ú_next_updateÚ_this_update)ÚdsaÚecÚed448Úed25519ÚrsaÚx448Úx25519)Ú	Prehashed)ÚHashAlgorithm)ÚCertificateÚName)Ú	ExtensionÚExtensionTypeVar)ÚOCSPRequestÚOCSPResponse)Ú
Connection)Ú
_OCSPCache)Ú_CallbackDatas9   -----BEGIN CERTIFICATE[^
]+.+?-----END CERTIFICATE[^
]+c               ó(   € V ^8„  d   QhRRRRRRRR/# )	é   Úcertr0   ÚchainúIterable[Certificate]Útrusted_ca_certszOptional[list[Certificate]]ÚreturnzOptional[Certificate]© )Úformats   "ÚMC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\pymongo/ocsp_support.pyÚ__annotate__rC   h   s,   € ÷ ñ Ø
ðØ3ðØGbðàñó    c                ó¦   € V P                   pV F  pVP                  V8X  g   K  Vu # 	  V'       d   V F  pVP                  V8X  g   K  Vu # 	  R # ©N)ÚissuerÚsubject)r;   r<   r>   Úissuer_nameÚ	candidates   &&&  rB   Ú_get_issuer_certrK   h   sS   € ð —+‘+€KÛˆ	Ø×Ñ Ö+ØÒñ ÷ Û)ˆIØ× Ñ  KÖ/Ø Ò ñ *ñ rD   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r:   ÚkeyÚCertificateIssuerPublicKeyTypesÚ	signatureÚbytesÚ	algorithmz%Union[Prehashed, HashAlgorithm, None]Údatar?   Úintr@   )rA   s   "rB   rC   rC   {   s:   € ÷ ñ Ø	(ðàðð 5ðð ð	ð
 	ñrD   c                ó¬  €  \        V \        4      '       d   V P                  W\        4       V4       ^# \        V \        4      '       d   V P                  WV4       ^# \        V \
        4      '       d   V P                  W\        V4      4       ^# \        V \        \        34      '       d   ^# V P                  W4        ^#   \         d     ^ # i ; i)é   )
Ú
isinstanceÚ_RSAPublicKeyÚverifyÚ	_PKCS1v15Ú_DSAPublicKeyÚ_EllipticCurvePublicKeyÚ_ECDSAÚ_X25519PublicKeyÚ_X448PublicKeyÚ_InvalidSignature)rM   rO   rQ   rR   s   &&&&rB   Ú_verify_signaturer`   {   s¹   € ðÜ�cœ=×)Ò)Ø�J‰J�y¬	«°YÔ?ñ ô ˜œ]×+Ò+Ø�J‰J�y¨	Ô2ñ ô ˜Ô4×5Ò5Ø�J‰J�y¬¨yÓ(9Ô:ñ ô ØÔ"¤NÐ3÷
ò 
ñ à�J‰J�yÕ'ñ øô ô Úðús(   ‚1C µ(C Á1C ÂC Â0C ÃCÃCc               ó$   € V ^8„  d   QhRRRRRR/# )r:   r;   r0   ÚklasszType[ExtensionTypeVar]r?   z%Optional[Extension[ExtensionTypeVar]]r@   )rA   s   "rB   rC   rC   •   s$   € ÷ ñ Ø
ðØ4ðà*ñrD   c                ó^   €  V P                   P                  V4      #   \         d     R # i ; irF   )Ú
extensionsÚget_extension_for_classÚ_ExtensionNotFound)r;   rb   s   &&rB   Ú_get_extensionrg   •   s.   € ðØ�‰×6Ñ6°uÓ=Ð=øÜô Úðús   ‚ �,«,c               ó    € V ^8„  d   QhRRRR/# )r:   r;   r0   r?   rP   r@   )rA   s   "rB   rC   rC   ž   s   € ÷ ñ ˜;ð ¨5ñ rD   c                ó  € V P                  4       p\        V\        4      '       d0   VP                  \        P
                  \        P                  4      pMs\        V\        4      '       d0   VP                  \        P                  \        P                  4      pM.VP                  \        P
                  \        P                  4      p\        \        4       \        4       R 7      pVP                  V4       VP!                  4       # ))Úbackend)Ú
public_keyrV   rW   Úpublic_bytesÚ	_EncodingÚDERÚ_PublicFormatÚPKCS1r[   ÚX962ÚUncompressedPointÚSubjectPublicKeyInfoÚ_HashÚ_SHA1Ú_default_backendÚupdateÚfinalize)r;   rk   ÚpbytesÚdigests   &   rB   Ú_public_key_hashr{   ž   sª   € Ø—‘Ó"€Jô
 �*œm×,Ò,Ø×(Ñ(¬¯©¼×8KÑ8KÓL‰Ü	�JÔ 7×	8Ò	8Ø×(Ñ(¬¯©¼×9XÑ9XÓY‰à×(Ñ(¬¯©¼×8ZÑ8ZÓ[ˆÜ”5“7Ô$4Ó$6Ô7€FØ
‡M�M�&ÔØ�?‰?ÓÐrD   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r:   Úcertificatesr=   rG   r0   Úresponder_key_hashzOptional[bytes]r?   úlist[Certificate]r@   )rA   s   "rB   rC   rC   ¯   s,   € ÷ ñ Ø'ðØ1<ðØRaðàñrD   c                óŽ   € V  Uu. uF4  p\        V4      V8X  g   K  VP                  VP                  8X  g   K2  VNK6  	  up# u upi rF   )r{   rG   rH   )r}   rG   r~   r;   s   &&& rB   Ú_get_certs_by_key_hashr�   ¯   sN   € ñ
 !óá ˆDÜ˜DÓ!Ð%7Ñ7ô 	à<@¿K¹KÈ6Ï>É>Ñ<Y÷ 	ˆÙ ñð ùò s   …AœA¹Ac               ó(   € V ^8„  d   QhRRRRRRRR/# )	r:   r}   r=   rG   r0   Úresponder_namezOptional[Name]r?   r   r@   )rA   s   "rB   rC   rC   ¹   s,   € ÷ ñ Ø'ðØ1<ðØN\ðàñrD   c                ó�   € V  Uu. uF5  pVP                   V8X  g   K  VP                  VP                   8X  g   K3  VNK7  	  up# u upi rF   )rH   rG   )r}   rG   rƒ   r;   s   &&& rB   Ú_get_certs_by_namer…   ¹   sL   € ñ
 !óá ˆDØ�<‰<˜>Ñ)ô 	à.2¯k©k¸V¿^¹^Ñ.K÷ 	ˆÙ ñð ùò s   …A�AºAc               ó$   € V ^8„  d   QhRRRRRR/# ©r:   rG   r0   Úresponser5   r?   rS   r@   )rA   s   "rB   rC   rC   Ã   s!   € ÷ 3ñ 3 {ð 3¸lð 3Èsñ 3rD   c                óà  € VP                   pVP                  pVP                  pVe   W P                  8X  g   W48X  d   \        P                  R4       T pEM?\        P                  R4       VP                  pVP                   e#   \        W`V4      p\        P                  R4       M!\        W`V4      p\        P                  R4       V'       g   \        P                  R4       ^ # V^ ,          p\        V\        4      pV'       d    \        P                  VP                  9  d   \        P                  R4       ^ # \        V P                  4       VP                   VP"                  VP$                  4      '       g   \        P                  R4       ^ # \        VP                  4       VP                   VP"                  VP&                  4      p	V	'       g   \        P                  R4       V	# )	NzResponder is issuerzResponder is a delegatezUsing responder namezUsing key hashz%No matching or valid responder certs.z(Delegate not authorized for OCSP signingz&Delegate signature verification failedz&Response signature verification failed)rƒ   r~   Úissuer_key_hashrH   Ú_LOGGERÚdebugr}   r…   r�   rg   Ú_ExtendedKeyUsageÚ_ExtendedKeyUsageOIDÚOCSP_SIGNINGÚvaluer`   rk   rO   Úsignature_hash_algorithmÚtbs_certificate_bytesÚtbs_response_bytes)
rG   rˆ   ÚnameÚ	rkey_hashÚ	ikey_hashÚresponder_certÚcertsÚresponder_certsÚextÚrets
   &&        rB   Ú_verify_response_signaturerœ   Ã   s„  € ð ×"Ñ"€DØ×+Ñ+€IØ×(Ñ(€IØÒ˜D§N¡NÔ2°iÔ6LÜ�‰Ð+Ô,àŠä�‰Ð/Ô0ð ×%Ñ%ˆØ×"Ñ"Ò.Ü0°ÀÓEˆOÜ�M‰MÐ0Õ1ä4°UÀIÓNˆOÜ�M‰MÐ*Ô+ßÜ�M‰MÐAÔBÙð )¨Õ+ˆô ˜^Ô->Ó?ˆßÔ*×7Ñ7¸s¿y¹yÔHÜ�M‰MÐDÔEÙÜ Ø×ÑÓØ×$Ñ$Ø×3Ñ3Ø×0Ñ0÷	
ò 
ô �M‰MÐBÔCÙä
Ø×!Ñ!Ó#Ø×ÑØ×)Ñ)Ø×#Ñ#ó	€C÷ Ü�‰Ð>Ô?Ø€JrD   c               ó$   € V ^8„  d   QhRRRRRR/# )r:   r;   r0   rG   r?   r4   r@   )rA   s   "rB   rC   rC   ù   s!   € ÷ ñ ˜kð °;ð À;ñ rD   c                ój   € \        4       pVP                  W\        4       4      pVP                  4       # rF   )Ú_OCSPRequestBuilderÚadd_certificateru   Úbuild)r;   rG   Úbuilders   && rB   Ú_build_ocsp_requestr£   ù   s*   € ä!Ó#€GØ×%Ñ% d´E³GÓ<€GØ�=‰=‹?ÐrD   c               ó$   € V ^8„  d   QhRRRRRR/# r‡   r@   )rA   s   "rB   rC   rC      s!   € ÷ ñ ˜[ð °Lð ÀSñ rD   c                ó´  € \         P                  R 4       \        W4      pV'       g   ^ # \        V4      p\        P
                  ! \        P                  R7      pV'       d!   VP                  f   VP                  RR7      pV'       d   W48”  d   \         P                  R4       ^ # \        V4      pV'       d   WT8  d   \         P                  R4       ^ # ^# )zVerifying response)ÚtzN)ÚtzinfozthisUpdate is in the futureznextUpdate is in the past)r‹   rŒ   rœ   r&   Ú	_datetimeÚnowr   Úutcr§   Úreplacer%   )rG   rˆ   ÚresÚthis_updater©   Únext_updates   &&    rB   Ú_verify_responser¯      s˜   € Ü‡M�MÐ&Ô'ä
$ VÓ
6€CßÙô ˜xÓ(€KÜ
�-Š-œ8Ÿ<™<Ô
(€Cß�{×)Ñ)Ò1à�k‰k ˆkÓ&ˆç�{Ô(Ü�‰Ð3Ô4Ùä˜xÓ(€Kß�{Ô(Ü�‰Ð1Ô2ÙÙrD   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r:   r;   r0   rG   ÚurizUnion[str, bytes]Úocsp_response_cacher7   r?   zOptional[OCSPResponse]r@   )rA   s   "rB   rC   rC     s4   € ÷ *ñ *Ø
ð*Ø*ð*Ø1Bð*ØYcð*àñ*rD   c                óT  € \        W4      p W4,          p\        P                  R 4       V#   \         Edp    \	        \
        P                  ! ^4      R4      p \        TTP                  \        P                  4      RR/TR7      pM0  \         d#   p\        P                  RT4        Rp? R# Rp?ii ; iTP                  ^È8w  d$   \        P                  RTP                  4        R# \        TP                  4      p\        P                  RTP                  4       TP                  \         P"                  8w  d    R# TP$                  TP$                  8w  d   \        P                  R	4        R# \'        Y4      '       g    R# \        P                  R
4       YST&    T# i ; i)zUsing cached OCSP response.gü©ñÒMbP?zContent-Typezapplication/ocsp-request)rR   ÚheadersÚtimeoutzHTTP request failed: %sNzHTTP request returned %dúOCSP response status: %rz-Response serial number does not match requestzCaching OCSP response.)r£   r‹   rŒ   ÚKeyErrorÚmaxr$   Úclamp_remainingÚ_postrl   rm   rn   Ú_RequestExceptionÚstatus_codeÚ_load_der_ocsp_responseÚcontentÚresponse_statusÚ_OCSPResponseStatusÚ
SUCCESSFULÚserial_numberr¯   )	r;   rG   r±   r²   Úocsp_requestÚocsp_responserµ   rˆ   Úexcs	   &&&&     rB   Ú_get_ocsp_responserÆ     se  € ô ' tÓ4€Lð$:Ø+Õ9ˆÜ�‰Ð3Ô4ðH ÐøôG õ !:ô ”e×+Ò+¨AÓ.°Ó6ˆð		ÜØØ!×.Ñ.¬y¯}©}Ó=Ø'Ð)CÐDØô	‰Høô !ô 	Ü�M‰MÐ3°SÔ9Þûð	úð ×Ñ 3Ô&Ü�M‰MÐ4°h×6JÑ6JÔKÚÜ/°×0@Ñ0@ÓAˆÜ�‰Ð0°-×2OÑ2OÔPØ×(Ñ(Ô,?×,JÑ,JÔJÚð
 ×&Ñ&¨,×*DÑ*DÔDÜ�M‰MÐIÔJÚÜ ×6Ò6âÜ�‰Ð.Ô/Ø,9˜LÒ)àÐðG!:úsR   �, ¬,F'Á.BÂF'ÂB5ÂB0Â)F'Â0B5Â54F'Ã,AF'Å0F'Å6F'Æ
F'Æ&F'c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r:   Úconnr6   Ú
ocsp_bytesrP   Ú	user_datazOptional[_CallbackData]r?   Úboolr@   )rA   s   "rB   rC   rC   G  s0   € ÷ añ a˜ð a°ð aÐCZð aÐ_cñ arD   c                óô  € V'       g   Q hV P                  4       pVf   \        P                  R4       R# VP                  4       p\	        V R4      '       d   V P                  4       pRpMV P                  4       pVP                  pV'       g   \        P                  R4       R# V Uu. uF  qwP                  4       NK  	  pp\        WHV4      p	Rp
\        V\        4      pVeB   VP                   F1  pV\        P                  8X  g   K  \        P                  R4       Rp
 M	  VP                  pVR8X  EdÕ   \        P                  R	4       V
'       d   \        P                  R
4       R# VP                  '       g   \        P                  R4       R# \        V\         4      pVf   \        P                  R4       R# VP                   Uu. uF:  pVP"                  \$        P&                  8X  g   K$  VP(                  P                  NK<  	  ppV'       g   \        P                  R4       R# V	f   \        P                  R4       R# \        P                  R4       V F�  p\        P                  RV4       \+        WIVV4      pVf   K,  \        P                  RVP,                  4       VP,                  \.        P0                  8X  d    R# VP,                  \.        P2                  8X  g   K�   R# 	  \        P                  R4       R# \        P                  R4       V	f   \        P                  R4       R# \5        V4      p\        P                  RVP6                  4       VP6                  \8        P:                  8w  d   R# \=        V	V4      '       g   R# VV\?        WI4      &   \        P                  RVP,                  4       VP,                  \.        P2                  8X  d   R# R# u upi u upi )zCCallback for use with OpenSSL.SSL.Context.set_ocsp_client_callback.NzNo peer cert?FÚget_verified_chainzNo peer cert chain?z!Peer presented a must-staple certTrD   z$Peer did not staple an OCSP responsez5Must-staple cert with no stapled response, hard fail.z.OCSP endpoint checking is disabled, soft fail.z*No authority access information, soft failzNo OCSP URI, soft failzNo issuer cert?zRequesting OCSP dataz	Trying %szOCSP cert status: %rz)No definitive OCSP cert status, soft failzPeer stapled an OCSP responser¶   ) Úget_peer_certificater‹   rŒ   Úto_cryptographyÚhasattrrÍ   Úget_peer_cert_chainr>   rK   rg   Ú_TLSFeaturer�   Ú_TLSFeatureTypeÚstatus_requestr²   Úcheck_ocsp_endpointÚ_AuthorityInformationAccessÚaccess_methodÚ_AuthorityInformationAccessOIDÚOCSPÚaccess_locationrÆ   Úcertificate_statusÚ_OCSPCertStatusÚGOODÚREVOKEDr½   r¿   rÀ   rÁ   r¯   r£   )rÈ   rÉ   rÊ   Úpycertr;   Úpychainr>   Úcerr<   rG   Úmust_stapleÚext_tlsÚfeaturer²   Úext_aiaÚdescÚurisr±   rˆ   s   &&&                rB   Ú_ocsp_callbackrè   G  s0  € ÷ Ðˆ9Ø×&Ñ&Ó(€FØ‚~Ü�‰�oÔ&ÙØ×!Ñ!Ó#€DäˆtÐ)×*Ò*Ø×)Ñ)Ó+ˆØÑà×*Ñ*Ó,ˆØ$×5Ñ5ÐßÜ�‰Ð+Ô,ÙÙ.5Ó6©g s× Ñ Ö"©g€EÐ6Ü˜dÐ+;Ó<€FØ€Kä˜T¤;Ó/€GØÒØ—}”}ˆGØœ/×8Ñ8Ö8Ü—‘ÐAÔBØ"�Ùñ	 %ð
 $×7Ñ7Ðð �SÕÜ�‰Ð<Ô=ßÜ�M‰MÐQÔRÙØ×,×,Ð,Ü�M‰MÐJÔKáä  Ô'BÓCˆØŠ?Ü�M‰MÐFÔGáð  Ÿšó
á%�Ø×!Ñ!Ô%C×%HÑ%HÑHô 'ˆD× Ñ ×&Ô&Ù%ð 	ð 
÷
 Ü�M‰MÐ2Ô3áØŠ>Ü�M‰MÐ+Ô,ÙÜ�‰Ð,Ô-ó ˆCÜ�M‰M˜+ sÔ+Ü)¨$¸Ð=PÓQˆHØÒñ Ü�M‰MÐ0°(×2MÑ2MÔNØ×*Ñ*¬o×.BÑ.BÔBÚØ×*Ñ*¬o×.EÑ.EÖEÚñ ô 	�‰ÐAÔBÙä‡M�MÐ1Ô2Ø‚~Ü�‰Ð'Ô(ÙÜ& zÓ2€HÜ‡M�MÐ,¨h×.FÑ.FÔGð ×ÑÔ#6×#AÑ#AÔAÙÜ˜F H×-Ò-Ùà=EÐÔ+¨DÓ9Ñ:Ü‡M�MÐ(¨(×*EÑ*EÔFØ×"Ñ"¤o×&=Ñ&=Ô=ÙÙùò] 7ùò:
s   Â*O0Ç!O5Ç7O5)ƒÚ__doc__Ú
__future__r   ÚloggingÚ_loggingÚreÚ_rer   r¨   r   Útypingr   r   r   r   r	   Úcryptography.exceptionsr
   r_   Úcryptography.hazmat.backendsr   rv   Ú-cryptography.hazmat.primitives.asymmetric.dsar   rZ   Ú,cryptography.hazmat.primitives.asymmetric.ecr   r\   r   r[   Ú1cryptography.hazmat.primitives.asymmetric.paddingr   rY   Ú-cryptography.hazmat.primitives.asymmetric.rsar   rW   Ú.cryptography.hazmat.primitives.asymmetric.x448r   r^   Ú0cryptography.hazmat.primitives.asymmetric.x25519r   r]   Ú%cryptography.hazmat.primitives.hashesr   ru   r   rt   Ú,cryptography.hazmat.primitives.serializationr   rm   r   ro   Úcryptography.x509r   rÖ   r   r�   r   rf   r   rÒ   r   rÓ   Úcryptography.x509.ocspr   rÜ   r   rŸ   r   rÀ   r   r½   Úcryptography.x509.oidr    rØ   r!   rŽ   Úrequestsr"   rº   Úrequests.exceptionsr#   r»   Úpymongor$   Úpymongo.ocsp_cacher%   r&   Ú)cryptography.hazmat.primitives.asymmetricr'   r(   r)   r*   r+   r,   r-   Ú/cryptography.hazmat.primitives.asymmetric.utilsr.   r/   r0   r1   Úcryptography.x509.extensionsr2   r3   r4   r5   ÚOpenSSL.SSLr6   r7   Úpymongo.pyopenssl_contextr8   ÚEd25519PublicKeyÚEd448PublicKeyrN   Ú	getLoggerÚ__name__r‹   ÚcompileÚDOTALLÚ_CERT_REGEXrK   r`   rg   r{   r�   r…   rœ   r£   r¯   rÆ   rè   r@   rD   rB   Ú<module>r     sc  ðñ ;Ý "ã Û Ý *Ý ß AÕ Aå IÝ LÝ WÝ Hõõ TÝ Wõõõ @Ý ?Ý NÝ VÝ WÝ CÝ EÝ 7Ý ?Ý DÝ LÝ LÝ Tõõ NÝ "Ý Eå ß 9ç÷÷ ñ õ JÝCß3ßHß@Ý&å-Ý7à&+Ø×ÑØ×ÑØ
×!Ñ!Ø× Ñ Ø×ÑØ×ÑØ×Ñð	õ'Ð#ð ×
Ò
˜XÓ
&€à�kŠkØDÀcÇjÁjó€õ
õ&õ4õõ"õõ3õlõõ4*÷ZarD   