+
     h  c                   s  a  R t*0 t R t^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
HtHtHtHtHtHtHt ^RIHt ]	P(                  R8w  g   Q h^ RIHt ]P.                  ! ]4      t^t^t^t]^,          t ! R R]4      t ! R	 R
]4      tRt Rt!Rt"]#! 4       t$] ^ k R t%R t&R t' ! R R]PP                  4      t)R# )z'Implements raw HID interface on NetBSD.)absolute_importN)	Structurec_charc_intc_ubytec_uint8c_uint16c_uint32)baseZwin32)ioctlc                   s4    ] tR t^3tR]3R]R,          3.tRtR# )usb_ctl_report_desc	ucrd_size	ucrd_datai    N)__name__
__module____qualname____firstlineno__r   r   _fields___static_attributes__r       5/usr/lib/python3.14/site-packages/fido2/hid/netbsd.pyr
   r
   3   s    	e	gn%Hr   r
   c                   s   ] tR t^: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R]^,          3.tRtR# )usb_device_infoZudi_busZudi_addrZudi_pad0Z
udi_cookieudi_productZ
udi_vendorZudi_release
udi_serialudi_productNoudi_vendorNoZudi_releaseNoZ	udi_classZudi_subclassZudi_protocolZ
udi_configZ	udi_speedZudi_pad1Z	udi_powerZ
udi_nportsZudi_devnamesZ	udi_portsr   N)r   r   r   r   r   r   r   USB_MAX_ENCODED_STRING_LENr   r   USB_MAX_DEVNAMESUSB_MAX_DEVNAMELENr   r   r   r   r   r   r   :   s    	G	W	Wq[!	x 	!;;<	v ::;	
#	v ::;	(#	"	(#	g	!	!	w	g	W	e	u	"225GGH	gl#+Hr   r   ipUDiUDl   h  c                  s`   \        \        4      p . p\        ^d4       F;  pRV3,          pV P                  V4        \	        V4      pTP                  T4       K=  	  \        P                  V 4       V#   \
         dj   pTP                  \        P                  8X  d    Rp? KH  T\        9  d.   \        P                  RTRR7       \        P                  T4        Rp?K  Rp?i\         d>    T\        9  d.   \        P                  RTRR7       \        P                  T4        EK  i ; i)id   z/dev/uhid%dNzFailed opening FIDO device %sT)Zexc_info)set_failed_cacherangeZdiscardget_descriptorZOSErrorerrnoZENOENTloggerZdebugZadd	ExceptionZappendZdifference_update)ZstaleZdescriptorsipathZdescZes         r   list_descriptorsr'   ^   s    EK3Zt#d	!$'D 	4 # & ##E*  	ww%,,&=(<dTR!!$' 	=(<dTR!!$'		s)   A33D->C"$8C""D-/9D-,D-c           	      s   R p \         P                  ! V \         P                  \         P                  ,          4      p\	        4       p\        V\        V4       \        4       p\        V\        V4       \        VP                  R VP                   4      p\        P                  ! V4      w  rVVP                  pVP                  p VP                   P#                  R4      p	 VP&                  P#                  R4      p
\        P(                  ! WWWiV
4      Ve   \         P*                  ! V4       # #   \$         d    R p	 L_i ; i  \$         d    R p
 LVi ; i  Te   \         P*                  ! T4       i i ; i)Nzutf-8)osZopenZO_RDONLYZ	O_CLOEXECr   r	   USB_GET_DEVICE_INFOr
   USB_GET_REPORT_DESC	bytearrayr   r   r   Zparse_report_descriptorr   r   r   ZdecodeZUnicodeDecodeErrorr   ZHidDescriptorclose)r&   ZfdZdevinfoZucrdZreport_descZmaxinZmaxoutZvidZpidZnameZserials   &          r   r!   r!   y   s9   	BWWT2;;56!#b%w/"$b%t,/? @A44[A""##	&&--g6D	''..w7F !!$SvN>HHRL  " 	D	 " 	F	 >HHRL sT   CE D2 #E >E E 2E?E EE EE EE E5c                 s    \        V 4      # )N)NetBSDCtapHidConnection)
descriptors   &r   open_connectionr/      s    ":..r   c                   s2   a a ] tR t^t oV 3R ltRtVtV ;t# )r-   c                s(  < \         SV `  V4        \        V P                  \        \
        P                  ! R ^4      4       \        ^@4      p\        . RO4      VR&   \        ^
4       F}  pV P                  V4       \        P                  ! 4       pVP                  V P                  \        P                  4       VP                  ^d4      '       g   Kl  V P                  4         R# 	  \        R4      h  \         d    T P!                  4        h i ; i)z@i:    i   Nzu2f ping timeoutN)   r1   r1   r1   i   r0   i   )Zsuper__init__r	   ZhandleUSB_HID_SET_RAWstructZpackr+   r    Zwrite_packetselectpollZregisterZPOLLINZread_packetr$   r,   )Zselfr.   Zpingr%   r6   	__class__s   &&   r   r2   Z NetBSDCtapHidConnection.__init__   s     	$	$++D!0DER=D!"FGDI2Y!!$'{{}dkk6==999S>>$$&    233 	JJL	s   B=C4 C4 'C4 4Dr   )r   r   r   r   r2   r   Z__classdictcell__Z__classcell__)r7   Z__classdict__s   @@r   r-   r-      s      r   r-   c                sV    V ^8  d   Qh/ ^ \         9   d   \        \        ,          ;R&   # )i   r   )__conditional_annotations__r   Zstr)Zformats   "r   __annotate__r9      s      - -X   s3x Y .r   )+r8   Z__doc__Z
__future__r    r"   Zloggingr(   r5   r4   ZsysZctypesr   r   r   r   r   r   r   Z r   ZplatformZfcntlr	   Z	getLoggerr   r#   r   r   ZUSB_MAX_STRING_LENr   r
   r   r)   r*   r3   r   r   r'   r!   r/   ZFileCtapHidConnectionr-   r9   )r8   s   @r   <module>r:      s    . &   	   
    ||w  			8	$    /!3 ) i 4 !   
 % 64/d88 r   