Ë
    ûûàg"  ã                   óÖ  — d dl mZmZmZmZ d dlmZ d dlZd dl	m
Z
 d dlmZ d dlmZmZmZmZmZmZmZ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j@                  jB                  _"        dZ#ddiZ$defd„Z%dee   fd„Z&deddfd„Z'd%d„Z(de
fd„Z)dedefd„Z*de+defd„Z,dedefd„Z-dee   fd„Z.de/dee   fd„Z0dedefd„Z1d&defd „Z2defd!„Z3dedefd"„Z4 G d#„ d$«      Z5y)'é    )ÚAnyÚDictÚListÚOptional)Úget_user_modelN)ÚFido2Server)Úwebsafe_decode)ÚAttestedCredentialDataÚAuthenticationResponseÚAuthenticatorDataÚPublicKeyCredentialRpEntityÚPublicKeyCredentialUserEntityÚRegistrationResponseÚResidentKeyRequirementÚUserVerificationRequirement)Úurl_str_to_user_pk)Úcontext)Úapp_settings)Úget_adapter)ÚAuthenticatorTzmfa.webauthn.stateÚ	credPropsÚreturnc                 óJ   — t        «       j                  | «      }t        di |¤ŽS )N© )r   Ú%get_public_key_credential_user_entityr   )ÚuserÚkwargss     ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/mfa/webauthn/internal/auth.pyÚbuild_user_payloadr   !   s"   € Ü‹]×@Ñ@ÀÓF€FÜ(Ñ2¨6Ñ2Ð2ó    c                  ó\   — t         j                  j                  j                  t        «      S ©N)r   ÚrequestÚsessionÚgetÚSTATE_SESSION_KEYr   r    r   Ú	get_stater'   &   s   € Ü�?‰?×"Ñ"×&Ñ&Ô'8Ó9Ð9r    Ústatec                 óF   — | t         j                  j                  t        <   y r"   )r   r#   r$   r&   )r(   s    r   Ú	set_stater*   *   s   € Ø16„G‡O�O×ÑÔ-Ò.r    c                  ó`   — t         j                  j                  j                  t        d «       y r"   )r   r#   r$   Úpopr&   r   r    r   Úclear_stater-   .   s   € Ü‡O�O×Ñ×ÑÔ 1°4Õ8r    c                  ó�   — t        «       j                  «       } t        di | ¤Ž}d }t        j                  rd„ }t        ||¬«      }|S )Nc                  ó   — y)NTr   )Úos    r   ú<lambda>zget_server.<locals>.<lambda>7   s   � r    )Úverify_originr   )r   Ú#get_public_key_credential_rp_entityr   r   ÚWEBAUTHN_ALLOW_INSECURE_ORIGINr   )Ú	rp_kwargsÚrpr2   Úservers       r   Ú
get_serverr8   2   sC   € Ü“×AÑAÓC€IÜ	$Ñ	1 yÑ	1€BØ€MÜ×2Ò2Ù&ˆÜ˜¨=Ô9€FØ€Mr    Úresponsec                 óz   — 	 t        j                  | «      S # t        $ r t        «       j	                  d«      ‚w xY w©NÚincorrect_code)r   Ú	from_dictÚ	TypeErrorr   Úvalidation_error©r9   s    r   Úparse_registration_responserA   <   s;   € ð?Ü#×-Ñ-¨hÓ7Ð7øÜò ?Ü‹m×,Ñ,Ð-=Ó>Ð>ð?ús   ‚ —#:Úpasswordlessc                 ó$  — t        «       }t        | «      }|j                  t        | «      ||rt        j
                  nt        j                  |rt        j
                  nt        j                  t        ¬«      \  }}t        |«       t        |«      S )N)r   ÚcredentialsÚresident_key_requirementÚuser_verificationÚ
extensions)r8   Úget_credentialsÚregister_beginr   r   ÚREQUIREDÚDISCOURAGEDr   Ú
EXTENSIONSr*   Údict)r   rB   r7   rD   Úregistration_datar(   s         r   Úbegin_registrationrO   C   s„   € Ü‹\€FÜ! $Ó'€KØ%×4Ñ4Ü Ó%Øñ ô #×+Ò+ä'×3Ñ3ñ ô (×0Ò0ä,×8Ñ8äð  5ó  ÑÐ�uô ˆeÔÜÐ!Ó"Ð"r    Ú
credentialc                 óê   — t        «       }t        «       }|st        «       j                  d«      ‚	 |j	                  || «      }t        «        |S # t
        $ r t        «       j                  d«      ‚w xY wr;   )r8   r'   r   r?   Úregister_completeÚ
ValueErrorr-   )rP   r7   r(   Úbindings       r   Úcomplete_registrationrU   Y   so   € Ü‹\€FÜ‹K€EÙÜ‹m×,Ñ,Ð-=Ó>Ð>ð?Ø×*Ñ*¨5°*Ó=ˆô „MØ€Nøô	 ò ?ä‹m×,Ñ,Ð-=Ó>Ð>ð?ús   ±A Á#A2c                 ó>  — g }t         j                  j                  | t         j                  j                  ¬«      }|D ]\  }|j                  «       j                  j                  }|sŒ*|j                  |j                  «       j                  j                  «       Œ^ |S ©N)r   Útype)	r   ÚobjectsÚfilterÚTypeÚWEBAUTHNÚwrapÚauthenticator_dataÚcredential_dataÚappend)r   rD   ÚauthenticatorsÚauthenticatorr_   s        r   rH   rH   g   sŽ   € Ø02€KÜ"×*Ñ*×1Ñ1Øœ×*Ñ*×3Ñ3ð 2ó €Nð (ò XˆØ'×,Ñ,Ó.×AÑA×QÑQˆÚØ×Ñ˜}×1Ñ1Ó3×FÑF×VÑVÕWðXð Ðr    Úcredential_idc                 óî   — t         j                  j                  | t         j                  j                  ¬«      }|D ]7  }||j                  «       j                  j                  j                  k(  sŒ5|c S  y rW   )	r   rY   rZ   r[   r\   r]   r^   r_   rc   )r   rc   ra   rb   s       r   Ú"get_authenticator_by_credential_idre   s   su   € ô #×*Ñ*×1Ñ1Øœ×*Ñ*×3Ñ3ð 2ó €Nð (ò !ˆàØ×!Ñ!Ó#×6Ñ6×FÑF×TÑTóUð !Ò ð!ð r    c                 ó†   — 	 t        j                  | «      S # t        t        f$ r t	        «       j                  d«      ‚w xY wr;   )r   r=   r>   rS   r   r?   r@   s    r   Úparse_authentication_responserg   ‚   s@   € ð?Ü%×/Ñ/°Ó9Ð9øÜ”zÐ"ò ?Ü‹m×,Ñ,Ð-=Ó>Ð>ð?ús	   ‚ —)A c                 ó¤   — t        «       }|j                  | rt        | «      ng t        j                  ¬«      \  }}t        |«       t        |«      S )N)rD   rF   )r8   Úauthenticate_beginrH   r   Ú	PREFERREDr*   rM   )r   r7   Úrequest_optionsr(   s       r   Úbegin_authenticationrl   ‰   sM   € Ü‹\€FØ#×6Ñ6Ù-1”O DÔ)°rÜ5×?Ñ?ð 7ó Ñ€O�Uô ˆeÔÜ�Ó Ð r    c                 óŒ  — 	 | j                  di «      j                  d«      }t        t        |«      j                  d«      «      }t        «       j                  j                  |¬«      j                  «       }|st        «       j                  d«      ‚|S # t        t
        t        f$ r t        «       j                  d«      ‚w xY w)Nr9   Ú
userHandleÚutf8r<   )Úpk)r%   r   r	   ÚdecoderS   r>   ÚKeyErrorr   r?   r   rY   rZ   Úfirst)r9   Úuser_handleÚuser_pkr   s       r   Úextract_user_from_responserv   “   s«   € ð?Ø—l‘l :¨rÓ2×6Ñ6°|ÓDˆÜ$¤^°KÓ%@×%GÑ%GÈÓ%OÓPˆô Ó×#Ñ#×*Ñ*¨gÐ*Ó6×<Ñ<Ó>€DÙÜ‹m×,Ñ,Ð-=Ó>Ð>Ø€Køô œ	¤8Ð,ò ?Ü‹m×,Ñ,Ð-=Ó>Ð>ð?ús   ‚AB Â.Cc                 ón  — t        | «      }t        «       }t        «       }|st        «       j	                  d«      ‚	 |j                  |||«      }t        «        t        | |j                  «      }|st        «       j	                  d«      ‚|S # t        $ r}t        «       j	                  d«      |‚d }~ww xY wr;   )
rH   r8   r'   r   r?   Úauthenticate_completerS   r-   re   rc   )r   r9   rD   r7   r(   rT   Úerb   s           r   Úcomplete_authenticationrz   Ÿ   s«   € Ü! $Ó'€KÜ‹\€FÜ‹K€EÙÜ‹m×,Ñ,Ð-=Ó>Ð>ðFØ×.Ñ.¨u°kÀ8ÓLˆô „MÜ6°t¸W×=RÑ=RÓS€MÙÜ‹m×,Ñ,Ð-=Ó>Ð>ØÐøô ò Fä‹m×,Ñ,Ð-=Ó>ÀAÐEûðFús   ¼B Â	B4ÂB/Â/B4c                   ó¢   — e Zd Zd„ Zedededd fd„«       Zedefd„«       Z	e	j                  defd„«       Z	edefd„«       Zedee   fd	„«       Zy
)ÚWebAuthnc                 ó   — || _         y r"   )Úinstance)Úselfr~   s     r   Ú__init__zWebAuthn.__init__²   s	   € Ø ˆ�r    ÚnamerP   r   c                 ó„   — t        |t         j                  j                  ||dœ¬«      }|j                  «         | |«      S )N)r�   rP   )r   rX   Údata)r   r[   r\   Úsave)Úclsr   r�   rP   r~   s        r   ÚaddzWebAuthn.addµ   s>   € ä ØÜ×#Ñ#×,Ñ,àØ(ñô
ˆð 	�‰ŒÙ�8‹}Ðr    c                 ó4   — | j                   j                  d   S ©Nr�   ©r~   rƒ   ©r   s    r   r�   zWebAuthn.nameÂ   s   € à�}‰}×!Ñ! &Ñ)Ð)r    c                 ó6   — || j                   j                  d<   y rˆ   r‰   )r   r�   s     r   r�   zWebAuthn.nameÆ   s   € à%)ˆ�‰×Ñ˜6Ò"r    c                 ó‚   — t        | j                  j                  d   «      j                  j                  j
                  S )NrP   )rA   r~   rƒ   r9   Úattestation_objectÚ	auth_datarŠ   s    r   r^   zWebAuthn.authenticator_dataÊ   s0   € ä*Ø�M‰M×Ñ˜|Ñ,ó
ç
‰(×%Ñ%§i¡ið	0r    c                 ó¬   — | j                   j                  j                  di «      j                  di «      j                  di «      j                  d«      S )NrP   ÚclientExtensionResultsr   Úrk)r~   rƒ   r%   rŠ   s    r   Úis_passwordlesszWebAuthn.is_passwordlessÐ   sE   € ð �M‰M×Ñ×"Ñ" <°Ó4ß‰SÐ)¨2Ó.ß‰S�˜bÓ!ß‰S�‹Yð		
r    N)Ú__name__Ú
__module__Ú__qualname__r€   ÚclassmethodÚstrrM   r†   Úpropertyr�   Úsetterr   r^   r   Úboolr’   r   r    r   r|   r|   ±   s¥   „ ò!ð ð
˜Sð 
¨dð 
°zò 
ó ð
ð ð*�cò *ó ð*ð 
‡[�[ð*˜ò *ó ð*ð ð0Ð$5ò 0ó ð0ð
 ð
 ¨$¡ò 
ó ñ
r    r|   )r   Nr"   )6Útypingr   r   r   r   Údjango.contrib.authr   Úfido2.featuresÚfido2Úfido2.serverr   Úfido2.utilsr	   Úfido2.webauthnr
   r   r   r   r   r   r   r   Úallauth.account.utilsr   Úallauth.corer   Úallauth.mfar   Úallauth.mfa.adapterr   Úallauth.mfa.modelsr   ÚfeaturesÚwebauthn_json_mappingÚenabledr&   rL   r   r'   r*   r-   r8   rA   rš   rO   rU   rH   Úbytesre   rg   rl   rv   rz   r|   r   r    r   ú<module>r«      sN  ðß ,Ó ,å .ã Ý $Ý &÷	÷ 	ó 	õ 5Ý  Ý $Ý +Ý ,ð 04€‡�× $Ñ $Ô ,ð )Ð Ø˜4Ð €
ð3Ð =ó 3ð
:�8˜D‘>ó :ð7�Tð 7˜dó 7ó9ð�Kó ð?¨#ð ?Ð2Fó ?ð#¨4ð #°Dó #ð, dð Ð/@ó ð	˜TÐ"8Ñ9ó 	ðØðàˆmÑóð?¨Cð ?Ð4Jó ?ñ! tó !ð	¨ó 	ð¨Dð °]ó ÷$&
ò &
r    