| Top |  |  |  |  | 
| u2fh_rc | u2fh_global_init () | 
| void | u2fh_global_done () | 
| const char * | u2fh_strerror () | 
| const char * | u2fh_strerror_name () | 
| u2fh_rc | u2fh_devs_init () | 
| u2fh_rc | u2fh_devs_discover () | 
| void | u2fh_devs_done () | 
| u2fh_rc | u2fh_register () | 
| u2fh_rc | u2fh_authenticate () | 
| u2fh_rc | u2fh_sendrecv () | 
| u2fh_rc | u2fh_get_device_description () | 
| int | u2fh_is_alive () | 
u2fh_rc
u2fh_global_init (u2fh_initflags flags);
Initialize the library. This function is not guaranteed to be thread safe and must be invoked on application startup.
void
u2fh_global_done (void);
Release all resources from the library. Call this function when no further use of the library is needed.
const char *
u2fh_strerror (int err);
Convert return code to human readable string explanation of the reason for the particular error code.
This string can be used to output a diagnostic message to the user.
This function is one of few in the library that can be used without
a successful call to u2fh_global_init().
const char *
u2fh_strerror_name (int err);
Convert return code to human readable string representing the error
code symbol itself.  For example, u2fh_strerror_name(U2FH_OK)
returns the string "U2FH_OK".
This string can be used to output a diagnostic message to the user.
This function is one of few in the library that can be used without
a successful call to u2fh_global_init().
u2fh_rc
u2fh_devs_init (u2fh_devs **devs);
Initialize device handle.
 On success U2FH_OK (integer 0) is returned, on memory
allocation errors U2FH_MEMORY_ERROR is returned, or another
u2fh_rc error code is returned.
u2fh_rc u2fh_devs_discover (u2fh_devs *devs,unsigned *max_index);
Discover and open new devices. This function can safely be called several times and will free resources associated with unplugged devices and open new.
| devs | device handle, from  | |
| max_index | will on return be set to the maximum index, may be NULL; if there is 1 device this will be 0, if there are 2 devices this will be 1, and so on. | 
 On success, U2FH_OK (integer 0) is returned, when no U2F
device could be found U2FH_NO_U2F_DEVICE is returned, or another
u2fh_rc error code.
void
u2fh_devs_done (u2fh_devs *devs);
Release all resources associated with devs
.  This function must be
called when you are finished with a device handle.
u2fh_rc u2fh_register (u2fh_devs *devs,const char *challenge,const char *origin,char **response,u2fh_cmdflags flags);
Perform the U2F Register operation.
| devs | a device set handle, from  | |
| challenge | string with JSON data containing the challenge. | |
| origin | U2F origin URL. | |
| response | pointer to output string with JSON data. | |
| flags | set of ORed u2fh_cmdflags values. | 
u2fh_rc u2fh_authenticate (u2fh_devs *devs,const char *challenge,const char *origin,char **response,u2fh_cmdflags flags);
Perform the U2F Authenticate operation.
| devs | a device handle, from  | |
| challenge | string with JSON data containing the challenge. | |
| origin | U2F origin URL. | |
| response | pointer to output string with JSON data. | |
| flags | set of ORed u2fh_cmdflags values. | 
u2fh_rc u2fh_sendrecv (u2fh_devs *devs,unsigned index,uint8_t cmd,const unsigned char *send,uint16_t sendlen,unsigned char *recv,size_t *recvlen);
Send a command with data to the device at index
.
| devs | device handle, from  | |
| index | index of device | |
| cmd | command to run | |
| send | buffer of data to send | |
| sendlen | length of data to send | |
| recv | buffer of data to receive | |
| recvlen | length of data to receive | 
u2fh_rc u2fh_get_device_description (u2fh_devs *devs,unsigned index,char *out,size_t *len);
Get the device description of the device at index
. Stores the
string in out
.
| devs | device_handle, from  | |
| index | index of device | |
| out | buffer for storing device description | |
| len | maximum amount of data to store in  | 
int u2fh_is_alive (u2fh_devs *devs,unsigned index);
Get the liveliness of the device index
.