+
     hNo  c                  s
  a  0 t $ R t^ RIHt ^ RIt^ RIHtHt ^ RIHtH	t	H
t
HtHtHt ^ RIHtHt ^ RIHtHtHt ]! ]4      t]P,                  ! ]P.                  4      t]P2                  t]P6                  t ! R R4      t ! R	 R
]P<                  4      t ! R R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] ]4      4       t'] ! R R] ]4      4       t( ! R R]P<                  4      t) ! R R ]P<                  4      t* ! R! R"]P<                  4      t+ ! R# R$]P<                  4      t, ! R% R&]P<                  4      t- ! R' R(]P<                  4      t. ! R) R*]P<                  4      t/ ! R+ R,]P<                  4      t0 ! R- R.]P<                  4      t1 ! R/ R0]P<                  4      t2 ! R1 R2]P<                  4      t3 ! R3 R4]P<                  4      t4 ! R5 R6]P<                  4      t5 ! R7 R8]P<                  4      t6 ! R9 R:]P<                  4      t7 ! R; R<]P<                  4      t8 ! R= R>]P<                  4      t9 ! R? R@]P<                  4      t: ! RA RB]P<                  4      t; ! RC RD]P<                  4      t< ! RE RF]P<                  4      t=]P|                  t>]P~                  t@]@P                  4       tB]P,                  ! ]P                  4      .]@P                  nE        ]>]@P                  nF        ]
]P,                  ! ],4      ]P,                  ! ]-4      ]P,                  ! ]*4      ]P,                  ! ]+4      ]P,                  ! ]<4      ]P,                  ! ]P,                  ! ]=4      4      .]@P                  nE        ]>]@P                  nF        ]
]]P,                  ! ]+4      ]P,                  ! ]:4      ]P,                  ! ]P,                  ! ];4      4      .]@P                  nE        ]>]@P                  nF        ]P,                  ! ]=4      .]@P                  nE        ]P,                  ! ];4      .]@P                  nE        ]P,                  ! ]4      .]@P                  nE        ]>]@P                  nF        ]P,                  ! ]4      .]@P                  nE        ]>]@P                  nF        ]>.]@P                  nE        ]]@P                  nF        ^R$^R&^R"^R^R:^R(^RD^R@^RG^RF^RB^/^/ ^RD^R@^RF^RB^/^RD^R@^RB^RH^/^RH^/^RD^RF^RB^/^RD^R@^RF^RB^//tNRI]ORJ&   RK RL ltPR# )MzR
Structs based on Microsoft's WebAuthN API.
https://github.com/microsoft/webauthn
)annotationsN)LibraryLoaderWinDLL)BOOLDWORDHWNDLONGLPCWSTRWORD)IntEnumunique)AnyMappingSequencec                  s8    ] tR t^;tRtR R ltR tR R ltRtR# )	BytesPropertyzProperty for structs storing byte arrays as DWORD + PBYTE.

Allows for easy reading/writing to struct fields using Python bytes objects.
c                   V ^8  d   QhRR/# )   namestr Zformat   "9/usr/lib/python3.14/site-packages/fido2/client/win_api.py__annotate__BytesProperty.__annotate__A   s     " "S "    c                	s>    R V,           V n         RV,           V n        R# )ZcbZpbNcbNamepbName)selfr      &&r   __init__ZBytesProperty.__init__A   s    TkTkr   c           
     	s|    \        \        \        WP                  4      R \        WP                  4       4      4      # N)bytesZ	bytearraygetattrr   r   )r   instanceZowner   &&&r   __get__ZBytesProperty.__get__E   s1    gh45Uwx7UVW
 	
r   c               r   )r   valuebytes | Noner   r   r   r   r   r   J   s     C C| Cr   c                	s    V'       d   \        V4      M^ pV'       d   \        P                  ! V4      M^ p\        WP                  V4       \        WP
                  \        P                  ! V\        4      4       R# )i    N)lenctypesZcreate_string_bufferZsetattrr   r   castPBYTE)r   r#   r&   ZlnZbuffers   &&&  r   __set__ZBytesProperty.__set__J   sJ     SZa7<,,U3!++r*++v{{65'ABr   r   N)	__name__
__module____qualname____firstlineno____doc__r   r%   r,   __static_attributes__r   r   r   r   r   ;   s    
"

C Cr   r   c                  s    ] tR t^QtRtR]P                  3R]P                  3R]P                  3R]P                  ^,          3.t	R t
RtR# )	GUIDzGUID Type in C++.Data1Data2Data3Data4c                	s   R V P                   V P                  V P                  V P                  ^ ,          R,          V P                  ^,          ,           V P                  ^,          R,          V P                  ^,          R,          ,           V P                  ^,          R,          ,           V P                  ^,          R,          ,           V P                  ^,          R,          ,           V P                  ^,          ,           3,          # )z{%08X-%04X-%04X-%04X-%012X}i   l        l        i   i   )r4   r5   r6   r7   r      &r   __str__ZGUID.__str__[   s    ,JJJJJJJJqMC$**Q-/JJqMV$jjmv&'jjmv&' jjmv&' jjmc!	"
 jjm0
 
 	
r   r   N)r-   r.   r/   r0   r1   r)   Zc_ulongZc_ushortc_ubyte_fields_r:   r2   r   r   r   r3   r3   Q   sH     
&..!	&//"	&//"	&..1$%	H
r   r3   c                  s,    ] tR t^jt]R R l4       tRtR# )_FromStringc               r   )r   r&   r   r   r   r   r   r   Z_FromString.__annotate__l   s     = = =r   c                	sT    \        WP                  4       P                  R R4      4      # )Z-Z_)r"   ZupperZreplace)Zclsr&   r   r   from_stringZ_FromString.from_stringk   s     sKKM11#s;<<r   r   N)r-   r.   r/   r0   Zclassmethodr>   r2   r   r   r   r=   r=   j   s    = =r   r=   c                  s*    ] tR t^ptRt^ t^t^t^tRt	R# )#WebAuthNUserVerificationRequirementzuMaps to WEBAUTHN_USER_VERIFICATION_REQUIREMENT_*.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L335
r   N)
r-   r.   r/   r0   r1   ANYREQUIRED	PREFERREDDISCOURAGEDr2   r   r   r   r?   r?   p   s    
 CHIKr   r?   c                  s*    ] tR t^}tRt^ t^t^t^tRt	R# )'WebAuthNAttestationConveyancePreferencezyMaps to WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_*.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L340
r   N)
r-   r.   r/   r0   r1   r@   NONEZINDIRECTZDIRECTr2   r   r   r   rD   rD   }   s    
 CDHFr   rD   c                  s*    ] tR t^tRt^ t^t^t^tRt	R# )WebAuthNAuthenticatorAttachmentzpMaps to WEBAUTHN_AUTHENTICATOR_ATTACHMENT_*.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L330
r   N)
r-   r.   r/   r0   r1   r@   ZPLATFORMZCROSS_PLATFORMZCROSS_PLATFORM_U2F_V2r2   r   r   r   rF   rF      s    
 CHNr   rF   c                  s6    ] tR t^tRt^ t^t^t^t^t	^t
^tRtR# )WebAuthNCTAPTransportzfMaps to WEBAUTHN_CTAP_TRANSPORT_*.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L225
r   N)r-   r.   r/   r0   r1   r@   ZUSBZNFCZBLEZTESTZINTERNALZ
FLAGS_MASKr2   r   r   r   rG   rG      s,    
 C
C
C
CDHJr   rG   c                  s&    ] tR t^tRt^ t^t^tRtR# )WebAuthNEnterpriseAttestationznMaps to WEBAUTHN_ENTERPRISE_ATTESTATION_*.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L401
r   N)	r-   r.   r/   r0   r1   rE   ZVENDOR_FACILITATEDZPLATFORM_MANAGEDr2   r   r   r   rH   rH      s    
 Dr   rH   c                  s&    ] tR t^tRt^ t^t^tRtR# )WebAuthNLargeBlobSupportzjMaps to WEBAUTHN_LARGE_BLOB_SUPPORT_*.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L405
r   N)	r-   r.   r/   r0   r1   rE   rA   rB   r2   r   r   r   rI   rI      s    
 DHIr   rI   c                  s*    ] tR t^tRt^ t^t^t^tRt	R# )WebAuthNLargeBlobOperationzlMaps to WEBAUTHN_LARGE_BLOB_OPERATION_*.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L478
r   N)
r-   r.   r/   r0   r1   rE   ZGETZSETZDELETEr2   r   r   r   rJ   rJ      s    
 D
C
CFr   rJ   c                  s*    ] tR t^tRt^ t^t^t^tRt	R# )WebAuthNUserVerificationziMaps to WEBAUTHN_USER_VERIFICATION_*.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L482
r   N)
r-   r.   r/   r0   r1   r@   ZOPTIONALZ OPTIONAL_WITH_CREDENTIAL_ID_LISTrA   r2   r   r   r   rK   rK      s    
 CH'($Hr   rK   c                  s<    ] tR t^tRtR]3R]3R]3.tR R lt	Rt
R# )	WebAuthNCoseCredentialParameterzMaps to WEBAUTHN_COSE_CREDENTIAL_PARAMETER Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L185

:param cred_params: Dict of Credential parameters.
	dwVersionpwszCredentialTypelAlgc               r   )r   cred_paramsMapping[str, Any]r   r   r   r   r   Z,WebAuthNCoseCredentialParameter.__annotate__   s     ' '$5 'r   c                	s    \        V P                  P                  4      V n        VR ,          V n        VR,          V n        R# )typeZalgN)get_version	__class__r-   rM   rN   rO   )r   rP   r   r   r   Z(WebAuthNCoseCredentialParameter.__init__   s1    $T^^%<%<="-f"5&	r   )rM   rO   rN   N)r-   r.   r/   r0   r1   r   r   r   r<   r   r2   r   r   r   rL   rL      s1     
e	w'	H' 'r   rL   c                  sV    ] tR t^tRtR]3R]P                  ! ]4      3.t	R R lt
RtR# ) WebAuthNCoseCredentialParameterszMaps to WEBAUTHN_COSE_CREDENTIAL_PARAMETERS Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L191

:param params: List of Credential parameter dicts.
cCredentialParameterspCredentialParametersc               r   )r   paramsSequence[Mapping[str, Any]]r   r   r   r   r   Z-WebAuthNCoseCredentialParameters.__annotate__   s     
 
: 
r   c                	r    \        V4      V n        \        \        V4      ,          ! R  V 4       !  V n        R# )c              3  8   "   T F  p\        V4      x  K  	  R # 5ir    )rL   ).0Zparam   & r   	<genexpr>Z<WebAuthNCoseCredentialParameters.__init__.<locals>.<genexpr>   s     I&-e44&   N)r(   rV   rL   rW   )r   rX   r   r   r   Z)WebAuthNCoseCredentialParameters.__init__   s,    %(["&EF&SI&I&
"r   )rV   rW   N)r-   r.   r/   r0   r1   r   r)   POINTERrL   r<   r   r2   r   r   r   rU   rU      s4     
!%(	 &..1P"QRH

 
r   rU   c                  R    ] tR tRtRtR]3R]3R]3R]3.t]	! R4      t
R R	 ltR
tR# )WebAuthNClientDatai  zMaps to WEBAUTHN_CLIENT_DATA Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L153

:param client_data_json: ClientData serialized as JSON bytes.
rM   ZcbClientDataJSONZpbClientDataJSONpwszHashAlgIdZClientDataJSONc               r   )r   client_data_jsonr!   r   r   r   r   r   ZWebAuthNClientData.__annotate__  s     ' ' 'r   c                	sh    \        V P                  P                  4      V n        Wn        R V n        R# )zSHA-256N)rS   rT   r-   rM   rd   rc   )r   rd   r   r   r   ZWebAuthNClientData.__init__  s&    $T^^%<%<= 0&r   )rd   rM   rc   N)r-   r.   r/   r0   r1   r   r+   r   r<   r   rd   r   r2   r   r   r   rb   rb     sH     
e	U#	U#	'"	H %%56' 'r   rb   c                  sB    ] tR tRtRtR]3R]3R]3R]3.tR R ltR	t	R
# )WebAuthNRpEntityInformationi  zMaps to WEBAUTHN_RP_ENTITY_INFORMATION Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L98

:param rp: Dict of RP information.
rM   pwszIdpwszNamepwszIconc               r   )r   rprQ   r   r   r   r   r   Z(WebAuthNRpEntityInformation.__annotate__'  s     ' ', 'r   c                	s    \        V P                  P                  4      V n        VR ,          V n        VR,          V n        VP                  R4      V n        R# )idr   iconN)rS   rT   r-   rM   rf   rg   getrh   )r   ri   r   r   r   Z$WebAuthNRpEntityInformation.__init__'  s=    $T^^%<%<=h6
vr   )rM   rh   rf   rg   N)
r-   r.   r/   r0   r1   r   PCWSTRr<   r   r2   r   r   r   re   re     s:     
e	6	V	V	H' 'r   re   c                  s^    ] tR tRtRtR]3R]3R]3R]3R]3R]3.t]	! R	4      t
R
 R ltRtR# )WebAuthNUserEntityInformationi.  zMaps to WEBAUTHN_USER_ENTITY_INFORMATION Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L127

:param user: Dict of User information.
rM   cbIdpbIdrg   rh   pwszDisplayNameIdc               r   )r   userrQ   r   r   r   r   r   Z*WebAuthNUserEntityInformation.__annotate__A  s     7 7. 7r   c                	s    \        V P                  P                  4      V n        VR ,          V n        VR,          V n        VP                  R4      V n        VP                  R4      V n        R# )rj   r   rk   ZdisplayNameN)	rS   rT   r-   rM   rj   rg   rl   rh   rq   )r   rs   r   r   r   Z&WebAuthNUserEntityInformation.__init__A  sO    $T^^%<%<=t*V(#xx6r   )rM   rj   rq   rh   rg   N)r-   r.   r/   r0   r1   r   r+   rm   r<   r   rj   r   r2   r   r   r   rn   rn   .  sT     
e			V	V	F#H 
t	B7 7r   rn   c                  sX    ] tR tRtRtR]3R]3R]3R]3R]3.t]	! R4      t
R	 R
 ltRtR# )WebAuthNCredentialExiI  zMaps to WEBAUTHN_CREDENTIAL_EX Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L250

:param cred: Dict of Credential Descriptor data.
rM   ro   rp   rN   dwTransportsrr   c               r   r   credrQ   r   r   r   r   r   Z!WebAuthNCredentialEx.__annotate__[  s     P P. Pr   c                	s    \        V P                  P                  4      V n        VR ,          V n        VR,          V n        \        VP                  RR4      ,          V n        R# )rj   rR   Z	transportr@   N)	rS   rT   r-   rM   rj   rN   rG   rl   ru   r   rw   r   r   r   ZWebAuthNCredentialEx.__init__[  sG    $T^^%<%<=t*"&v,1$((;2NOr   )ru   rM   rj   rN   Nr-   r.   r/   r0   r1   r   r+   r   r<   r   rj   r   r2   r   r   r   rt   rt   I  sN     
e			w'	H 
t	BP Pr   rt   c                  sv    ] tR tRtRtR]3R]P                  ! ]P                  ! ]4      4      3.t	R R lt
RtR# )	WebAuthNCredentialListib  zMaps to WEBAUTHN_CREDENTIAL_LIST Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L261

:param credentials: List of dict of Credential Descriptor data.
cCredentialsppCredentialsc               r   r   credentialsrY   r   r   r   r   r   Z#WebAuthNCredentialList.__annotate__o       
 
$? 
r   c                	s    \        V4      V n        \        P                  ! \        4      \        V4      ,          ! R  V 4       !  V n        R# )c              3  s`   "   T F$  p\         P                  ! \        V4      4      x  K&  	  R # 5ir    )r)   pointerrt   r\   rw   r]   r   r^   Z2WebAuthNCredentialList.__init__.<locals>.<genexpr>r  s"     Q[Tfnn1$788[s   ,.N)r(   r{   r)   r`   rt   r|   r   r~   r   r   r   ZWebAuthNCredentialList.__init__o  s8    ,$nn-ABSEUUQ[Q
r   )r{   r|   N)r-   r.   r/   r0   r1   r   r)   r`   rt   r<   r   r2   r   r   r   rz   rz   b  s=     
	&..8L)MNOH

 
r   rz   c                  sb    ] tR tRtR]3R]3R]3R]3.t]! R4      t]! R4      t	RR	 R
 llt
RtR# )WebAuthNHmacSecretSaltiv  ZcbFirstZpbFirstZcbSecondZpbSecondZFirstZSecondNc                    V ^8  d   QhRRRR/# )r   firstr!   secondr'   r   r   r   r   r   Z#WebAuthNHmacSecretSalt.__annotate__  s      e \ r   c                	    Wn         W n        R # r    r   r   )r   r   r   r$   r   r   ZWebAuthNHmacSecretSalt.__init__  s    
r   r   r    )r-   r.   r/   r0   r   r+   r<   r   r   r   r   r2   r   r   r   r   r   v  sI    	E	E	U	U	H '"E8$F r   r   c                  sh    ] tR tRtR]3R]3R]P                  ! ]4      3.t	]
! R4      tR R ltRtR	# )
WebAuthNCredWithHmacSecretSalti  ZcbCredIDZpbCredIDpHmacSecretSaltZCredIDc               r   )r   cred_idr!   saltr   r   r   r   r   r   Z+WebAuthNCredWithHmacSecretSalt.__annotate__  s     4 4 4-C 4r   c                	sH    Wn         \        P                  ! V4      V n        R # r    )r   r)   r   r   )r   r   r   r$   r   r   Z'WebAuthNCredWithHmacSecretSalt.__init__  s    %~~d3r   )r   r   N)r-   r.   r/   r0   r   r+   r)   r`   r   r<   r   r   r   r2   r   r   r   r   r     sA    	U	U	FNN+ABCH H%G4 4r   r   c                  s~    ] tR tRtR]P
                  ! ]4      3R]3R]P
                  ! ]4      3.t	. 3R R llt
RtR# )	WebAuthNHmacSecretSaltValuesi  pGlobalHmacSaltcCredWithHmacSecretSaltListpCredWithHmacSecretSaltListc               r   )r   global_saltzWebAuthNHmacSecretSalt | Nonecredential_saltsz(Sequence[WebAuthNCredWithHmacSecretSalt]r   r   r   r   r   Z)WebAuthNHmacSecretSaltValues.__annotate__  s      2 Cr   c                	s    V'       d   \         P                  ! V4      V n        \        V4      V n        \
        \        V4      ,          ! V!  V n        R # r    )r)   r   r   r(   r   r   r   )r   r   r   r$   r   r   Z%WebAuthNHmacSecretSaltValues.__init__  sA    
 #)>>+#>D +./?+@(*S1A-BB,(r   )r   r   r   N)r-   r.   r/   r0   r)   r`   r   r   r   r<   r   r2   r   r   r   r   r     sF    	FNN+ABC	&.	&7U(VWH FH r   r   c                  s6    ] tR tRtRtR]3R]3.tR R ltRt	R# )	WebAuthNCredProtectExtensionIni  zvMaps to WEBAUTHN_CRED_PROTECT_EXTENSION_IN Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L493
dwCredProtectbRequireCredProtectc               r   )r   cred_protectrK   require_cred_protectboolr   r   r   r   r   Z+WebAuthNCredProtectExtensionIn.__annotate__  s     8 848LP8r   c                	r   r    )r   r   )r   r   r   r$   r   r   Z'WebAuthNCredProtectExtensionIn.__init__  s     *#7 r   )r   r   N)
r-   r.   r/   r0   r1   r   r   r<   r   r2   r   r   r   r   r     s*     
% 	%H
8 8r   r   c                  sB    ] tR tRtR]3R]3.t]! R4      tR R lt	Rt
R# )	WebAuthNCredBlobExtensioni  Z
cbCredBlobZ
pbCredBlobZCredBlobc               r   )r   blobr!   r   r   r   r   r   Z&WebAuthNCredBlobExtension.__annotate__  s      U r   c                	s    Wn         R # r    	cred_blob)r   r   r   r   r   Z"WebAuthNCredBlobExtension.__init__  s    r   r   N)r-   r.   r/   r0   r   r+   r<   r   r   r   r2   r   r   r   r   r     s/    	u	uH
 j)I r   r   c                  s<    ] tR tRtRtR]3R]3R]3.tR R lt	Rt
R	# )
WebAuthNExtensioni  zfMaps to WEBAUTHN_EXTENSION Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L317
pwszExtensionIdentifiercbExtensionpvExtensionc               r   )r   
identifierr   r&   r   r   r   r   r   r   ZWebAuthNExtension.__annotate__  s     E E3 Es Er   c                	s    Wn         \        P                  ! V4      V n        \        P                  ! \        P
                  ! V4      \        4      V n        R # r    )r   r)   Zsizeofr   r*   r   PVOIDr   )r   r   r&   r$   r   r   ZWebAuthNExtension.__init__  s5    '1$!==/!;;v~~e'<eDr   )r   r   r   N)r-   r.   r/   r0   r1   r   r   r   r<   r   r2   r   r   r   r   r     s4     
#G,		HE Er   r   c                  V    ] tR tRtRtR]3R]P                  ! ]4      3.t	R R lt
RtR# )	WebAuthNExtensionsi  zgMaps to WEBAUTHN_EXTENSIONS Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L324
cExtensionspExtensionsc               r   )r   
extensionsSequence[WebAuthNExtension]r   r   r   r   r   ZWebAuthNExtensions.__annotate__  s     N N#> Nr   c                	sd    \        V4      V n        \        \        V4      ,          ! V!  V n        R # r    )r(   r   r   r   )r   r   r   r   r   ZWebAuthNExtensions.__init__  s$    z?-J?*Mr   )r   r   N)r-   r.   r/   r0   r1   r   r)   r`   r   r<   r   r2   r   r   r   r   r     s6     
	'89:H
N Nr   r   c                  ra   )WebAuthNCredentiali  zMaps to WEBAUTHN_CREDENTIAL Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L212

:param cred: Dict of Credential Descriptor data.
rM   ro   rp   rN   rr   c               r   rv   r   r   r   r   r   ZWebAuthNCredential.__annotate__  s     / /. /r   c                	s>    VR ,          V n         VR,          V n        R# )rj   rR   Nrj   rN   rx   r   r   r   ZWebAuthNCredential.__init__  s    t*"&v,r   r   Nry   r   r   r   r   r     sD     
e			w'	H 
t	B/ /r   r   c                  r   )	WebAuthNCredentialsi  zMaps to WEBAUTHN_CREDENTIALS Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L219

:param credentials: List of dict of Credential Descriptor data.
r{   pCredentialsc               r   r}   r   r   r   r   r   Z WebAuthNCredentials.__annotate__  r   r   c                	rZ   )c              3  r[   r    )r   r   r]   r   r^   Z/WebAuthNCredentials.__init__.<locals>.<genexpr>  s     ?;4 &&;r_   N)r(   r{   r   r   r   r   r   r   ZWebAuthNCredentials.__init__  s.    ,/#k2BB?;?
r   )r{   r   N)r-   r.   r/   r0   r1   r   r)   r`   r   r<   r   r2   r   r   r   r   r     s4     
	(:;<H

 
r   r   c                  s    ] tR tRtRtR]3R]3R]3R]3R]3R]3R	]3R
]3R]3R]3R]3.t	]
! R4      t]
! R4      t]
! R4      t]
! R4      tRtR# )CtapCborHybridStorageLinkedDatai  zwMaps to CTAPCBOR_HYBRID_STORAGE_LINKED_DATA Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L356
rM   ZcbContactIdZpbContactIdZcbLinkIdZpbLinkIdZcbLinkSecretZpbLinkSecretZcbPublicKeyZpbPublicKeyZpwszAuthenticatorNameZwEncodedTunnelServerDomainZ	ContactIdZLinkIdZ
LinkSecretZ	PublicKeyr   N)r-   r.   r/   r0   r1   r   r+   rm   r   r<   r   Z
contact_idZlink_idZlink_secretZ
public_keyr2   r   r   r   r   r     s     
e			U	U					 &)	%t,H {+JH%G-K{+Jr   r   c                  s   ] tR tRtRtR]3R]3R]3R]3R]3R]3R	]3R
]3R]	P                  ! ]4      3R]	P                  ! ]4      3R]	P                  ! ]4      3R]3R]3R]3R]	P                  ! ]4      3R]3R]	P                  ! ]4      3R]3R]3R]3.t]! R4      t]! R4      t^ ]P,                  ]P0                  . R]P4                  RR. ^ RR3R R lltRtR# )WebAuthNGetAssertionOptionsi-  a  Maps to WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L452

:param timeout: Time that the operation is expected to complete within.
    This is used as guidance, and can be overridden by the platform.
:param attachment: Platform vs Cross-Platform
    Authenticators.
:param uv_requirement: User Verification Requirement.
:param credentials: Allowed Credentials List.
rM   dwTimeoutMillisecondsCredentialList
ExtensionsdwAuthenticatorAttachmentdwUserVerificationRequirementdwFlagspwszU2fAppId
pbU2fAppIdpCancellationIdpAllowCredentialListdwCredLargeBlobOperationcbCredLargeBlobpbCredLargeBlobpHmacSecretSaltValuesbBrowserInPrivateModepLinkedDeviceZ	bAutoFill	cbJsonExt	pbJsonExtCredLargeBlobJsonExtNc               sH    V ^8  d   Qh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   timeoutint
attachmentuv_requirementr~   rY   cancellationIdGUID | Nonecred_large_blob_operationcred_large_blobr'   hmac_secret_saltsz#WebAuthNHmacSecretSaltValues | Noner   r   flags	u2f_appidz
str | Noneu2f_appid_usedzBOOL | Noner   r   r   r   r   Z(WebAuthNGetAssertionOptions.__annotate__T  s     +K +K+K +K 	+K
 1+K $+K $'+K &+K ?+K 0+K +K +K $+Kr   c                	s   \        V P                  P                  4      V n        Wn        W n        W0n        Wn        V	'       d   \        V	4      V n	        V P                  ^8  d&   Wn
        Ve   \        P                  ! V4      V n        V P                  ^8  d$   V'       d   \        P                  ! V4      V n        V P                  ^8  d(   \        V4      p\        P                  ! V4      V n        M\#        V4      V n        V P                  ^8  d   W`n        Wpn        V P                  ^8  d(   V'       d   \        P                  ! V4      V n        R# R# R# r   N)rS   rT   r-   rM   r   r   r   r   r   r   r   r)   r   r   r   rz   r   r   r   r   r   r   )r   r   r   r   r~   r   r   r   r   r   r   r   r   Zclists   &&&&&&&&&&&&& r   r   Z$WebAuthNGetAssertionOptions.__init__T  s     %T^^%<%<=%,")3&-;*0<DO>>Q ))"(.."@>>Q>#)>>.#AD >>Q*;7E(.u(=D%"5k"BD>>Q,E)#2 >>Q#4)/8I)JD& $5r   )r   r   r   r   r   r   r   r   rM   r   r   r   r   r   )r-   r.   r/   r0   r1   r   r   r   rm   r)   r`   r   r3   rz   r+   r   r   r<   r   r   json_extrF   r@   r?   rC   rJ   rE   r   r2   r   r   r   r   r   -  s<   
 
e	 %(	./	)*	$e,	(%0	E	 	v~~d+,	FNN401	0F!GH	#U+	E"	E"	 &..1M"NO	 $'	&..)HIJ	d	e	e)H. $O4OY'H 9==AMM35&*)C)H)H(,AE24 $&*+K +Kr   r   c                  s    ] tR tRtRtR]3R]3R]3R]3R]3R]3R	]3R
]3R]3R]3R]3R]3R]	P                  ! ]4      3R]3R]3R]3.t]! R4      t]! R4      t]! R4      t]! R4      t]! R4      tR tRtR# )WebAuthNAssertioni  zfMaps to WEBAUTHN_ASSERTION Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L616
rM   cbAuthenticatorDatapbAuthenticatorDataZcbSignatureZpbSignatureZ
CredentialZcbUserIdZpbUserIdr   r   r   ZdwCredLargeBlobStatusZpHmacSecretZdwUsedTransportscbUnsignedExtensionOutputspbUnsignedExtensionOutputsAuthenticatorDataZ	SignatureZUserIdr   UnsignedExtensionOutputsc                	X    \         P                  \        P                  ! V 4      4       R # r    )WEBAUTHNWebAuthNFreeAssertionr)   byrefr8   r9   r   __del__ZWebAuthNAssertion.__del__  s    &&v||D'9:r   r   N)r-   r.   r/   r0   r1   r   r+   r   r   r)   r`   r   r<   r   	auth_dataZ	signatureZuser_idr   unsigned_extension_outputsr   r2   r   r   r   r   r     s     
e	&	&			)*	U	U	)*	E"	E"	 %(	'=>?	U#	%u-	%u-!H& 12Ik*IH%G#O4O!./I!J;r   r   c                  s   ] tR tRtRtR]3R]3R]3R]3R]3R]3R	]3R
]3R]3R]	P                  ! ]4      3R]	P                  ! ]4      3R]3R]3R]3R]3R]3R]	P                  ! ]4      3R]3R]3.t]! R4      t^ R]P&                  ]P*                  ]P&                  . R]P0                  ]P0                  RR. 3R R lltRtR# )WebAuthNMakeCredentialOptionsi  aT  maps to WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L394

:param timeout: Time that the operation is expected to complete within.This
    is used as guidance, and can be overridden by the platform.
:param require_resident_key: Require key to be resident or not.
:param attachment: Platform vs Cross-Platform
    Authenticators.
:param user_verification_requirement: User
    Verification Requirement.
:param attestation_convoyence:
    Attestation Conveyance Preference.
:param credentials: Credentials used for exclusion.
rM   r   r   r   r   bRequireResidentKeyr   !dwAttestationConveyancePreferencer   r   pExcludeCredentialListdwEnterpriseAttestationdwLargeBlobSupportbPreferResidentKeyr   
bEnablePrfr   r   r   r   FNc               sH    V ^8  d   Qh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   r   require_resident_keyr   r   r   attestation_convoyencer~   rY   r   r   enterprise_attestationlarge_blob_supportprefer_resident_key
enable_prfr   r   r   r   r   r   r   Z*WebAuthNMakeCredentialOptions.__annotate__  s     )) )))) #)) 	))
 )) !$)) 1)) $)) !$))  )) ")) )) 0))r   c                	s&   \        V P                  P                  4      V n        Wn        W n        W0n        W@n        WPn        V'       d   \        V4      V n
        V P                  ^8  d$   V'       d   \        P                  ! V4      V n        V P                  ^8  d&   \        P                  ! \        V4      4      V n        M\!        V4      V n        V P                  ^8  d   Wn        Wn        Wn        V P                  ^8  d	   Wn        R# R# r   )rS   rT   r-   rM   r   r   r   r   r   r   r   r)   r   r   rz   r   r   r   r   r   r   r   )r   r   r   r   r   r   r~   r   r   r   r   r   r   s   &&&&&&&&&&&&&r   r   Z&WebAuthNMakeCredentialOptions.__init__  s     %T^^%<%<=%,"#7 )3&-;*1G.0<DO>>Q>#)>>.#AD >>Q*0..&{3+D' #6k"BD>>Q+A(&8#&9#>>Q(O r   )r   r   r   r   r   r   r   r   r   r   r   rM   r   r   )r-   r.   r/   r0   r1   r   r   r   r   r)   r`   r3   rz   r   r+   r<   r   r   rF   r@   r?   rC   rD   rH   rE   rI   r   r2   r   r   r   r   r     s!   " 
e	 %(	./	)*	$e,	%	(%0	,e4	E	FNN401	!6>>2H#IJ	"E*	u%	t$	 $'	t	&..)HIJ	e	e'H, Y'H %*9==AMM&M&Q&Q35&*&C&H&H":"?"?$) 24)) ))r   r   c                  s    ] tR tRtRtR]3R]3R]3R]3R]3R]3R	]3R
]3R]3R]3R]3R]3R]3R]3R]	3R]	3R]	3R]	3R]3R]3.t
]! R4      t]! R4      t]! R4      t]! R4      t]! R4      tR tRtR# )WebAuthNCredentialAttestationi  zsMaps to WEBAUTHN_CREDENTIAL_ATTESTATION Struct.

https://github.com/microsoft/webauthn/blob/master/webauthn.h#L582
rM   ZpwszFormatTyper   r   ZcbAttestationZpbAttestationZdwAttestationDecodeTypeZpvAttestationDecodeZcbAttestationObjectZpbAttestationObjectZcbCredentialIdZpbCredentialIdr   ZdwUsedTransportZbEpAttZbLargeBlobSupportedZbResidentKeyZbPrfEnabledr   r   r   ZAttestationZAttestationObjectZCredentialIdr   c                	r   r    )r   !WebAuthNFreeCredentialAttestationr)   r   r8   r9   r   r   Z%WebAuthNCredentialAttestation.__del__  s    226<<3EFr   r   N)r-   r.   r/   r0   r1   r   r   r+   r   r   r<   r   r   ZattestationZattestation_objectZcredential_idr   r   r2   r   r   r   r   r     s     
e	7#	&	&	% 	% 	"E*	&	&	&	5!	5!	)*	E"	4	%			%u-	%u-)H. 12I.K&':;!.1M!./I!JGr   r   ZWebAuthNCommonAttestationZWebAuthNCredentialDetailszMapping[int, Mapping[str, int]]WEBAUTHN_STRUCT_VERSIONSc               r   )r   
class_namer   Zreturnr   r   r   r   r   r   r   {  s     + +C +C +r   c                s    \        \        ^ R4       F8  pV\        9   g   K  V \        V,          9   g   K$  \        V,          V ,          u # 	  \        R4      h)zrGet version of struct.

:param str class_name: Struct class name.
:returns: Version of Struct to use.
:rtype: int
zUnknown class namei)ZrangeWEBAUTHN_API_VERSIONr   Z
ValueError)r   Zapi_versionr]   r   rS   rS   {  sM     11b9336{CC+K8DD : )
**r   )Q__conditional_annotations__r1   Z
__future__r    r)   r   r   Zctypes.wintypesr   r   r   r   r   r   Zenumr	   r
   Ztypingr   r   r   Zwindllr`   r;   r+   Z	c_wchar_prm   Zc_void_pr   r   Z	Structurer3   r=   r?   rD   rF   rG   rH   rI   rJ   rK   rL   rU   rb   re   rn   rt   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ZHRESULTZwebauthnr   ZWebAuthNGetApiVersionNumberr   Zc_boolZ5WebAuthNIsUserVerifyingPlatformAuthenticatorAvailableZargtypesZrestypeZ#WebAuthNAuthenticatorMakeCredentialZ!WebAuthNAuthenticatorGetAssertionr   r   ZWebAuthNGetCancellationIdZWebAuthNCancelCurrentOperationZWebAuthNGetErrorNamer   Z__annotations__rS   )r   s   @r   <module>r      s  : #  ( B B   ) )
 
v	 	v~~&			C C,
6 
2= = 	+w 	 	 	k7 	 	 	k7 	 	 K   K   {G   	g 	 	 	{G 	 	'f&6&6 '(
v'7'7 
(')) '.'&"2"2 ',7F$4$4 76P6++ P2
V-- 
(V--  4V%5%5 46#3#3 *8V%5%5 8$	 0 0 	E(( E$N)) N /)) /,
&** 
(,f&6&6 ,4RK&"2"2 RKj ;((  ;FR)F$4$4 R)j$GF$4$4 $GN ..??;;= 
 NN6==!K > > G JQ > > F 	
NN./
NN01
NN34
NN%&
NN01
NN6>>"?@A9 , , 5 8? , , 4 	
NN%&
NN./
NN6>>"3457 * * 3 6= * * 2 NN017 * * 3 ,2>>:K+L*M   '/5~~d/C.D " " +-4 " " *4:NN44H3I ' ' 029 ' ' /*1   &(.   % %q'a)1a'%q#Q'Q r'%q'Q	 '%qQ#Q	 #Q ''Q
 '%q'Q	G)= 9 )X+r   