+
     hX  c                  s\   ^ RI Ht ^ RIt^ RIt^ RIHtHt ^ RIHtH	t	H
t
Ht ^ RIHtHtHtHt ^RIHt ^RIHtHt ^RIHtHtHtHtHt   ! R	 R
]4      t]! RH4      ]n        ]! RRR7       ! R R]4      4       t]! RRR7       ! R R]4      4       t ]! RRR7       ! R R]4      4       t!]! RRR7       ! R R]4      4       t" ! R R]	4      t# ! R R]$]]#R7      t%] ! R R]%4      4       t&] ! R R]%4      4       t'] ! R R ]%4      4       t(] ! R! R"]%4      4       t)] ! R# R$]%4      4       t*] ! R% R&]%4      4       t+] ! R' R(]%4      4       t,R) R* lt-]! RRRR+7       ! R, R-]4      4       t.]! RRRR+7       ! R. R/]4      4       t/]! RRRR+7       ! R0 R1]4      4       t0]! RRRR+7       ! R2 R3]4      4       t1]! RRRR+7       ! R4 R5]4      4       t2]! RRRR+7       ! R6 R7]4      4       t3]! RRRR+7       ! R8 R9]4      4       t4]! RRRR+7       ! R: R;]4      4       t5]! RRRR+7       ! R< R=]4      4       t6 ! R> R?]]$]3,          4      t7]! RRRR+7       ! R@ RA]4      4       t8]! RRRR+7       ! RB RC]4      4       t9]! RRRR+7       ! RD RE]4      4       t:]! RRRR+7       ! RF RG]4      4       t;R# )Ii    )annotationsN)	dataclassfield)EnumEnumMetaIntFlagunique)AnyMappingSequencecast)cbor)ES256CoseKey)
ByteBuffer_JsonDataObjectsha256websafe_decodewebsafe_encodec                  sV    ] tR t^@t$ R R ltR tR tR t]R R l4       t	R ]
R&   R	tR
# )Aaguidc                   V ^8  d   QhRR/# )   databytes Zformat   "3/usr/lib/python3.14/site-packages/fido2/webauthn.py__annotate__Aaguid.__annotate__A   s     8 8U 8    c                	s<    \        V 4      ^8w  d   \        R4      hR# )   zAAGUID must be 16 bytesN)len
ValueError)selfr      &&r   __init__ZAaguid.__init__A   s    t9?677 r   c                	s(    V \         P                  8g  # N)r   NONEr"      &r   __bool__ZAaguid.__bool__E   s    v{{""r   c           
     	s    V P                  4       pVR ,           RVR,           RVR,           RVR,           RVR,           2	# ):N   N-:r*      N:r,   r   N:r      N:r-   NN)Zhex)r"   Zh   & r   __str__ZAaguid.__str__H   sD    HHJB%!D'!AeH:Qqxj!C&BBr   c                	s     R \        V 4       R2# )zAAGUID(Z))strr'   r(   r   __repr__ZAaguid.__repr__L   s    T1%%r   c                    V ^8  d   QhRRRR/# )r   valuer0   returnr   r   r   r   r   r   r   P   s     3 3# 3& 3r   c                	sD    V P                  VP                  R R4      4      # )r+    )ZfromhexZreplaceclsr3   r#   r   parseZAaguid.parseO   s    {{5==b122r   r&   r   N)__name__
__module____qualname____firstlineno__r$   r)   r/   r1   classmethodr8   __annotations____static_attributes__r   r   r   r   r   @   s2    8#C& 3 3 Lr   r   FT)initfrozenc                  s   a  ] tR t^Zt$ R]R&   R]R&   R]R&   R V 3R lltR	 t]R
 R l4       t]	R R l4       t
]	R R l4       t]	R R l4       tRtV ;t# )AttestedCredentialDatar   aaguidr   credential_idr   
public_keyc               r   r   _r   r   r   r   r   r   #AttestedCredentialData.__annotate__`   s     - -% -r   c                	s6  < \         SV `  4        \        P                  V 4      p\        P                  V R V^ ,          4       \        P                  V RV^,          4       \        P                  V RV^,          4       V^,          '       d   \        R4      hR# )rC   rD   rE   Wrong lengthN)superr$   rB   _parseobject__setattr__r!   )r"   rG   Zparsed	__class__   && r   r$   ZAttestedCredentialData.__init__`   sy    '..t446!954&)<4vay9!99^,, r   c                	    \        V 4      # r%   reprr'   r(   r   r/   ZAttestedCredentialData.__str__j       Dzr   c               r2   )r   r   r   r4   z#tuple[bytes, bytes, CoseKey, bytes]r   r   r   r   r   rH   n   s     = =U =B =r   c                s
   \        V 4      p\        VP                  ^4      4      pVP                  VP                  R4      4      p\        P
                  ! VP                  4       4      w  rEW#\        P                  ! V4      V3# )zParse the components of an AttestedCredentialData from a binary
string, and return them.

:param data: A binary string containing an attested credential data.
:return: AAGUID, credential ID, public key, and remaining data.
>H)r   r   readunpackr   decode_fromr   r8   )r   readerrC   cred_idpub_keyrests   &     r   rK   ZAttestedCredentialData._parsem   se     D!B(++fmmD12((7g 6<<r   c               s(    V ^8  d   QhRRRRRRRR/# )r   rC   r   rD   rE   r   r4   rB   r   r   r   r   r   rH   |   s,     
 

+0
>E
	
r   c           	     s    V ! V\         P                  ! R\        V4      4      ,           V,           \        P                  ! V4      ,           4      # )zCreate an AttestedCredentialData by providing its components.

:param aaguid: The AAGUID of the authenticator.
:param credential_id: The binary ID of the credential.
:param public_key: A COSE formatted public key.
:return: The attested credential data.
rT   )structpackr    r   encode)r7   rC   rD   rE      &&&&r   createZAttestedCredentialData.create{   sG     kk$M 234 kk*%&
 	
r   c               r2   )r   r   r   r4   z$tuple[AttestedCredentialData, bytes]r   r   r   r   r   rH      s     	: 	:u 	:)M 	:r   c                sR    V P                  V4      w  r#rEV P                  W#V4      V3# )zUnpack an AttestedCredentialData from a byte string, returning it and
any remaining data.

:param data: A binary string containing an attested credential data.
:return: The parsed AttestedCredentialData, and any remaining data from
    the input.
)rK   r`   )r7   r   rC   rY   rZ   r[   s   &&    r   unpack_fromZ"AttestedCredentialData.unpack_from   s-     *-D)9&zz&73T99r   c               s$    V ^8  d   QhRRRRRR/# )r   
key_handler   rE   r4   rB   r   r   r   r   r   rH      s'     
Q 
QE 
Qu 
QAW 
Qr   c                sl    V P                  \        P                  V\        P                  ! V4      4      # )a8  Create an AttestatedCredentialData from a CTAP1 RegistrationData instance.

:param key_handle: The CTAP1 credential key_handle.
:type key_handle: bytes
:param public_key: The CTAP1 65 byte public key.
:type public_key: bytes
:return: The credential data, using an all-zero AAGUID.
:rtype: AttestedCredentialData
)r`   r   r&   r   
from_ctap1)r7   rb   rE      &&&r   rc   Z!AttestedCredentialData.from_ctap1   s&     zz&++z53C3CJ3OPPr   r   )r9   r:   r;   r<   r>   r$   r/   ZstaticmethodrK   r=   r`   ra   rc   r?   __classcell__rN      @r   rB   rB   Z   su    N- - = = 
 
" 	: 	: 
Q 
Qr   rB   c                  s   a  ] tR t^t$ Rt ! R R]4      tR]R&   R]R&   R]R	&   R
]R&   R]R&   R V 3R lltR t	]
R R R ll4       tR R ltR R ltR R ltR R ltR R ltR R ltRtV ;t# )!AuthenticatorDataa  Binary encoding of the authenticator data.

:param _: The binary representation of the authenticator data.
:ivar rp_id_hash: SHA256 hash of the RP ID.
:ivar flags: The flags of the authenticator data, see
    AuthenticatorData.FLAG.
:ivar counter: The signature counter of the authenticator.
:ivar credential_data: Attested credential data, if available.
:ivar extensions: Authenticator extensions, if available.
c                  sJ    ] tR t^tRt^t^t^t^t^@t	^t
^t^t^t^t^@t^tRtR# )AuthenticatorData.FLAGzaAuthenticator data flags

See https://www.w3.org/TR/webauthn/#sec-authenticator-data for details
r   N)r9   r:   r;   r<   __doc__UPUVBEBSATEDZUSER_PRESENTZUSER_VERIFIEDZBACKUP_ELIGIBILITYZBACKUP_STATEZATTESTEDZEXTENSION_DATAr?   r   r   r   FLAGri      sH    	  !r   rq   r   
rp_id_hashri   flagsintcounterzAttestedCredentialData | Nonecredential_dataMapping | None
extensionsc               r   rF   r   r   r   r   r   AuthenticatorData.__annotate__   s     - -% -r   c                	s  < \         SV `  4        \        V 4      p\        P	                  V R VP                  ^ 4      4       \        P	                  V RVP                  R4      4       \        P	                  V RVP                  R4      4       VP                  4       pV P                  \        P                  P                  ,          '       d   \        P                  V4      w  rCMRp\        P	                  V RV4       V P                  \        P                  P                  ,          '       d   \        P                  ! V4      w  rSMRp\        P	                  V RV4       V'       d   \!        R4      hR# )	rr   rs   ZBru   z>INrv   rx   rI   )rJ   r$   r   rL   rM   rU   rV   rs   rh   rq   ro   rB   ra   rp   r   rW   r!   )r"   rG   rX   r[   rv   rx   rN   s   &&    r   r$   ZAuthenticatorData.__init__   s   D!4v{{2?4&--*<=4FMM$,?@{{}::)..1111$:$F$Ft$L!OT"O4!2OD::)..1111#//5JJ4z:^,, r   c                	rP   r%   rQ   r'   r(   r   r/   ZAuthenticatorData.__str__   rS   r   c          
     s,    V ^8  d   QhRRRRRRRRRR	/# )
r   rr   r   rs   ri   ru   rt   rv   rx   rw   r   r   r   r   r   ry      s<     
 

 &
 	

 
 #
r   c                s    T ! V\         P                  ! RW#4      ,           V,           Ve!   \        P                  ! V4      ,           4      # R,           4      # )a  Create an AuthenticatorData instance.

:param rp_id_hash: SHA256 hash of the RP ID.
:param flags: Flags of the AuthenticatorData.
:param counter: Signature counter of the authenticator data.
:param credential_data: Authenticated credential data (only if attested
    credential data flag is set).
:param extensions: Authenticator extensions (only if ED flag is set).
:return: The authenticator data.
z>BIr   )r\   r]   r   r^   )r7   rr   rs   ru   rv   rx   s   &&&&&&r   r`   ZAuthenticatorData.create   s_    & kk%01 +5*@t{{:&K
 	
 GJK
 	
r   c               r   r   r4   boolr   r   r   r   r   ry     s     < < <r   c                j    \        V P                  \        P                  P                  ,          4      # )z,Return true if the User Present flag is set.)r{   rs   rh   rq   rk   r'   r(   r   is_user_presentZ!AuthenticatorData.is_user_present  #    DJJ!2!7!7!:!::;;r   c               r   rz   r   r   r   r   r   ry   	  s     < <$ <r   c                r|   )z-Return true if the User Verified flag is set.)r{   rs   rh   rq   rl   r'   r(   r   is_user_verifiedZ"AuthenticatorData.is_user_verified	  r~   r   c               r   rz   r   r   r   r   r   ry          < <D <r   c                r|   )z2Return true if the Backup Eligibility flag is set.)r{   rs   rh   rq   rm   r'   r(   r   is_backup_eligibleZ$AuthenticatorData.is_backup_eligible  r~   r   c               r   rz   r   r   r   r   r   ry     s     < <d <r   c                r|   )z,Return true if the Backup State flag is set.)r{   rs   rh   rq   rn   r'   r(   r   is_backed_upZAuthenticatorData.is_backed_up  r~   r   c               r   rz   r   r   r   r   r   ry     s     < <T <r   c                r|   )z8Return true if the Attested credential data flag is set.)r{   rs   rh   rq   ro   r'   r(   r   is_attestedZAuthenticatorData.is_attested  r~   r   c               r   rz   r   r   r   r   r   ry     r   r   c                r|   )z/Return true if the Extenstion data flag is set.)r{   rs   rh   rq   rp   r'   r(   r   has_extension_dataZ$AuthenticatorData.has_extension_data  r~   r   r   )r   N)r9   r:   r;   r<   rj   r   rq   r>   r$   r/   r=   r`   r}   r   r   r   r   r   r?   re   rf   rg   r   rh   rh      sy    	w , !!L22- -0 
 
2<<<<<< <r   rh   c                  s   a  ] tR tRt$ RtR]R&   R]R&   R]R&   R	 V 3R
 lltR t]R R l4       t	]R R l4       t
RtV ;t# )AttestationObjecti  zBinary CBOR encoded attestation object.

:param _: The binary representation of the attestation object.
:ivar fmt: The type of attestation used.
:ivar auth_data: The attested authenticator data.
:ivar att_statement: The attestation statement.
r0   fmtrh   	auth_dataMapping[str, Any]att_stmtc               r   rF   r   r   r   r   r   AttestationObject.__annotate__,  s     > >% >r   c                	sf  < \         SV `  4        \        \        \        \
        3,          \        P                  ! \        V 4      4      4      p\        P                  V R VR ,          4       \        P                  V R\        VR,          4      4       \        P                  V RVR,          4       R# )r   r   authDatar   attStmtN)rJ   r$   r
   r   r0   r   r   decoder   rL   rM   rh   )r"   rG   r   rN   rO   r   r$   ZAttestationObject.__init__,  sy    GCH%t{{5;'?@4U44.?Z@P.QR4T)_=r   c                	rP   r%   rQ   r'   r(   r   r/   ZAttestationObject.__str__4  rS   r   c               s(    V ^8  d   QhRRRRRRRR/# )	r   r   r0   r   rh   r   r   r4   r   r   r   r   r   r   r   8  s,     
 

"3
?P
	
r   c           
     	sF    V ! \         P                  ! R VRVRV/4      4      # )r   r   r   )r   r^   )r7   r   r   r   r_   r   r`   ZAttestationObject.create7  s*     KKZIxPQ
 	
r   c               r2   )r   	app_paramr   r4   r   r   r   r   r   r   r   @  s     
 
5 
;L 
r   c                sD   V P                  R\        P                  V\        P                  P                  \        P                  P                  ,          ^ \
        P                  VP                  VP                  4      4      RVP                  .RVP                  /4      # )aR  Create an AttestationObject from a CTAP1 RegistrationData instance.

:param app_param: SHA256 hash of the RP ID used for the CTAP1 request.
:type app_param: bytes
:param registration: The CTAP1 registration data.
:type registration: RegistrationData
:return: The attestation object, using the "fido-u2f" format.
:rtype: AttestationObject
zfido-u2fZx5cZsig)r`   rh   rq   ro   rk   rB   rc   rb   rE   Zcertificate	signature)r7   r   Zregistrationrd   r   rc   ZAttestationObject.from_ctap1?  s     zz$$!&&)),=,B,B,E,EE&11 ++\-D-D	 \--.|7M7MN
 	
r   r   )r9   r:   r;   r<   rj   r>   r$   r/   r=   r`   rc   r?   re   rf   rg   r   r   r     sR     
H  > > 
 
 
 
r   r   c                  s   a  ] tR tRt$ ] ! R R]]4      4       tR]R&   R]R&   R]R	&   R]R
&   Rt	R]R&   R V 3R llt
]RR R ll4       tR t]R R l4       t]R R l4       tRtV ;t# )CollectedClientDataiX  c                      ] tR tRtRtRtRtR# )CollectedClientData.TYPEiZ  zwebauthn.createzwebauthn.getr   N)r9   r:   r;   r<   ZCREATEZGETr?   r   r   r   TYPEr   Z  s    "r   r   r   _datar0   typer   	challengeoriginFr{   cross_originc               r   rF   r   r   r   r   r    CollectedClientData.__annotate__e  s     W W% Wr   c                	s  < \         SV `  4        \        P                  V R \        P
                  ! V P                  4       4      4       \        P                  V RV P                  R,          4       \        P                  V R\        V P                  R,          4      4       \        P                  V RV P                  R,          4       \        P                  V RV P                  P                  RR4      4       R# )r   r   r   r   r   crossOriginFN)
rJ   r$   rL   rM   jsonZloadsr   r   r   get)r"   rG   rN   s   &&r   r$   ZCollectedClientData.__init__e  s    4$**T[[]*CD4F);<4nTZZ=T.UV44::h+?@4u1UVr   c          
     s,    V ^8  d   QhRRRRRRRRRR	/# )
r   r   r0   r   zbytes | strr   r   r{   r4   r   r   r   r   r   r   r   o  s<     
 

 
 	

 
 

r   c                	s    \        V\        4      '       d   \        V4      pMTpV ! \        P                  ! R VRVRVRV/VCRR7      P                  4       4      # )r   r   r   r   )Z
separators)Z,Z:)
isinstancer   r   r   Zdumpsr^   )r7   r   r   r   r   kwargsZencoded_challenges   &&&&&, r   r`   ZCollectedClientData.createn  sm     i'' .y 9 )JJD!2f!<	
  &	 fh
 	
r   c                	rP   r%   rQ   r'   r(   r   r/   ZCollectedClientData.__str__  rS   r   c               r   )r   r4   r0   r   r   r   r   r   r     s     $ $S $r   c                	rP   r%   )r   r'   r(   r   b64ZCollectedClientData.b64  s    d##r   c               r   )r   r4   r   r   r   r   r   r   r     s      e r   c                	rP   r%   )r   r'   r(   r   hashZCollectedClientData.hash  s    d|r   r   )F)r9   r:   r;   r<   r   r0   r   r   r>   r   r$   r=   r`   r/   propertyr   r   r?   re   rf   rg   r   r   r   X  s    sD   
IKL$W W 
 
2 $ $  r   r   c                  s.   a  ] tR tRtR tV 3R ltRtV ;t# )_StringEnumMetai  c                	s    R # r%   r   r6   r#   r   
_get_valueZ_StringEnumMeta._get_value  s    r   c                	sr   <  \         SV `  ! V.VO5/ VB #   \         d    T P                  T4      u # i ; ir%   )rJ   __call__r!   r   )r7   r3   Zargsr   rN   s   &&*,r   r   Z_StringEnumMeta.__call__  s@    	)7#E;D;F;; 	)>>%((	)s    66r   )r9   r:   r;   r<   r   r   r?   re   rf   rg   r   r   r     s    ) )r   r   c                      ] tR tRtRtRtR# )_StringEnumi  zQEnum of strings for WebAuthn types.

Unrecognized values are treated as missing.
r   N)r9   r:   r;   r<   rj   r?   r   r   r   r   r     s    r   r   )Z	metaclassc                  s&    ] tR tRtRtRtRtRtRtR# )AttestationConveyancePreferencei  ZnoneZindirectZdirectZ
enterpriser   N)	r9   r:   r;   r<   r&   ZINDIRECTZDIRECTZ
ENTERPRISEr?   r   r   r   r   r     s    DHFJr   r   c                  "    ] tR tRtRtRtRtRtR# )UserVerificationRequirementi  required	preferreddiscouragedr   Nr9   r:   r;   r<   REQUIREDZ	PREFERREDDISCOURAGEDr?   r   r   r   r   r         HIKr   r   c                  r   )ResidentKeyRequirementi  r   r   r   r   Nr   r   r   r   r   r     r   r   r   c                  r   )AuthenticatorAttachmenti  Zplatformzcross-platformr   N)r9   r:   r;   r<   ZPLATFORMZCROSS_PLATFORMr?   r   r   r   r   r     s    H%Nr   r   c                  s*    ] tR tRtRtRtRtRtRtRt	R# )	AuthenticatorTransporti  ZusbZnfcZblehybridZinternalr   N)
r9   r:   r;   r<   ZUSBZNFCZBLEHYBRIDZINTERNALr?   r   r   r   r   r     s    
C
C
CFHr   r   c                  r   )PublicKeyCredentialTypei  z
public-keyr   N)r9   r:   r;   r<   
PUBLIC_KEYr?   r   r   r   r   r     s    Jr   r   c                  r   )PublicKeyCredentialHinti  zsecurity-keyzclient-devicer   r   N)r9   r:   r;   r<   ZSECURITY_KEYZCLIENT_DEVICEr   r?   r   r   r   r   r     s    !L#MFr   r   c               r2   )r   r   r   r4   r   r   r   r   r   r   r     s     J J? J'8 Jr   c                sR    V  Uu/ uF  q\         \        V `  V4      bK  	  up# u upi r%   )rJ   r   __getitem__)r   kr.   r   _as_cborr     s)    DHIDqu_d7::DIIIs   $)ZeqrA   Zkw_onlyc                  sF    ] tR tRt$ R]R&   RtR]R&   ]R R l4       tR	tR# )
PublicKeyCredentialRpEntityi  r0   nameN
str | Noneidc               r   )r   r4   bytes | Noner   r   r   r   r   Z(PublicKeyCredentialRpEntity.__annotate__  s     C C Cr   c                sr    V P                   '       d%   \        V P                   P                  R4      4      # R# )z%Return SHA256 hash of the identifier.Zutf8N)r   r   r^   r'   r(   r   id_hashZ#PublicKeyCredentialRpEntity.id_hash  s)     26vdggnnV,-BdBr   r   )	r9   r:   r;   r<   r>   r   r   r   r?   r   r   r   r   r     s%    
IB
C Cr   r   c                  :    ] tR tRt$ R]R&   R]R&   RtR]R&   R	tR# )
PublicKeyCredentialUserEntityi  r0   r   r   r   Nr   display_namer   )r9   r:   r;   r<   r>   r   r?   r   r   r   r   r     s    
II#L*#r   r   c                  s,    ] tR tRt$ R]R&   R]R&   RtR# )PublicKeyCredentialParametersi  r   r   rt   Zalgr   Nr9   r:   r;   r<   r>   r?   r   r   r   r   r     s    
!!	Hr   r   c                  r   )
PublicKeyCredentialDescriptori  r   r   r   r   Nz'Sequence[AuthenticatorTransport] | None
transportsr   )r9   r:   r;   r<   r>   r   r?   r   r   r   r   r     s    
!!I:>J7>r   r   c                  sb   a  ] tR tRt$ RtR]R&   RtR]R&   RtR]R&   R	tR
]R&   V 3R lt	Rt
V ;t# )AuthenticatorSelectionCriteriai  NAuthenticatorAttachment | Noneauthenticator_attachmentzResidentKeyRequirement | Noneresident_key"UserVerificationRequirement | Noneuser_verificationFzbool | Nonerequire_resident_keyc                	s2  < \         SV `  4        V P                  fH   \        P	                  T RV P
                  '       d   \        P                  M\        P                  4       \        P	                  V RV P                  \        P                  8H  4       R # )Nr   r   )	rJ   __post_init__r   rL   rM   r   r   r   r   r"   rN      &r   r   Z,AuthenticatorSelectionCriteria.__post_init__  s{    $ 000 +33/;; 	"!7!@!@@	
r   r   )r9   r:   r;   r<   r   r>   r   r   r   r   r?   re   rf   rg   r   r   r     s;    ?C<C26L/6<@9@(-+-
 
r   r   c                  s    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
tR]R&   R
tR]R&   R
tR]R&   R
tR]R&   R
t	R]R&   R
t
R]R&   R
tR]R&   RtR
# )"PublicKeyCredentialCreationOptionsi  r   Zrpr   Zuserr   r   z'Sequence[PublicKeyCredentialParameters]Zpub_key_cred_paramsN
int | Nonetimeout.Sequence[PublicKeyCredentialDescriptor] | Noneexclude_credentialsz%AuthenticatorSelectionCriteria | Noneauthenticator_selection(Sequence[PublicKeyCredentialHint] | Nonehintsz&AttestationConveyancePreference | NoneattestationzSequence[str] | Noneattestation_formatsMapping[str, Any] | Nonerx   r   )r9   r:   r;   r<   r>   r   r   r   r   r   r   rx   r?   r   r   r   r   r     si    ##
''@@GZJNGNEIBI6:E3::>K7>04-4+/J(/r   r   c                  sv    ] tR tRt$ R]R&   RtR]R&   RtR]R&   RtR	]R
&   RtR]R&   Rt	R]R&   Rt
R]R&   RtR# )!PublicKeyCredentialRequestOptionsi$  r   r   Nr   r   r   rp_idr   allow_credentialsr   r   r   r   r   rx   r   )r9   r:   r;   r<   r>   r   r   r   r   r   rx   r?   r   r   r   r   r   $  sJ    GZE:HLEL<@9@6:E3:+/J(/r   r   c                  sL    ] tR tRt$ ]! ]! RR7      R7      tR]R&   R]R&   R	tR
# ) AuthenticatorAttestationResponsei/  clientDataJSONr   Zmetadatar   client_datar   Zattestation_objectr   N)	r9   r:   r;   r<   r   dictr   r>   r?   r   r   r   r   r   /  s    ',d@P6Q'RK$R))r   r   c                  sd    ] tR tRt$ ]! ]! RR7      R7      tR]R&   R]R&   R	]R
&   RtR]R&   Rt	R# )AuthenticatorAssertionResponsei5  r   r   r   r   r   rh   Zauthenticator_datar   r   Nr   user_handler   )
r9   r:   r;   r<   r   r   r   r>   r   r?   r   r   r   r   r   5  s.    ',d@P6Q'RK$R)) $K$r   r   c                  sJ    ] tR tRtRt/ 3R R lltR tR tR tR t	R	 t
R
tR# )%AuthenticationExtensionsClientOutputsi=  a  Holds extension output from a call to MakeCredential or GetAssertion.

When accessed as a dict, all bytes values will be serialized to base64url encoding,
capable of being serialized to JSON.

When accessed using attributes, richer types will instead be returned.
c               r   )r   outputsr   r   r   r   r   r   Z2AuthenticationExtensionsClientOutputs.__annotate__F  s     L L 1 Lr   c                	sp    VP                  4        UUu/ uF  w  r#Vf   K  W#bK  	  uppV n        R # u uppi r%   )Zitems_members)r"   r   r   Zv   &&  r   r$   Z.AuthenticationExtensionsClientOutputs.__init__F  s)    *1--/K/$!Q/KKs   22c                	,    \        V P                  4      # r%   )Ziterr   r'   r(   r   __iter__Z.AuthenticationExtensionsClientOutputs.__iter__I  s    DMM""r   c                	r   r%   )r    r   r'   r(   r   __len__Z-AuthenticationExtensionsClientOutputs.__len__L  s    4==!!r   c                	s    V P                   V,          p\        V\        4      '       d   \        V4      # \        V\        4      '       d"   \        V\
        4      '       g   \        V4      # V# r%   )r   r   r   r   r   r   )r"   keyr3   s   && r   r   Z1AuthenticationExtensionsClientOutputs.__getitem__O  sP    c"eU##!%((w''
5$0G0G;r   c                	s    VP                  R 4      pV^ ,          RP                  R VR,           4       4      ,           pV P                  P                  V4      # )rG   r5   c              3  s@   "   T F  qP                  4       x  K  	  R # 5ir%   )Ztitle)Z.0Zpr.   r   Z	<genexpr>ZDAuthenticationExtensionsClientOutputs.__getattr__.<locals>.<genexpr>Y  s     !?Y''))Ys   :i   NN)ZsplitZjoinr   r   )r"   r   Zpartsr   r   r   __getattr__Z1AuthenticationExtensionsClientOutputs.__getattr__W  sE    		#Qx"''!?U2Y!???}}  &&r   c                	s*    \        \        V 4      4      # r%   )rR   r   r'   r(   r   r1   Z.AuthenticationExtensionsClientOutputs.__repr__\  s    DJr   )r   N)r9   r:   r;   r<   rj   r$   r   r   r   r   r1   r?   r   r   r   r   r   =  s+     57 L#"'
 r   r   c                     a  ] tR tRt$ Rt]! RR7      tR]R&   R]R&   R	]R
&   RtR]R&   ]! ]	R7      t
R]R&   ]P                  tR]R&   V 3R lt]V 3R l4       t]V 3R l4       tRtV ;t# )RegistrationResponsei`  a  
Represents the RegistrationResponse structure from the WebAuthn specification,
with fields modeled after the JSON serialization.

Serializing this object to JSON can be done by using json.dumps(dict(response)).

See: https://www.w3.org/TR/webauthn-3/#dictdef-registrationresponsejson
Fr@   r0   r   r   raw_idr   responseNr   r   Zdefault_factoryr   client_extension_resultsr   r   c                	x   < \         P                  V R \        V P                  4      4       \        SV `  4        R# r   NrL   rM   r   r   rJ   r   r   r   r   r   Z"RegistrationResponse.__post_init__t  )    4~dkk'BCr   c                	l   < V\         \        \        3,          R ,          8X  d   V# \        SV `  W4      # r%   r   r0   r   rJ   _parse_valuer7   Ztr3   rN      &&&r   r   Z!RegistrationResponse._parse_valuex  .    S!D((Lw#A--r   c                	   < V'       d<   R V9   d5   \        V4      pVP                  R 4      pW!R,          8w  d   \        R4      h\        SV `  V4      # r   ZrawIdzid does not match rawIdr   Zpopr!   rJ   	from_dictr7   r   rD   rN   rO   r   r  ZRegistrationResponse.from_dict  H    DDL:D HHTNMW- !:;;w &&r   r   r9   r:   r;   r<   rj   r   r   r>   r   r   r   r   r   r   r   r=   r   r  r?   re   rf   rg   r   r   r   `  s     BM..?C<CFK=GC  %<$F$FD
!F  . . ' 'r   r   c                  r   )AuthenticationResponsei  a!  
Represents the AuthenticationResponse structure from the WebAuthn specification,
with fields modeled after the JSON serialization.

Serializing this object to JSON can be done by using json.dumps(dict(response)).

See: https://www.w3.org/TR/webauthn-3/#dictdef-authenticationresponsejson
Fr   r0   r   r   r   r   r   Nr   r   r   r   r   r   r   c                	r   r   r   r   r   r   r   Z$AuthenticationResponse.__post_init__  r   r   c                	r   r%   r   r   r  r   r   Z#AuthenticationResponse._parse_value  r  r   c                	r  r  r  r  rO   r   r  Z AuthenticationResponse.from_dict  r  r   r   r	  rf   rg   r   r
  r
    s     BM,,?C<CFK=GC  %<$F$FD
!F  . . ' 'r   r
  c                  "    ] tR tRt$ R]R&   RtR# )CredentialCreationOptionsi  r   rE   r   Nr   r   r   r   r  r    s    22r   r  c                  r  )CredentialRequestOptionsi  r   rE   r   Nr   r   r   r   r  r    s    11r   r  s                   )<Z
__future__r    r   r\   Zdataclassesr   r   Zenumr   r   r   r   Ztypingr   r   r	   r
   r5   r   Zcoser   r   Zutilsr   r   r   r   r   r   r   r&   rB   rh   r   r   r   r0   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
  r  r  r   r   r   <module>r     s  8 #   ( 0 0 / /    $U . Z  d#IQU IQ $IQX d#s< s< $s<l d#6
 6
 $6
r d#8% 8 $8v)h )#t  k    +      [     &k & &
 [   k   k  J eD$/C/ C 0C eD$/$O $ 0$ eD$/O  0
 eD$/?O ? 0? eD$/
_ 
 0
4 eD$/0 0 00 eD$/0 0 00 eD$/* * 0*
 eD$/%_ % 0%  GCH,=   F eD$/%'? %' 0%'P eD$/%'_ %' 0%'P eD$/3 3 03 eD$/2 2 02r   