
    !h	                        S SK Jr  S SKJrJr  S SKJr  S SKr	S SK
r	S SKJr  \(       a  S SKJr  S
S jrSS jrSS jrSS	 jrg)    )annotations)TYPE_CHECKINGAnyN)
to_unicode)X509Namec                R    [        [        R                  R                  U 5      5      $ )N)r   pyOpenSSLutilffistring)bufs    W/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/utils/ssl.pyffi_buf_to_stringr      s    m''..s344    c                    [         R                  R                  SS5      n[         R                  R	                  U R
                  U[        U5      5        [        U5      $ )Nzchar[]i   )r	   r
   newlibX509_NAME_oneline_namelenr   )x509nameresult_buffers     r   x509name_to_stringr      sK    &**..x=M''s='9 ]++r   c                   [        [        R                  S5      (       d  g [        R                  R	                  S5      n[        R                  R                  X5      (       d  g US   nU[        R                  R                  :X  a  g [        R                  R                  U[        R                  R                  5      n/ n[        R                  R                  U5      nU[        R                  R                  :X  a  UR                  S5        GOU[        R                  R                  :X  a  UR                  S5        GOqU[        R                  R                  :X  Ga  UR                  S5        [        R                  R                  U5      n[        R                  R                  U[        R                  R                  5      n[        R                  R!                  [        R                  R#                  U5      5      n[        R                  R%                  U5      nU[        R                  R                  :X  a  [        R                  R'                  U5      nUR                  [)        U5      5        O7UR                  [)        [        R                  R'                  U5      5      5        UR                  [        R                  R+                  U5       S35        SR-                  U5      $ )	NSSL_get_server_tmp_keyzEVP_PKEY **r   RSADHECDHz bitsz, )hasattrr	   r   r
   r   r   NULLgcEVP_PKEY_freeEVP_PKEY_idEVP_PKEY_RSAappendEVP_PKEY_DHEVP_PKEY_ECEVP_PKEY_get1_EC_KEYEC_KEY_freeEC_GROUP_get_curve_nameEC_KEY_get0_groupEC_curve_nid2nist
OBJ_nid2snr   EVP_PKEY_bitsjoin)
ssl_object
temp_key_ptemp_keykey_infokey_typeec_keynidcnames           r   get_temp_key_infor7      s   =$$&>??""&&}5J33JKK!}H=$$)))  ##Hm.?.?.M.MNHH  ,,X6H=$$111	]&&22	2	]&&22	2""77A""%%fm.?.?.K.KL77//7
 !!33C8M%%***!%%005E)%01)-*;*;*F*Fx*PQROO}((66x@AGH99Xr   c                     [         R                  R                  [         R                  R                  5      n U R	                  SSS9n[         R
                  R                   SU S3$ )Nasciireplace)errorsz ())OpenSSLSSLSSLeay_versionSSLEAY_VERSIONdecodeversion__version__)system_openssl_bytessystem_openssls     r   get_openssl_versionrF   @   sU    ";;55gkk6P6PQ)000KNoo))*"^,<A>>r   )r   r   returnstr)r   r   rG   rH   )r/   r   rG   z
str | None)rG   rH   )
__future__r   typingr   r   OpenSSL._util_utilr	   OpenSSL.SSLr=   OpenSSL.versionscrapy.utils.pythonr   OpenSSL.cryptor   r   r   r7   rF    r   r   <module>rR      s2    " % %   *'5, F?r   