Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
FIDO_DEV_INFO_MANIF... FreeBSD Library Functions Manual	FIDO_DEV_INFO_MANIF...

     fido_dev_info_manifest, fido_dev_info_new,	fido_dev_info_free,
     fido_dev_info_ptr,	fido_dev_info_path, fido_dev_info_product,
     fido_dev_info_vendor, fido_dev_info_manufacturer_string,
     fido_dev_info_product_string, fido_dev_info_set --	FIDO2 device discovery

     #include <fido.h>

     fido_dev_info_manifest(fido_dev_info_t *devlist, size_t ilen,
	 size_t	*olen);

     fido_dev_info_t *
     fido_dev_info_new(size_t n);

     fido_dev_info_free(fido_dev_info_t	**devlist_p, size_t n);

     const fido_dev_info_t *
     fido_dev_info_ptr(const fido_dev_info_t *devlist, size_t i);

     const char	*
     fido_dev_info_path(const fido_dev_info_t *di);

     fido_dev_info_product(const fido_dev_info_t *di);

     fido_dev_info_vendor(const	fido_dev_info_t	*di);

     const char	*
     fido_dev_info_manufacturer_string(const fido_dev_info_t *di);

     const char	*
     fido_dev_info_product_string(const	fido_dev_info_t	*di);

     fido_dev_info_set(fido_dev_info_t *devlist, size_t	i, const char *path,
	 const char *manufacturer, const char *product,
	 const fido_dev_io_t *io, const	fido_dev_transport_t *transport);

     The fido_dev_info_manifest() function fills devlist with up to ilen FIDO2
     devices found by the underlying operating system.	Currently only USB HID
     devices are supported.  The number	of discovered devices is returned in
     olen, where olen is an addressable	pointer.

     The fido_dev_info_new() function returns a	pointer	to a newly allocated,
     empty device list with n available	slots.	If memory is not available,
     NULL is returned.

     The fido_dev_info_free() function releases	the memory backing *devlist_p,
     where *devlist_p must have	been previously	allocated by
     fido_dev_info_new().  The number n	of allocated slots must	also be	pro-
     vided.  On	return,	*devlist_p is set to NULL.  Either devlist_p or
     *devlist_p	may be NULL, in	which case fido_dev_info_free()	is a NOP.

     The fido_dev_info_ptr() function returns a	pointer	to slot	number i of
     devlist.  It is the caller's responsibility to ensure that	i is bounded.
     Please note that the first	slot has index 0.

     The fido_dev_info_path() function returns the filesystem path or subsys-
     tem-specific identification string	of di.

     The fido_dev_info_product() function returns the product ID of di.

     The fido_dev_info_vendor()	function returns the vendor ID of di.

     The fido_dev_info_manufacturer_string() function returns the manufacturer
     string of di.  If di does not have	an associated manufacturer string,
     fido_dev_info_manufacturer_string() returns an empty string.

     The fido_dev_info_product_string()	function returns the product string of
     di.  If di	does not have an associated product string,
     fido_dev_info_product_string() returns an empty string.

     An	example	of how to use the functions described in this document can be
     found in the examples/manifest.c file shipped with	libfido2.

     The fido_dev_info_set() function initializes an entry in a	device list
     allocated by fido_dev_info_new() with the specified path, manufacturer,
     and product strings, and with the specified I/O handlers and, optionally,
     transport functions, as described in fido_dev_set_io_functions(3).	 The
     io	argument must be specified; the	transport argument may be NULL.	 The
     path, I/O handlers, and transport functions will be used automatically by
     fido_dev_new_with_info(3) and fido_dev_open_with_info(3).	An application
     can use this, for example,	to substitute mock FIDO2 devices in testing
     for the real ones that fido_dev_info_manifest() would discover.

     The fido_dev_info_manifest() function always returns FIDO_OK.  If a dis-
     covery error occurs, the olen pointer is set to 0.

     On	success, the fido_dev_info_set() function returns FIDO_OK.  On error,
     a different error code defined in <fido/err.h> is returned.

     The pointers returned by fido_dev_info_ptr(), fido_dev_info_path(),
     fido_dev_info_manufacturer_string(), and fido_dev_info_product_string()
     are guaranteed to exist until fido_dev_info_free()	is called on the cor-
     responding	device list.

FreeBSD	13.0			March 30, 2022			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help