Embedded SDK
Embedded SDK
Loading...
Searching...
No Matches
u2f_types.h
Go to the documentation of this file.
1/*****************************************************************************
2 * (c) 2025 Ledger SAS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *****************************************************************************/
16
17#pragma once
18
19/* Includes ------------------------------------------------------------------*/
20#include <stdint.h>
21
22/* Exported enumerations -----------------------------------------------------*/
23
24/* Exported types, structures, unions ----------------------------------------*/
32
52
57
63
64typedef enum {
65 // FIDO 1
72 CTAP1_ERR_CHANNEL_BUSY = 0x06, // HID only
73 CTAP1_ERR_LOCK_REQUIRED = 0x0A, // HID only
74 CTAP1_ERR_INVALID_CHANNEL = 0x0B, // HID only
76
77 // FIDO2
78 CTAP2_OK = 0x00,
120
121 // Proprietary
138
139/* Exported defines --------------------------------------------------------*/
140// LEGACY
141
142// Shared commands
143#define CTAP2_CMD_CBOR U2F_COMMAND_HID_CBOR
144#define CTAP2_CMD_CANCEL U2F_COMMAND_HID_CANCEL
145
146// BLE only commands
147#define KEEPALIVE_REASON_PROCESSING U2F_KEEP_ALIVE_REASON_PROCESSING
148#define KEEPALIVE_REASON_TUP_NEEDED U2F_KEEP_ALIVE_REASON_UP_NEEDED
149
150// Shared errors
151#define ERROR_NONE CTAP1_ERR_SUCCESS
152#define ERROR_INVALID_CMD CTAP1_ERR_INVALID_COMMAND
153#define ERROR_INVALID_PAR CTAP1_ERR_INVALID_PARAMETER
154#define ERROR_INVALID_LEN CTAP1_ERR_INVALID_LENGTH
155#define ERROR_INVALID_SEQ CTAP1_ERR_INVALID_SEQ
156#define ERROR_MSG_TIMEOUT CTAP1_ERR_TIMEOUT
157#define ERROR_OTHER CTAP1_ERR_OTHER
158// CTAP2 errors
159#define ERROR_CBOR_UNEXPECTED_TYPE CTAP2_ERR_CBOR_UNEXPECTED_TYPE
160#define ERROR_INVALID_CBOR CTAP2_ERR_INVALID_CBOR
161#define ERROR_MISSING_PARAMETER CTAP2_ERR_MISSING_PARAMETER
162#define ERROR_LIMIT_EXCEEDED CTAP2_ERR_LIMIT_EXCEEDED
163#define ERROR_CREDENTIAL_EXCLUDED CTAP2_ERR_CREDENTIAL_EXCLUDED
164#define ERROR_PROCESSING CTAP2_ERR_PROCESSING
165#define ERROR_INVALID_CREDENTIAL CTAP2_ERR_INVALID_CREDENTIAL
166#define ERROR_USER_ACTION_PENDING CTAP2_ERR_USER_ACTION_PENDING
167#define ERROR_OPERATION_PENDING CTAP2_ERR_OPERATION_PENDING
168#define ERROR_NO_OPERATIONS CTAP2_ERR_NO_OPERATIONS
169#define ERROR_UNSUPPORTED_ALGORITHM CTAP2_ERR_UNSUPPORTED_ALGORITHM
170#define ERROR_OPERATION_DENIED CTAP2_ERR_OPERATION_DENIED
171#define ERROR_KEY_STORE_FULL CTAP2_ERR_KEY_STORE_FULL
172#define ERROR_UNSUPPORTED_OPTION CTAP2_ERR_UNSUPPORTED_OPTION
173#define ERROR_INVALID_OPTION CTAP2_ERR_INVALID_OPTION
174#define ERROR_KEEPALIVE_CANCEL CTAP2_ERR_KEEPALIVE_CANCEL
175#define ERROR_NO_CREDENTIALS CTAP2_ERR_NO_CREDENTIALS
176#define ERROR_USER_ACTION_TIMEOUT CTAP2_ERR_USER_ACTION_TIMEOUT
177#define ERROR_NOT_ALLOWED CTAP2_ERR_NOT_ALLOWED
178#define ERROR_PIN_INVALID CTAP2_ERR_PIN_INVALID
179#define ERROR_PIN_BLOCKED CTAP2_ERR_PIN_BLOCKED
180#define ERROR_PIN_AUTH_INVALID CTAP2_ERR_PIN_AUTH_INVALID
181#define ERROR_PIN_AUTH_BLOCKED CTAP2_ERR_PIN_AUTH_BLOCKED
182#define ERROR_PIN_NOT_SET CTAP2_ERR_PIN_NOT_SET
183#define ERROR_PIN_REQUIRED CTAP2_ERR_PUAT_REQUIRED
184#define ERROR_PIN_POLICY_VIOLATION CTAP2_ERR_PIN_POLICY_VIOLATION
185#define ERROR_REQUEST_TOO_LARGE CTAP2_ERR_REQUEST_TOO_LARGE
186#define ERROR_ACTION_TIMEOUT CTAP2_ERR_ACTION_TIMEOUT
187#define ERROR_UP_REQUIRED CTAP2_ERR_UP_REQUIRED
188// Proprietary errors
189#define ERROR_PROP_UNKNOWN_COMMAND PROP_ERR_UNKNOWN_COMMAND
190#define ERROR_PROP_COMMAND_TOO_LONG PROP_ERR_COMMAND_TOO_LONG
191#define ERROR_PROP_INVALID_CONTINUATION PROP_ERR_INVALID_CONTINUATION
192#define ERROR_PROP_UNEXPECTED_CONTINUATION PROP_ERR_UNEXPECTED_CONTINUATION
193#define ERROR_PROP_CONTINUATION_OVERFLOW PROP_ERR_CONTINUATION_OVERFLOW
194#define ERROR_PROP_MESSAGE_TOO_SHORT PROP_ERR_MESSAGE_TOO_SHORT
195#define ERROR_PROP_UNCONSISTENT_MSG_LENGTH PROP_ERR_UNCONSISTENT_MSG_LENGTH
196#define ERROR_PROP_UNSUPPORTED_MSG_APDU PROP_ERR_UNSUPPORTED_MSG_APDU
197#define ERROR_PROP_INVALID_DATA_LENGTH_APDU PROP_ERR_INVALID_DATA_LENGTH_APDU
198#define ERROR_PROP_INTERNAL_ERROR_APDU PROP_ERR_INTERNAL_ERROR_APDU
199#define ERROR_PROP_INVALID_PARAMETERS_APDU PROP_ERR_INVALID_PARAMETERS_APDU
200#define ERROR_PROP_INVALID_DATA_APDU PROP_ERR_INVALID_DATA_APDU
201#define ERROR_PROP_DEVICE_NOT_SETUP PROP_ERR_DEVICE_NOT_SETUP
202#define ERROR_PROP_MEDIA_MIXED PROP_ERR_MEDIA_MIXED
203#define ERROR_PROP_RPID_MEDIA_DENIED PROP_ERR_RPID_MEDIA_DENIED
204
205#define U2F_CMD_MSG U2F_COMMAND_MSG
206
207/* Exported macros------------------------------------------------------------*/
208
209/* Exported variables --------------------------------------------------------*/
210
211/* Exported functions prototypes--------------------------------------------- */
u2f_hid_capability_t
Definition u2f_types.h:58
@ U2F_HID_CAPABILITY_CBOR
Definition u2f_types.h:60
@ U2F_HID_CAPABILITY_NMSG
Definition u2f_types.h:61
@ U2F_HID_CAPABILITY_WINK
Definition u2f_types.h:59
u2f_state_t
Definition u2f_types.h:25
@ U2F_STATE_IDLE
Definition u2f_types.h:26
@ U2F_STATE_CMD_PROCESSING_CANCEL
Definition u2f_types.h:30
@ U2F_STATE_CMD_PROCESSING
Definition u2f_types.h:29
@ U2F_STATE_CMD_FRAMING
Definition u2f_types.h:27
@ U2F_STATE_CMD_COMPLETE
Definition u2f_types.h:28
u2f_keep_alive_reason_t
Definition u2f_types.h:53
@ U2F_KEEP_ALIVE_REASON_UP_NEEDED
Definition u2f_types.h:55
@ U2F_KEEP_ALIVE_REASON_PROCESSING
Definition u2f_types.h:54
u2f_error_t
Definition u2f_types.h:64
@ PROP_ERR_UNSUPPORTED_MSG_APDU
Definition u2f_types.h:129
@ CTAP2_ERR_KEY_STORE_FULL
Definition u2f_types.h:93
@ CTAP2_ERR_UV_INVALID
Definition u2f_types.h:113
@ CTAP1_ERR_TIMEOUT
Definition u2f_types.h:71
@ PROP_ERR_RPID_MEDIA_DENIED
Definition u2f_types.h:136
@ CTAP2_ERR_OPERATION_DENIED
Definition u2f_types.h:92
@ CTAP2_ERR_USER_ACTION_TIMEOUT
Definition u2f_types.h:98
@ CTAP1_ERR_INVALID_CHANNEL
Definition u2f_types.h:74
@ PROP_ERR_CONTINUATION_OVERFLOW
Definition u2f_types.h:126
@ CTAP2_ERR_UNSUPPORTED_OPTION
Definition u2f_types.h:94
@ CTAP2_ERR_VENDOR_FIRST
Definition u2f_types.h:118
@ CTAP2_ERR_INTEGRITY_FAILURE
Definition u2f_types.h:111
@ PROP_ERR_UNEXPECTED_CONTINUATION
Definition u2f_types.h:125
@ CTAP2_ERR_MISSING_PARAMETER
Definition u2f_types.h:81
@ CTAP2_ERR_OPERATION_PENDING
Definition u2f_types.h:89
@ CTAP1_ERR_SUCCESS
Definition u2f_types.h:66
@ CTAP2_ERR_REQUEST_TOO_LARGE
Definition u2f_types.h:107
@ CTAP2_ERR_VENDOR_LAST
Definition u2f_types.h:119
@ CTAP2_ERR_CREDENTIAL_EXCLUDED
Definition u2f_types.h:85
@ CTAP2_ERR_UNAUTHORIZED_PERMISSION
Definition u2f_types.h:114
@ CTAP2_ERR_KEEPALIVE_CANCEL
Definition u2f_types.h:96
@ CTAP1_ERR_OTHER
Definition u2f_types.h:75
@ CTAP2_ERR_EXTENSION_FIRST
Definition u2f_types.h:116
@ PROP_ERR_INTERNAL_ERROR_APDU
Definition u2f_types.h:131
@ CTAP2_ERR_PIN_INVALID
Definition u2f_types.h:100
@ CTAP2_ERR_PIN_POLICY_VIOLATION
Definition u2f_types.h:106
@ CTAP2_ERR_NO_CREDENTIALS
Definition u2f_types.h:97
@ PROP_ERR_INVALID_CONTINUATION
Definition u2f_types.h:124
@ CTAP2_OK
Definition u2f_types.h:78
@ PROP_ERR_MESSAGE_TOO_SHORT
Definition u2f_types.h:127
@ CTAP2_ERR_NO_OPERATIONS
Definition u2f_types.h:90
@ CTAP2_ERR_INVALID_SUBCOMMAND
Definition u2f_types.h:112
@ PROP_ERR_MEDIA_MIXED
Definition u2f_types.h:135
@ CTAP2_ERR_UNSUPPORTED_ALGORITHM
Definition u2f_types.h:91
@ PROP_ERR_UNKNOWN_COMMAND
Definition u2f_types.h:122
@ CTAP2_ERR_PROCESSING
Definition u2f_types.h:86
@ CTAP2_ERR_INVALID_OPTION
Definition u2f_types.h:95
@ CTAP2_ERR_PIN_NOT_SET
Definition u2f_types.h:104
@ CTAP2_ERR_FP_DATABASE_FULL
Definition u2f_types.h:83
@ CTAP2_ERR_CBOR_UNEXPECTED_TYPE
Definition u2f_types.h:79
@ CTAP2_ERR_SPEC_LAST
Definition u2f_types.h:115
@ PROP_ERR_INVALID_DATA_APDU
Definition u2f_types.h:133
@ PROP_ERR_COMMAND_TOO_LONG
Definition u2f_types.h:123
@ CTAP2_ERR_PIN_AUTH_BLOCKED
Definition u2f_types.h:103
@ PROP_ERR_INVALID_PARAMETERS_APDU
Definition u2f_types.h:132
@ PROP_ERR_INVALID_DATA_LENGTH_APDU
Definition u2f_types.h:130
@ CTAP1_ERR_LOCK_REQUIRED
Definition u2f_types.h:73
@ CTAP2_ERR_LARGE_BLOB_STORAGE_FULL
Definition u2f_types.h:84
@ CTAP1_ERR_INVALID_COMMAND
Definition u2f_types.h:67
@ CTAP2_ERR_UP_REQUIRED
Definition u2f_types.h:109
@ CTAP2_ERR_INVALID_CREDENTIAL
Definition u2f_types.h:87
@ CTAP2_ERR_UV_BLOCKED
Definition u2f_types.h:110
@ CTAP1_ERR_CHANNEL_BUSY
Definition u2f_types.h:72
@ CTAP2_ERR_PIN_AUTH_INVALID
Definition u2f_types.h:102
@ PROP_ERR_DEVICE_NOT_SETUP
Definition u2f_types.h:134
@ CTAP2_ERR_PIN_BLOCKED
Definition u2f_types.h:101
@ CTAP1_ERR_INVALID_LENGTH
Definition u2f_types.h:69
@ CTAP2_ERR_ACTION_TIMEOUT
Definition u2f_types.h:108
@ CTAP2_ERR_EXTENSION_LAST
Definition u2f_types.h:117
@ CTAP2_ERR_INVALID_CBOR
Definition u2f_types.h:80
@ CTAP1_ERR_INVALID_PARAMETER
Definition u2f_types.h:68
@ CTAP2_ERR_NOT_ALLOWED
Definition u2f_types.h:99
@ CTAP1_ERR_INVALID_SEQ
Definition u2f_types.h:70
@ PROP_ERR_UNCONSISTENT_MSG_LENGTH
Definition u2f_types.h:128
@ CTAP2_ERR_USER_ACTION_PENDING
Definition u2f_types.h:88
@ CTAP2_ERR_PUAT_REQUIRED
Definition u2f_types.h:105
@ CTAP2_ERR_LIMIT_EXCEEDED
Definition u2f_types.h:82
u2f_command_t
Definition u2f_types.h:33
@ U2F_COMMAND_HID_WINK
Definition u2f_types.h:42
@ U2F_COMMAND_ERROR
Definition u2f_types.h:37
@ U2F_COMMAND_BLE_CANCEL
Definition u2f_types.h:49
@ U2F_COMMAND_HID_LOCK
Definition u2f_types.h:40
@ U2F_COMMAND_PING
Definition u2f_types.h:35
@ U2F_COMMAND_HID_CBOR
Definition u2f_types.h:43
@ U2F_COMMAND_HID_INIT
Definition u2f_types.h:41
@ U2F_COMMAND_BLE_KEEP_ALIVE
Definition u2f_types.h:48
@ U2F_COMMAND_MSG
Definition u2f_types.h:36
@ U2F_COMMAND_HID_CANCEL
Definition u2f_types.h:44
@ U2F_COMMAND_HID_KEEP_ALIVE
Definition u2f_types.h:45