Libu2f-emu  0.0.0
Universal 2nd Factor (U2F) Emulation C Library
Functions
u2f-emu.h File Reference
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include "u2f-emu-types.h"
Include dependency graph for u2f-emu.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

const char * u2f_emu_strerror (u2f_emu_rc rc)
 Get the error description specific to a return code. More...
 
u2f_emu_rc u2f_emu_vdev_new_from_dir (u2f_emu_vdev **vdev_ref, const char *pathname)
 Instantiate a new U2F virtual emulated device from a setup dir. More...
 
u2f_emu_rc u2f_emu_vdev_new_ephemeral (u2f_emu_vdev **vdev_ref)
 Instantiate a new ephemeral U2F virtual emulated device. More...
 
u2f_emu_rc u2f_emu_vdev_new (u2f_emu_vdev **vdev_ref, const struct u2f_emu_vdev_setup *info)
 Instantiate a new U2F virtual emulated device. More...
 
u2f_emu_rc u2f_emu_vdev_set_apdu (u2f_emu_vdev *vdev, u2f_emu_transport transport_type, u2f_emu_apdu apdu)
 Set the apdu length of an U2F virtual emultated device on a transport. More...
 
void u2f_emu_vdev_free (u2f_emu_vdev *vdev)
 Free an U2F virtual emulated device. More...
 
u2f_emu_rc u2f_emu_vdev_send (u2f_emu_vdev *vdev, u2f_emu_transport transport_type, const void *data, size_t size)
 Ask an U2F virtual emulated device to process input data from a transport. More...
 
bool u2f_emu_vdev_has_response (u2f_emu_vdev *vdev, u2f_emu_transport transport_type)
 Check if an U2F virtual emulated device has response data on a transport to a previous processed data. More...
 
size_t u2f_emu_vdev_get_response (u2f_emu_vdev *vdev, u2f_emu_transport transport_type, uint8_t **data)
 Get a response from an U2F virtual emulated device on a transport. More...
 
void u2f_emu_vdev_free_response (uint8_t *data)
 Free a response from an U2F virtual emulated device. More...
 

Function Documentation

const char* u2f_emu_strerror ( u2f_emu_rc  rc)

Get the error description specific to a return code.

Parameters
rcThe return code.
Returns
The respective error description.
void u2f_emu_vdev_free ( u2f_emu_vdev vdev)

Free an U2F virtual emulated device.

Parameters
vdevThe virtual device.
void u2f_emu_vdev_free_response ( uint8_t *  data)

Free a response from an U2F virtual emulated device.

Parameters
dataThe data buffer of the response.
size_t u2f_emu_vdev_get_response ( u2f_emu_vdev vdev,
u2f_emu_transport  transport_type,
uint8_t **  data 
)

Get a response from an U2F virtual emulated device on a transport.

Parameters
vdevThe virtual device.
transport_typeThe associated transport.
dataThe data ref buffer to put the response.
Returns
The size of the allocated data.
bool u2f_emu_vdev_has_response ( u2f_emu_vdev vdev,
u2f_emu_transport  transport_type 
)

Check if an U2F virtual emulated device has response data on a transport to a previous processed data.

Parameters
vdevThe virtual device.
transport_typeThe associated transport.
Returns
Has response: true. Has not response: false.
u2f_emu_rc u2f_emu_vdev_new ( u2f_emu_vdev **  vdev_ref,
const struct u2f_emu_vdev_setup info 
)

Instantiate a new U2F virtual emulated device.

Parameters
vdev_refThe virtual device reference.
infoThe setup structure for device configuration.
Returns
Success: U2F_EMU_OK. Failure: - memory allocation: U2F_EMU_MEMORY_ERROR.
  • not supported: U2F_EMU_SUPPORTED_ERROR.
u2f_emu_rc u2f_emu_vdev_new_ephemeral ( u2f_emu_vdev **  vdev_ref)

Instantiate a new ephemeral U2F virtual emulated device.

Parameters
vdev_refThe virtual device reference.
Returns
Success: U2F_EMU_OK. Failure: - memory allocation: U2F_EMU_MEMORY_ERROR.
  • not supported: U2F_EMU_SUPPORTED_ERROR.
u2f_emu_rc u2f_emu_vdev_new_from_dir ( u2f_emu_vdev **  vdev_ref,
const char *  pathname 
)

Instantiate a new U2F virtual emulated device from a setup dir.

Parameters
vdev_refThe virtual device reference.
pathnameThe pathname of the setup dir for the device configuration.
Returns
Success: U2F_EMU_OK. Failure: - memory allocation: U2F_EMU_MEMORY_ERROR.
  • not supported: U2F_EMU_SUPPORTED_ERROR.
u2f_emu_rc u2f_emu_vdev_send ( u2f_emu_vdev vdev,
u2f_emu_transport  transport_type,
const void *  data,
size_t  size 
)

Ask an U2F virtual emulated device to process input data from a transport.

Parameters
vdevThe virtual device.
transport_typeThe associated transport.
dataThe input data to process.
sizeThe size of the input data in bytes.
Returns
Success: U2F_EMU_OK. Failure: - transport does not exist, or is not implemented: U2F_EMU_SUPPORTED_ERROR:.
u2f_emu_rc u2f_emu_vdev_set_apdu ( u2f_emu_vdev vdev,
u2f_emu_transport  transport_type,
u2f_emu_apdu  apdu 
)

Set the apdu length of an U2F virtual emultated device on a transport.

Parameters
vdevThe virtual device.
transport_typeThe associated transport.
apduThe apdu length.
Returns
Success: U2F_EMU_OK. Failure: not allowed: U2F_EMU_PERMISSION_ERROR