Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
fido2_transport.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 Siratul Islam <email@sirat.me>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
11
12#ifndef ZEPHYR_INCLUDE_AUTHENTICATION_FIDO2_FIDO2_TRANSPORT_H_
13#define ZEPHYR_INCLUDE_AUTHENTICATION_FIDO2_FIDO2_TRANSPORT_H_
14
15#include <zephyr/kernel.h>
18#include <stddef.h>
19#include <stdint.h>
20
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31struct fido2_transport;
32
42
55typedef void (*fido2_transport_recv_cb_t)(const struct fido2_transport *transport, uint32_t cid,
56 const uint8_t *buf, size_t len);
57
61typedef void (*fido2_transport_cancel_cb_t)(void);
62
79
90 int (*send)(uint32_t cid, const uint8_t *data, size_t len);
91
102 void (*notify)(uint32_t cid, enum fido2_wire_status status);
103
107 void (*shutdown)(void);
108};
109
113 const char *name;
116};
117
125#define FIDO2_TRANSPORT_DEFINE(_name, _label, _api) \
126 STRUCT_SECTION_ITERABLE(fido2_transport, _name) = { \
127 .name = _label, \
128 .api = _api, \
129 }
130
134
144int fido2_transport_init_all(fido2_transport_recv_cb_t cb, fido2_transport_cancel_cb_t cancel_cb);
145
149void fido2_transport_shutdown_all(void);
150
154
155#ifdef __cplusplus
156}
157#endif
158
160
161#endif /* ZEPHYR_INCLUDE_AUTHENTICATION_FIDO2_FIDO2_TRANSPORT_H_ */
fido2_wire_status
Transport progress status codes.
Definition fido2_transport.h:34
@ FIDO2_WIRE_STATUS_PROCESSING
A long-running operation has started (e.g.
Definition fido2_transport.h:38
@ FIDO2_WIRE_STATUS_UP_NEEDED
The authenticator is waiting for a user presence gesture.
Definition fido2_transport.h:36
@ FIDO2_WIRE_STATUS_DONE
The operation is complete.
Definition fido2_transport.h:40
void(* fido2_transport_cancel_cb_t)(void)
Callback invoked when a transport receives a cancel command.
Definition fido2_transport.h:61
void(* fido2_transport_recv_cb_t)(const struct fido2_transport *transport, uint32_t cid, const uint8_t *buf, size_t len)
Callback invoked when a transport receives data from the host.
Definition fido2_transport.h:55
FIDO2 shared type definitions.
Public kernel APIs.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Transport driver API callbacks.
Definition fido2_transport.h:64
int(* send)(uint32_t cid, const uint8_t *data, size_t len)
Send response data to the host.
Definition fido2_transport.h:90
void(* shutdown)(void)
Shut down the transport.
Definition fido2_transport.h:107
int(* init)(fido2_transport_recv_cb_t cb, fido2_transport_cancel_cb_t cancel_cb)
Initialize the transport.
Definition fido2_transport.h:78
void(* notify)(uint32_t cid, enum fido2_wire_status status)
Notify the transport of an operation progress change.
Definition fido2_transport.h:102
A registered FIDO2 transport.
Definition fido2_transport.h:111
const char * name
Transport name.
Definition fido2_transport.h:113
const struct fido2_transport_api * api
Transport driver API callbacks.
Definition fido2_transport.h:115
Iterable sections helpers.