
    gT                     2    S SK Jr  S SKJr   " S S\5      rg)    )sha256)Jwtc                   `   ^  \ rS rSrSrSrSrU 4S jrS rS r	\
S 5       r\
S	 5       rS
rU =r$ )ClientValidationJwt   zIA JWT included on requests so that Twilio can verify request authenticityztwilio-pkrv;v=1RS256c                 \   > [         [        U ]  UUUU R                  SS9  X0l        XPl        g)a  
Create a new ClientValidationJwt
:param str account_sid: A Twilio Account Sid starting with 'AC'
:param str api_key_sid: A Twilio API Key Sid starting with 'SK'
:param str credential_sid: A Credential Sid starting with 'CR',
                           public key Twilio will use to verify the JWT.
:param str private_key: The private key used to sign the JWT.
:param ValidationPayload validation_payload: information from the request to sign
i,  )
secret_keyissuersubject	algorithmttlN)superr   __init__	ALGORITHMcredential_sidvalidation_payload)selfaccount_sidapi_key_sidr   private_keyr   	__class__s         f/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/twilio/jwt/validation/__init__.pyr   ClientValidationJwt.__init__   s;     	!41"nn 	2 	
 -"4    c                 <    [         R                  U R                  S.$ )N)ctykid)r   _ClientValidationJwt__CTYr   )r   s    r   _generate_headers%ClientValidationJwt._generate_headers"   s    *009L9LMMr   c           	         U R                   R                  R                  5        VVs0 s H&  u  pUR                  5       U R	                  US5      _M(     nnn[        U R                   R                  5      nU Vs/ s H  nXS;   d  M
  SR                  XSU   5      PM      nnSR                  U5      nU R                   R                  R                  S5      nU R	                  US5      nU R                  U R                   R                  5      =(       d    SnSR                  U5      n	U R                   R                  U R                   R                  U/n
U(       a  U
R                  U5        U
R                  S5        U
R                  U	5        U
R                  U5        SR                  U
5      n
XR                  U
5      S.$ s  snnf s  snf )N,z{}:{}
& ;)hrhrqh)r   all_headersitemslower_sort_and_joinsortedsigned_headersformatjoinquery_stringsplit_hashbodymethodpathappend)r   kvr*   r/   hheaders_strr2   req_body_hashsigned_headers_strsigned_payloads              r   _generate_payload%ClientValidationJwt._generate_payload%   s    //;;AAC
C GGIt**1c22C 	 

   7 7 F FG
 $
# .GNN1!n-# 	 

 ii, ..;;AA#F**<=

4#:#:#?#?@FB XXn5 ##**##((
 !!+.b!01m,>2)**^2LMMK

s   -G;	GGc                 d    [        U[        5      (       a  U$ UR                  [        U5      5      $ )N)
isinstancestrr1   r.   )clsvaluesjoiners      r   r-   "ClientValidationJwt._sort_and_joinN   s'    fc""M{{6&>**r   c                     U(       d  U$ [        U[        5      (       d  UR                  S5      n[        U5      R	                  5       $ )Nzutf-8)rC   bytesencoder   	hexdigest)rE   	input_strs     r   r4   ClientValidationJwt._hashT   s<    )U++!((1Ii **,,r   )r   r   )__name__
__module____qualname____firstlineno____doc__r   r   r   r    r@   classmethodr-   r4   __static_attributes____classcell__)r   s   @r   r   r      sJ    SEI5,N'NR + +
 - -r   r   N)hashlibr   
twilio.jwtr   r    r   r   <module>rZ      s     V-# V-r   