Libu2f-emu  0.0.0
Universal 2nd Factor (U2F) Emulation C Library
usb.h
Go to the documentation of this file.
1 #ifndef USB_H
2 #define USB_H
3 
4 #include <stdbool.h>
5 #include <stdint.h>
6 
7 #include "message.h"
8 #include "transaction.h"
9 #include "transport.h"
10 #include "u2f-emu.h"
11 
16 
20 struct usb_state
21 {
22  /* Upper device link */
24 
25  /* Internal */
26  uint32_t cid_seed;
28  /* Messaging */
31  struct message *response;
32 };
33 
43  void **state_ref);
44 
50 void u2f_emu_vdev_usb_state_free(void *state);
51 
59 void u2f_emu_vdev_usb_process(void *state,
60  const void *packet, size_t size);
61 
68 bool u2f_emu_vdev_usb_has_response(void *state);
69 
77 size_t u2f_emu_vdev_usb_get_response(void *state, uint8_t **data);
78 
79 #endif
size_t u2f_emu_vdev_usb_get_response(void *state, uint8_t **data)
Get the response frim the USB transport.
Definition: usb.c:18
Message representation.
Definition: message.h:26
void u2f_emu_vdev_usb_state_free(void *state)
Free the USB state.
Definition: usb.c:174
Transport info representation.
Definition: transport.h:49
U2F virtual emulated device.
Definition: u2f-vdev.h:13
transport_info_t usb_transport
The USB transport.
Definition: usb.c:219
struct message * response
Definition: usb.h:31
u2f_emu_vdev * vdev
Definition: usb.h:23
uint8_t data[(64-7)]
Definition: packet.h:45
int u2f_emu_vdev_usb_state_init(u2f_emu_vdev *vdev, void **state_ref)
Init the USB state.
Definition: usb.c:199
bool in_transaction
Definition: usb.h:30
Represent a transaction: a request following by a response message.
Definition: transaction.h:19
void u2f_emu_vdev_usb_process(void *state, const void *packet, size_t size)
Process incoming data from an USB HID packet.
Definition: usb.c:119
bool u2f_emu_vdev_usb_has_response(void *state)
Check the precense of a response from the USB transport.
Definition: usb.c:10
USB transport state.
Definition: usb.h:20
uint32_t cid_seed
Definition: usb.h:26