+
     h0  c                  s"  a  0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
 ^RIHtHtHtHt ]P
                  R8X  g   Q h^ RIHtHt ]P$                  ! ]4      t]! ]4      t]P,                  t]P0                  t]P4                  t ! R R	]P8                  4      t]P<                  ! 4       ^ ,          R
8X  d   ^tMA]P<                  ! 4       ^ ,          R8X  d   ^tM!] ! R]P<                  ! 4       ^ ,           24      h ! R R]P8                  4      t! ! R R]P8                  4      t" ! R R]P8                  4      t# ! R R]P8                  4      t$]PJ                  t&]PJ                  t']PJ                  t(^^]PR                  ! ]PJ                  4      ,          ,          ^,
          t*^t+^t,^t-]P\                  t/Rt0Rt1Rt2^t3^t4R]Pj                  n6        ]Pn                  ! ]4      .]Pj                  n8        ]Pr                  ]Pt                  n6        ]']Pn                  ! ]#4      .]Pt                  n8        ]Pr                  ]Pv                  n6        ]']Pn                  ! ](4      .]Pv                  n8        ]Pr                  ]Px                  n6        ](.]Px                  n8        ]Pr                  ]Pz                  n6        ]']PJ                  ]P|                  .]Pz                  n8        ]Pr                  ]P~                  n6        ]']PJ                  ]P|                  .]P~                  n8        ]/]P                  n6        ](]Pn                  ! ]$4      .]P                  n8        ]P                  ]P                  n6        ]']PJ                  ]P|                  .]P                  n8        ]P                  ]P                  n6        ]']PJ                  ]P|                  .]P                  n8        ]Pn                  ! ]4      ]P                  ]P                  ]P                  .]P                  n8        ]&]P                  n6        ]P                  ]P                  n6        ]&]PJ                  ]Pn                  ! ]4      ]P                  ]Pn                  ! ]!4      .]P                  n8        ]P                  ]P                  n6        ]&]Pn                  ! ]!4      ]Pn                  ! ]"4      ]P                  ]Pn                  ! ]P                  4      ]PJ                  .]P                  n8        ]P                  ]P                  n6        ]&.]P                  n8        ]']P                  n6        ]P                  ]P                  ]P                  ]PJ                  ]P                  ]P                  ]'.]P                  n8        ]P                  ]P                  n6        ]'.]P                  n8         ! R R]4      tMR tNR tOR tPR tQR tR]
! ]]S! 4       4      tT/ tUR]VR &   R! tWR# )"    )annotationsN)LibraryLoaderwintypes)cast)
FIDO_USAGEFIDO_USAGE_PAGECtapHidConnectionHidDescriptorZwin32)WinDLLWinErrorc                  s    ] tR t^,tR]P
                  3R]P                  3R]P                  3R]P                  ^,          3.tRt	R# )GUIDZData1ZData2ZData3ZData4 N)
__name__
__module____qualname____firstlineno__ctypesc_ulongc_ushortZc_ubyte_fields___static_attributes__r       6/usr/lib/python3.14/site-packages/fido2/hid/windows.pyr   r   ,   s>    	&..!	&//"	&//"	&..1$%	Hr   r   Z64bitZ32bitzUnknown architecture: c                  s    ] tR t^BtR]P
                  3R]3R]P
                  3R]P                  ! ]P                  4      3.t
]tRtR# )DeviceInterfaceDatacbSizeZInterfaceClassGuidZFlagsReservedr   N)r   r   r   r   r   DWORDr   r   POINTERr   r   SETUPAPI_PACK_pack_r   r   r   r   r   r   B   sE    	8>>"	t$	(..!	V^^FNN34	H Fr   r   c                  s`    ] tR t^LtR]P
                  3R]P                  ^,          3.t]	t
RtR# )DeviceInterfaceDetailDatar   
DevicePathr   N)r   r   r   r   r   r   r   Zc_byter   r   r   r   r   r   r   r   r   L   s(    8>>*\6==1;L,MNHFr   r   c                  s    ] tR t^QtR]P
                  3R]P                  3R]P                  3R]P                  3.tRtR# )HidAttributesZSizeVendorID	ProductIDZVersionNumberr   N)	r   r   r   r   r   r   r   r   r   r   r   r   r!   r!   Q   s9    	 	V__%	foo&	&//*	Hr   r!   c            	      s    ] tR t^ZtR]P
                  3R]P
                  3R]P
                  3R]P
                  3R]P
                  3R]P
                  ^,          3R]P
                  ^
,          3.tRtR	# )
HidCapabilitiesUsage	UsagePageInputReportByteLengthOutputReportByteLengthZFeatureReportByteLengthr   ZNotUsedr   N)r   r   r   r   r   r   r   r   r   r   r   r$   r$   Z   sg    	&//"	foo&	 &//2	!6??3	"FOO4	V__r)*	FOOb()Hr   r$   i   i   @l        c                  s.    ] tR t^tR tR tR tR tRtR# )WinCtapHidConnectionc           	     	s    Wn         \        P                  VP                  \        \
        ,          \        \        ,          R \        ^ R 4      V n	        V P                  \        8X  d   \        4       hR # N)
descriptorkernel32CreateFileApathGENERIC_WRITEGENERIC_READFILE_SHARE_READFILE_SHARE_WRITEOPEN_EXISTINGhandleINVALID_HANDLE_VALUEr
   )selfr+   s   &&r   __init__ZWinCtapHidConnection.__init__   sY    $**OOL(..
 ;;..* /r   c                	sD    \         P                  V P                  4       R # r*   )r,   CloseHandler4   )r6      &r   closeZWinCtapHidConnection.close   s    T[[)r   c                	sv   R V,           p\         P                  ! 4       p\        P                  V P                  V\        V4      \        P                  ! V4      R4      pV'       g   \        4       hVP                  \        V4      8w  d/   \        RR\        V4      VP                  3,          ,           4      hR# )s    Nz"Failed to write complete packet.  zExpected %d, but got %d)r   r   r,   Z	WriteFiler4   lenr   byrefr
   valueOSError)r6   ZpacketZoutZnum_writtenrets   &&   r   write_packetZ!WinCtapHidConnection.write_packet   s    fnnn&  KKc#h[(A4
 *C(4+s3x9J9J.KKL  )r   c                	s   \         P                  ! V P                  P                  ^,           4      p\        P
                  ! 4       p\        P                  V P                  V\        V4      \         P                  ! V4      R4      pV'       g   \        4       hVP                  V P                  P                  ^,           8w  d   \        R4      hVP                  R,          # )   Nz.Failed to read full length report from device.:rA   NN)r   create_string_bufferr+   Zreport_size_inr   r   r,   ZReadFiler4   r;   r<   r
   r=   r>   Zraw)r6   bufZnum_readr?   s   &   r   read_packetZ WinCtapHidConnection.read_packet   s    ))$//*H*H1*LM>>#KKc#hX(>
 *>>T__;;a??JKKwwr{r   )r+   r4   N)	r   r   r   r   r7   r:   r@   rD   r   r   r   r   r)   r)      s    *r   r)   c                s    \        4       p\        P                  V \        P                  ! V4      4      pV'       g   \        4       hVP                  VP                  3# r*   )r!   hidHidD_GetAttributesr   r<   r
   r"   r#   )deviceZ
attributesresult   &  r   get_vid_pidrJ      sF    J##FFLL,DEFj
 4 444r   c           	         \         P                  ! ^4      p\        P                  W\         P                  ! \         P
                  ! V4      4      4      pV'       g   R# VP                  # i   N)r   create_unicode_bufferrE   HidD_GetProductStringr   sizeofr=   rG   rC   rH   rI   r   get_product_namerQ      sG    

&
&s
+C&&vFNN6==QTCU4VWF99r   c           	     rK   rL   )r   rM   rE   HidD_GetSerialNumberStringr   rO   r=   rP   rI   r   
get_serialrS      sK    

&
&s
+C++V^^FMM#$67F 99r   c           	     s   \         P                  V ^ \        \        ,          R\        ^ R4      pV\
        8X  d   \        4       h \        ^ 4      p\        P                  V\        P                  ! V4      4      pV'       g   \        4       h \        4       p\        P                  V\        P                  ! V4      4      pV\        8w  d   \        4       hVP                  \         8X  d   VP"                  \$        8X  d   \'        V4      w  rV\)        V4      p\+        V4      pVP,                  ^,
          p	VP.                  ^,
          p
\1        WWiWV4      \        P3                  V4       \         P5                  V4       # \7        R4      h  \        P3                  T4       i ; i  \         P5                  T4       i ; i)r    NzNot a CTAP device)r,   r-   r1   r2   r3   r5   r
   PHIDP_PREPARSED_DATArE   HidD_GetPreparsedDatar   r<   r$   HidP_GetCapsHIDP_STATUS_SUCCESSr&   r   r%   r   rJ   rQ   rS   r'   r(   r   HidD_FreePreparsedDatar8   
ValueError)r.   rG   Zpreparsed_datar?   ZcapsZvidZpidZproduct_nameZserialZsize_inZsize_outs   &          r   get_descriptorrZ     sc   !!	**	F %%j%-a0''^0LM*	7"$D"">6<<3EFC))j ~~0TZZ:5M&v./7#F+44q866:$sXV &&~6V$ 011 &&~6V$s,   AF& C	F F& F F##F& &F=c                s    \        V 4      # r*   )r)   )r+   r9   r   open_connectionr[   7  s    
++r   zdict[bytes, HidDescriptor]_descriptor_cachec            	     sp   \        \        4      p . p\        4       p\        P	                  \
        P                  ! V4      4       \        P                  \
        P                  ! V4      R R \        \        ,          4      p ^ p\        4       p\
        P                  ! \        4      Vn         \        P                  V^ \
        P                  ! V4      V\
        P                  ! V4      4      pV^,          pV'       g   EM\        P                   ! 4       p\        P#                  V\
        P                  ! V4      R ^ \
        P                  ! V4      R 4      pV'       d   \%        4       hVP&                  pV^ 8X  d   K  \
        P(                  ! V4      p	\*        P-                  V	4      p
\
        P                  ! \*        4      V
n        \        P#                  V\
        P                  ! V4      \
        P                  ! V
4      VR R 4      pV'       g   \%        4       h\
        P.                  ! V
P0                  4      pV P3                  V4       \        P5                  V4      pV'       d   V\6        Jd   VP9                  V4       EK   \;        V4      pV\        V&   VP9                  V4       EK  \        PE                  V4       V  F
  p\        V K  	  V#   \<         d     M(\>         d    \@        PC                  RTRR7        Mi ; i\6        \        T&   EKr    \        PE                  T4       i ; i)NTz$Failed reading HID descriptor for %s)Zexc_info)#Zsetr\   r   rE   HidD_GetHidGuidr   r<   setupapiSetupDiGetClassDevsADIGCF_DEVICEINTERFACEDIGCF_PRESENTr   rO   r   SetupDiEnumDeviceInterfacesr   r    SetupDiGetDeviceInterfaceDetailAr
   r=   rB   r   Zfrom_bufferZ	string_atr    ZdiscardZget_SKIPZappendrZ   rY   Z	ExceptionloggerZdebugSetupDiDestroyDeviceInfoList)ZstaleZdescriptorsZhid_guidZ
collectionZindexZinterface_inforH   Zdw_detail_lenZ
detail_lenrC   Zinterface_detailr.   Zdescr+   s                 r   list_descriptorsrg   ?  s   !"EKvHX./..Xd,AM,QJH:,. &.A B99X&^,F QJE$NN,M>>^,]+F j &,,JQ--j9C8DDSI&,mm4M&N#>>^,-.F j ##$4$?$?@DMM$ %((.Du$&&t,
+D1
*4!$'"":. 	--j9 d#     :D4   ',d#--j9s^   A=L ?A L  B2L AL +L 
%K /L L$L &L/LL 
LL L5)X__conditional_annotations__Z
__future__r   r   ZloggingZplatformZsysr   r   Ztypingr   Zbaser   r   r   r   r	   r
   Z	getLoggerr   re   ZwindllZHidrE   ZSetupAPIr^   ZKernel32r,   Z	Structurer   Zarchitecturer   r>   r   r   r!   r$   Zc_void_pZHDEVINFOZHANDLErT   rO   r5   r1   r2   r3   Zc_longZNTSTATUSrW   r/   r0   r`   ra   r]   Zrestyper   ZargtypesZBOOLEANrF   rU   rX   rN   r   rR   rV   ZBOOLZHidD_GetFeatureZHidD_SetFeatureZc_char_pZHWNDr   r_   rb   rc   rf   r-   r8   r)   rJ   rQ   rS   rZ   r[   Zobjectrd   r\   Z__annotations__rg   )rh   s   @r   <module>ri      s  $ # "    
 *  O O ||w  #			8	$ 
v	jj????6  1(MQ7*M
*8+@+@+B1+E*FG
HH&**  0 0 
F$$ 	f&& 	 ??	  Qv!???1D   ==     #    &t 45   !)!1!1   #)6>>-+H"I   $,$4$4   !&,fnn=Q.R%S   "%-%5%5   "';&<   #$,$4$4   !&,foov~~%N   ")1)9)9   &+16??FNN*S   '#   16>>/3RS    'mm    &H   &mm    &H    NN4
OOMMNN	*   & )1   %/7}} $ $ ,
OO
NN4NN
NN&'1 $ $ - 5=MM ) ) 1
NN&'
NN,-NN
NN8>>"
OO6 ) ) 2 19 % % -2 % % .  &   
OONNNN
OONNNN
!     (}}   !'   ,, ,^5	(%V, 	]FH%02 - 2Xr   