
    uYf                     :   d dl Z d dlZ d dlmZ d dlmZ d dlmZ d dlmZ	 d dl
mZ d dl
mZ d dl
mZ d d	l
mZ d d
l
mZ d dlmZ d dlmZ deddfdZdeddfdZdefdZ G d de      Z e       Zej4                  sde_        de_        de_        de_        yy)    N)machine)system)Env)config)API_SECURITY)APPSEC)DEFAULT)EXPLOIT_PREVENTION)IAST)
APPSEC_ENV)IAST_ENVrreturnc                 .    | dk  s| dkD  rt        d      y )N        g      ?z-sample rate value must be between 0.0 and 1.0
ValueErrorr   s    T/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/ddtrace/settings/asm.py_validate_sample_rater      s     3w!c'HII     c                 $    | dk  rt        d      y )Nr   zvalue must be non negativer   r   s    r   _validate_non_negative_intr      s    1u566 r   c            
         t         j                  j                  t         j                  j                  t                    } ddddt	                  }t               j                         }t	               dk(  r|dk(  rddlm} |d	k  rd
}dddd}|j                  ||      }t         j                  j                  | ddd|dd|z         S )z=
    Build the filename of the libddwaf library to load.
    sodylibdll)LinuxDarwinWindowsr    amd64r   )maxsizel        x86x64x86_64win32)r!   i686r#   appsec_ddwaflibddwaflibz	libddwaf.)ospathdirname__file__r   r   lowersysr"   getjoin)_DIRNAMEFILE_EXTENSIONARCHIr"   TRANSLATE_ARCHARCHITECTUREs         r   build_libddwaf_filenamer9      s     wwrwwx89H#w5I&(SNIOOEx9'!1wE$hwGN!%%eU3L77<<(Hj,PUWbesWsttr   c                      e Zd Z ej                  eed      Zeej                  vxr e
j                  xs eZ ej                  eed      ZdZ ej                  eej$                  d      Z ej                  eej(                  d      Z ej                  eej,                  d      Z ej                  eej0                  d      Z ej                  eej6                  d      ZdZ ej                  eej>                  d      Z  ej                  eejB                  d      Z"dZ# e$       Z%ejL                  jO                  e%      Z( ej                  ede)jT                  ed	
      Z+ ej                  edd      Z, ej                  edd      Z- ej                  edd      Z. ej                  ee/j`                  d      Z1 ej                  edd      Z2dZ3 ej                  ee4jj                  d      Z6 ej                  e7e4jp                  de9      Z: ej                  e7e4jv                  de9      Z<g dZ= ej                  edd      Z>y)	ASMConfigF)defaultsafe Tr   g      >@DD_APPSEC_WAF_TIMEOUTz,Timeout in milliseconds for WAF computations)r<   	help_typehelpDD_IAST_REDACTION_ENABLEDDD_IAST_REDACTION_NAME_PATTERNz(?i)^.*(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|password|token|username|user_id|last.name|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)DD_IAST_REDACTION_VALUE_PATTERNz(?i)bearer\s+[a-z0-9\._\-]+|token:[a-z0-9]{13}|password|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L][\w=-]+\.ey[I-L][\w=-]+(\.[\w.+\/=-]+)?|[\-]{5}BEGIN[a-z\s]+PRIVATE\sKEY[\-]{5}[^\-]+[\-]{5}END[a-z\s]+PRIVATE\sKEY|ssh-rsa\s*[a-z0-9\/\.+]{100,} _DD_APPSEC_DEDUPLICATION_ENABLED   )r<   	validator    )_asm_enabled_iast_enabled_ep_enabled_use_metastruct_for_triggers_automatic_login_events_mode_user_model_login_field_user_model_email_field_user_model_name_field_api_security_enabled_api_security_sample_rate_api_security_sample_delay!_api_security_parse_response_body_waf_timeout_iast_redaction_enabled_iast_redaction_name_pattern_iast_redaction_value_pattern_iast_lazy_taint_ep_stack_trace_enabled_ep_max_stack_traces_ep_max_stack_trace_depth_asm_config_keys_deduplication_enabledDD_IAST_REDACTION_VALUE_NUMERALzx^[+-]?((0b[01]+)|(0x[0-9A-Fa-f]+)|(\d+\.?\d*(?:[Ee][+-]?\d+)?|\.\d+(?:[Ee][+-]?\d+)?)|(X\'[0-9A-Fa-f]+\')|(B\'[01]+\'))$N)?__name__
__module____qualname__r   varboolr   rI   r,   environtracer_config_remote_config_enabled_asm_can_be_enabledr   rJ   rL   strr   AUTOMATIC_USER_EVENTS_TRACKINGrM   USER_MODEL_LOGIN_FIELDrN   USER_MODEL_EMAIL_FIELDrO   USER_MODEL_NAME_FIELDrP   r   ENV_VAR_ENABLEDrQ   rR   floatSAMPLE_DELAYrS   PARSE_RESPONSE_BODYrT   _api_security_activer9   _asm_libddwafr-   exists_asm_libddwaf_availabler	   WAF_TIMEOUTrU   rV   rW   rX   r   
LAZY_TAINTrY   r^   rK   r
   STACK_TRACE_ENABLEDrZ   intMAX_STACK_TRACESr   r[   MAX_STACK_TRACE_DEPTHr\   r]   _iast_redaction_numeral_pattern r   r   r;   r;   .   sx   3774U;L%RZZ7`M<`<`qeqCGGD(E:M#( #*37730U0U_e#f %cggc6+H+HRTU%cggc6+H+HRTU$SWWS&*F*FPRS#CGGD,*F*FPTU #!(0I0ISW!X(/l6V6V`d(e% !+-M ggnn];377##;L &cggd,GQUV#*377(>$  %,CGG)W%! swwtT__eD$SWWT+MW[\ K%cggd,>,R,R\`a"37700!Ga !(55rMg!
0 '.cgg)8'#r   r;   F)r,   os.pathplatformr   r   envierr   ddtracer   rf   ddtrace.appsec._constantsr   r   r	   r
   r   ddtrace.constantsr   r   ro   r   ry   r   ri   r9   r;   ru   rI   rh   rJ   rQ   r}   r   r   <module>r      s    	     + 2 , - 8 * ( &JU Jt J
7# 7$ 7
u u$[ [| 
%%F!&F F#(F 	 &r   