Zephyr Project API 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
12
13#ifndef ZEPHYR_INCLUDE_AUTHENTICATION_FIDO2_FIDO2_TRANSPORT_H_
14#define ZEPHYR_INCLUDE_AUTHENTICATION_FIDO2_FIDO2_TRANSPORT_H_
15
16#include <zephyr/kernel.h>
19#include <stddef.h>
20#include <stdint.h>
21
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32struct fido2_transport;
33
43
56typedef void (*fido2_transport_recv_cb_t)(const struct fido2_transport *transport, uint32_t cid,
57 const uint8_t *buf, size_t len);
58
62typedef void (*fido2_transport_cancel_cb_t)(void);
63
80
91 int (*send)(uint32_t cid, const uint8_t *data, size_t len);
92
103 void (*notify)(uint32_t cid, enum fido2_wire_status status);
104
108 void (*shutdown)(void);
109};
110
114 const char *name;
117};
118
126#define FIDO2_TRANSPORT_DEFINE(_name, _label, _api) \
127 STRUCT_SECTION_ITERABLE(fido2_transport, _name) = { \
128 .name = _label, \
129 .api = _api, \
130 }
131
135
145int fido2_transport_init_all(fido2_transport_recv_cb_t cb, fido2_transport_cancel_cb_t cancel_cb);
146
150void fido2_transport_shutdown_all(void);
151
155
156#ifdef __cplusplus
157}
158#endif
159
161
162#endif /* ZEPHYR_INCLUDE_AUTHENTICATION_FIDO2_FIDO2_TRANSPORT_H_ */
fido2_wire_status
Transport progress status codes.
Definition fido2_transport.h:35
@ FIDO2_WIRE_STATUS_PROCESSING
A long-running operation has started (e.g.
Definition fido2_transport.h:39
@ FIDO2_WIRE_STATUS_UP_NEEDED
The authenticator is waiting for a user presence gesture.
Definition fido2_transport.h:37
@ FIDO2_WIRE_STATUS_DONE
The operation is complete.
Definition fido2_transport.h:41
void(* fido2_transport_cancel_cb_t)(void)
Callback invoked when a transport receives a cancel command.
Definition fido2_transport.h:62
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:56
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:65
int(* send)(uint32_t cid, const uint8_t *data, size_t len)
Send response data to the host.
Definition fido2_transport.h:91
void(* shutdown)(void)
Shut down the transport.
Definition fido2_transport.h:108
int(* init)(fido2_transport_recv_cb_t cb, fido2_transport_cancel_cb_t cancel_cb)
Initialize the transport.
Definition fido2_transport.h:79
void(* notify)(uint32_t cid, enum fido2_wire_status status)
Notify the transport of an operation progress change.
Definition fido2_transport.h:103
A registered FIDO2 transport.
Definition fido2_transport.h:112
const char * name
Transport name.
Definition fido2_transport.h:114
const struct fido2_transport_api * api
Transport driver API callbacks.
Definition fido2_transport.h:116
Iterable sections helpers.