Libu2f-emu  0.0.0
Universal 2nd Factor (U2F) Emulation C Library
apdu.h
Go to the documentation of this file.
1 #ifndef APDU_H
2 #define APDU_H
3 
4 #include <stdbool.h>
5 #include <stdint.h>
6 
7 #include "payload.h"
8 #include "transport.h"
9 #include "u2f-emu.h"
10 
11 
16 
20 struct apdu_state
21 {
22  /* Upper device link */
24 
25  /* Messaging */
26  struct payload *response;
28 };
29 
39  void **state_ref);
40 
46 void u2f_emu_vdev_apdu_state_free(void *state);
47 
55 void u2f_emu_vdev_apdu_process(void *state,
56  const void *apdu, size_t size);
57 
64 bool u2f_emu_vdev_apdu_has_response(void *state);
65 
73 size_t u2f_emu_vdev_apdu_get_response(void *state, uint8_t **data);
74 
81 void u2f_emu_vdev_apdu_set_apdu(void *state, u2f_emu_apdu apdu);
82 
83 #endif
APDU transport state.
Definition: apdu.h:20
uint16_t size
Definition: payload.h:18
u2f_emu_apdu
U2F-emu APDU format length.
Definition: u2f-emu-types.h:33
void u2f_emu_vdev_apdu_state_free(void *state)
Free the APDU state.
Definition: apdu.c:62
Transport info representation.
Definition: transport.h:49
U2F virtual emulated device.
Definition: u2f-vdev.h:13
bool u2f_emu_vdev_apdu_has_response(void *state)
Check the precense of a response from the APDU transport.
Definition: apdu.c:16
void u2f_emu_vdev_apdu_set_apdu(void *state, u2f_emu_apdu apdu)
Set the APDU formatof the APDU transport.
Definition: apdu.c:8
struct payload * response
Definition: apdu.h:26
transport_info_t apdu_transport
The APDU transport.
Definition: apdu.c:98
Payload represenation.
Definition: payload.h:16
u2f_emu_apdu apdu
Definition: apdu.h:27
uint8_t data[(64-7)]
Definition: packet.h:45
u2f_emu_vdev * vdev
Definition: apdu.h:23
size_t u2f_emu_vdev_apdu_get_response(void *state, uint8_t **data)
Get the response frim the APDU transport.
Definition: apdu.c:24
int u2f_emu_vdev_apdu_state_init(u2f_emu_vdev *vdev, void **state_ref)
Init the APDU state.
Definition: apdu.c:79
void u2f_emu_vdev_apdu_process(void *state, const void *apdu, size_t size)
Process incoming data from an APDU.
Definition: apdu.c:44