FreeBSD Manual Pages
FIDO_DEV_INFO_MANIFEST(3) Library Functions Manual FIDO_DEV_INFO_MANIFEST(3) NAME 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 discov- ery functions SYNOPSIS #include <fido.h> int 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); void 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); int16_t fido_dev_info_product(const fido_dev_info_t *di); int16_t 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); int 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); DESCRIPTION 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 re- turned in olen, where olen is an addressable pointer. The fido_dev_info_new() function returns a pointer to a newly allo- cated, 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 sub- system-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 manufac- turer 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, option- ally, 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. RETURN VALUES The fido_dev_info_manifest() function always returns FIDO_OK. If a discovery error occurs, the olen pointer is set to 0. On success, the fido_dev_info_set() function returns FIDO_OK. On er- ror, 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 corresponding device list. FreeBSD Ports 14.quarterly March 30, 2022 FIDO_DEV_INFO_MANIFEST(3)
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fido_dev_info_path&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>