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 ----------------------------------------*/
31
51
56
62
63typedef enum {
64 // FIDO 1
71 CTAP1_ERR_CHANNEL_BUSY = 0x06, // HID only
72 CTAP1_ERR_LOCK_REQUIRED = 0x0A, // HID only
73 CTAP1_ERR_INVALID_CHANNEL = 0x0B, // HID only
75
76 // FIDO2
77 CTAP2_OK = 0x00,
119
120 // Proprietary
137
138/* Exported defines --------------------------------------------------------*/
139// LEGACY
140
141// Shared commands
142#define CTAP2_CMD_CBOR U2F_COMMAND_HID_CBOR
143#define CTAP2_CMD_CANCEL U2F_COMMAND_HID_CANCEL
144
145// BLE only commands
146#define KEEPALIVE_REASON_PROCESSING U2F_KEEP_ALIVE_REASON_PROCESSING
147#define KEEPALIVE_REASON_TUP_NEEDED U2F_KEEP_ALIVE_REASON_UP_NEEDED
148
149// Shared errors
150#define ERROR_NONE CTAP1_ERR_SUCCESS
151#define ERROR_INVALID_CMD CTAP1_ERR_INVALID_COMMAND
152#define ERROR_INVALID_PAR CTAP1_ERR_INVALID_PARAMETER
153#define ERROR_INVALID_LEN CTAP1_ERR_INVALID_LENGTH
154#define ERROR_INVALID_SEQ CTAP1_ERR_INVALID_SEQ
155#define ERROR_MSG_TIMEOUT CTAP1_ERR_TIMEOUT
156#define ERROR_OTHER CTAP1_ERR_OTHER
157// CTAP2 errors
158#define ERROR_CBOR_UNEXPECTED_TYPE CTAP2_ERR_CBOR_UNEXPECTED_TYPE
159#define ERROR_INVALID_CBOR CTAP2_ERR_INVALID_CBOR
160#define ERROR_MISSING_PARAMETER CTAP2_ERR_MISSING_PARAMETER
161#define ERROR_LIMIT_EXCEEDED CTAP2_ERR_LIMIT_EXCEEDED
162#define ERROR_CREDENTIAL_EXCLUDED CTAP2_ERR_CREDENTIAL_EXCLUDED
163#define ERROR_PROCESSING CTAP2_ERR_PROCESSING
164#define ERROR_INVALID_CREDENTIAL CTAP2_ERR_INVALID_CREDENTIAL
165#define ERROR_USER_ACTION_PENDING CTAP2_ERR_USER_ACTION_PENDING
166#define ERROR_OPERATION_PENDING CTAP2_ERR_OPERATION_PENDING
167#define ERROR_NO_OPERATIONS CTAP2_ERR_NO_OPERATIONS
168#define ERROR_UNSUPPORTED_ALGORITHM CTAP2_ERR_UNSUPPORTED_ALGORITHM
169#define ERROR_OPERATION_DENIED CTAP2_ERR_OPERATION_DENIED
170#define ERROR_KEY_STORE_FULL CTAP2_ERR_KEY_STORE_FULL
171#define ERROR_UNSUPPORTED_OPTION CTAP2_ERR_UNSUPPORTED_OPTION
172#define ERROR_INVALID_OPTION CTAP2_ERR_INVALID_OPTION
173#define ERROR_KEEPALIVE_CANCEL CTAP2_ERR_KEEPALIVE_CANCEL
174#define ERROR_NO_CREDENTIALS CTAP2_ERR_NO_CREDENTIALS
175#define ERROR_USER_ACTION_TIMEOUT CTAP2_ERR_USER_ACTION_TIMEOUT
176#define ERROR_NOT_ALLOWED CTAP2_ERR_NOT_ALLOWED
177#define ERROR_PIN_INVALID CTAP2_ERR_PIN_INVALID
178#define ERROR_PIN_BLOCKED CTAP2_ERR_PIN_BLOCKED
179#define ERROR_PIN_AUTH_INVALID CTAP2_ERR_PIN_AUTH_INVALID
180#define ERROR_PIN_AUTH_BLOCKED CTAP2_ERR_PIN_AUTH_BLOCKED
181#define ERROR_PIN_NOT_SET CTAP2_ERR_PIN_NOT_SET
182#define ERROR_PIN_REQUIRED CTAP2_ERR_PUAT_REQUIRED
183#define ERROR_PIN_POLICY_VIOLATION CTAP2_ERR_PIN_POLICY_VIOLATION
184#define ERROR_REQUEST_TOO_LARGE CTAP2_ERR_REQUEST_TOO_LARGE
185#define ERROR_ACTION_TIMEOUT CTAP2_ERR_ACTION_TIMEOUT
186#define ERROR_UP_REQUIRED CTAP2_ERR_UP_REQUIRED
187// Proprietary errors
188#define ERROR_PROP_UNKNOWN_COMMAND PROP_ERR_UNKNOWN_COMMAND
189#define ERROR_PROP_COMMAND_TOO_LONG PROP_ERR_COMMAND_TOO_LONG
190#define ERROR_PROP_INVALID_CONTINUATION PROP_ERR_INVALID_CONTINUATION
191#define ERROR_PROP_UNEXPECTED_CONTINUATION PROP_ERR_UNEXPECTED_CONTINUATION
192#define ERROR_PROP_CONTINUATION_OVERFLOW PROP_ERR_CONTINUATION_OVERFLOW
193#define ERROR_PROP_MESSAGE_TOO_SHORT PROP_ERR_MESSAGE_TOO_SHORT
194#define ERROR_PROP_UNCONSISTENT_MSG_LENGTH PROP_ERR_UNCONSISTENT_MSG_LENGTH
195#define ERROR_PROP_UNSUPPORTED_MSG_APDU PROP_ERR_UNSUPPORTED_MSG_APDU
196#define ERROR_PROP_INVALID_DATA_LENGTH_APDU PROP_ERR_INVALID_DATA_LENGTH_APDU
197#define ERROR_PROP_INTERNAL_ERROR_APDU PROP_ERR_INTERNAL_ERROR_APDU
198#define ERROR_PROP_INVALID_PARAMETERS_APDU PROP_ERR_INVALID_PARAMETERS_APDU
199#define ERROR_PROP_INVALID_DATA_APDU PROP_ERR_INVALID_DATA_APDU
200#define ERROR_PROP_DEVICE_NOT_SETUP PROP_ERR_DEVICE_NOT_SETUP
201#define ERROR_PROP_MEDIA_MIXED PROP_ERR_MEDIA_MIXED
202#define ERROR_PROP_RPID_MEDIA_DENIED PROP_ERR_RPID_MEDIA_DENIED
203
204#define U2F_CMD_MSG U2F_COMMAND_MSG
205
206/* Exported macros------------------------------------------------------------*/
207
208/* Exported variables --------------------------------------------------------*/
209
210/* Exported functions prototypes--------------------------------------------- */
u2f_hid_capability_t
Definition u2f_types.h:57
@ U2F_HID_CAPABILITY_CBOR
Definition u2f_types.h:59
@ U2F_HID_CAPABILITY_NMSG
Definition u2f_types.h:60
@ U2F_HID_CAPABILITY_WINK
Definition u2f_types.h:58
u2f_state_t
Definition u2f_types.h:25
@ U2F_STATE_IDLE
Definition u2f_types.h:26
@ 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:52
@ U2F_KEEP_ALIVE_REASON_UP_NEEDED
Definition u2f_types.h:54
@ U2F_KEEP_ALIVE_REASON_PROCESSING
Definition u2f_types.h:53
u2f_error_t
Definition u2f_types.h:63
@ PROP_ERR_UNSUPPORTED_MSG_APDU
Definition u2f_types.h:128
@ CTAP2_ERR_KEY_STORE_FULL
Definition u2f_types.h:92
@ CTAP2_ERR_UV_INVALID
Definition u2f_types.h:112
@ CTAP1_ERR_TIMEOUT
Definition u2f_types.h:70
@ PROP_ERR_RPID_MEDIA_DENIED
Definition u2f_types.h:135
@ CTAP2_ERR_OPERATION_DENIED
Definition u2f_types.h:91
@ CTAP2_ERR_USER_ACTION_TIMEOUT
Definition u2f_types.h:97
@ CTAP1_ERR_INVALID_CHANNEL
Definition u2f_types.h:73
@ PROP_ERR_CONTINUATION_OVERFLOW
Definition u2f_types.h:125
@ CTAP2_ERR_UNSUPPORTED_OPTION
Definition u2f_types.h:93
@ CTAP2_ERR_VENDOR_FIRST
Definition u2f_types.h:117
@ CTAP2_ERR_INTEGRITY_FAILURE
Definition u2f_types.h:110
@ PROP_ERR_UNEXPECTED_CONTINUATION
Definition u2f_types.h:124
@ CTAP2_ERR_MISSING_PARAMETER
Definition u2f_types.h:80
@ CTAP2_ERR_OPERATION_PENDING
Definition u2f_types.h:88
@ CTAP1_ERR_SUCCESS
Definition u2f_types.h:65
@ CTAP2_ERR_REQUEST_TOO_LARGE
Definition u2f_types.h:106
@ CTAP2_ERR_VENDOR_LAST
Definition u2f_types.h:118
@ CTAP2_ERR_CREDENTIAL_EXCLUDED
Definition u2f_types.h:84
@ CTAP2_ERR_UNAUTHORIZED_PERMISSION
Definition u2f_types.h:113
@ CTAP2_ERR_KEEPALIVE_CANCEL
Definition u2f_types.h:95
@ CTAP1_ERR_OTHER
Definition u2f_types.h:74
@ CTAP2_ERR_EXTENSION_FIRST
Definition u2f_types.h:115
@ PROP_ERR_INTERNAL_ERROR_APDU
Definition u2f_types.h:130
@ CTAP2_ERR_PIN_INVALID
Definition u2f_types.h:99
@ CTAP2_ERR_PIN_POLICY_VIOLATION
Definition u2f_types.h:105
@ CTAP2_ERR_NO_CREDENTIALS
Definition u2f_types.h:96
@ PROP_ERR_INVALID_CONTINUATION
Definition u2f_types.h:123
@ CTAP2_OK
Definition u2f_types.h:77
@ PROP_ERR_MESSAGE_TOO_SHORT
Definition u2f_types.h:126
@ CTAP2_ERR_NO_OPERATIONS
Definition u2f_types.h:89
@ CTAP2_ERR_INVALID_SUBCOMMAND
Definition u2f_types.h:111
@ PROP_ERR_MEDIA_MIXED
Definition u2f_types.h:134
@ CTAP2_ERR_UNSUPPORTED_ALGORITHM
Definition u2f_types.h:90
@ PROP_ERR_UNKNOWN_COMMAND
Definition u2f_types.h:121
@ CTAP2_ERR_PROCESSING
Definition u2f_types.h:85
@ CTAP2_ERR_INVALID_OPTION
Definition u2f_types.h:94
@ CTAP2_ERR_PIN_NOT_SET
Definition u2f_types.h:103
@ CTAP2_ERR_FP_DATABASE_FULL
Definition u2f_types.h:82
@ CTAP2_ERR_CBOR_UNEXPECTED_TYPE
Definition u2f_types.h:78
@ CTAP2_ERR_SPEC_LAST
Definition u2f_types.h:114
@ PROP_ERR_INVALID_DATA_APDU
Definition u2f_types.h:132
@ PROP_ERR_COMMAND_TOO_LONG
Definition u2f_types.h:122
@ CTAP2_ERR_PIN_AUTH_BLOCKED
Definition u2f_types.h:102
@ PROP_ERR_INVALID_PARAMETERS_APDU
Definition u2f_types.h:131
@ PROP_ERR_INVALID_DATA_LENGTH_APDU
Definition u2f_types.h:129
@ CTAP1_ERR_LOCK_REQUIRED
Definition u2f_types.h:72
@ CTAP2_ERR_LARGE_BLOB_STORAGE_FULL
Definition u2f_types.h:83
@ CTAP1_ERR_INVALID_COMMAND
Definition u2f_types.h:66
@ CTAP2_ERR_UP_REQUIRED
Definition u2f_types.h:108
@ CTAP2_ERR_INVALID_CREDENTIAL
Definition u2f_types.h:86
@ CTAP2_ERR_UV_BLOCKED
Definition u2f_types.h:109
@ CTAP1_ERR_CHANNEL_BUSY
Definition u2f_types.h:71
@ CTAP2_ERR_PIN_AUTH_INVALID
Definition u2f_types.h:101
@ PROP_ERR_DEVICE_NOT_SETUP
Definition u2f_types.h:133
@ CTAP2_ERR_PIN_BLOCKED
Definition u2f_types.h:100
@ CTAP1_ERR_INVALID_LENGTH
Definition u2f_types.h:68
@ CTAP2_ERR_ACTION_TIMEOUT
Definition u2f_types.h:107
@ CTAP2_ERR_EXTENSION_LAST
Definition u2f_types.h:116
@ CTAP2_ERR_INVALID_CBOR
Definition u2f_types.h:79
@ CTAP1_ERR_INVALID_PARAMETER
Definition u2f_types.h:67
@ CTAP2_ERR_NOT_ALLOWED
Definition u2f_types.h:98
@ CTAP1_ERR_INVALID_SEQ
Definition u2f_types.h:69
@ PROP_ERR_UNCONSISTENT_MSG_LENGTH
Definition u2f_types.h:127
@ CTAP2_ERR_USER_ACTION_PENDING
Definition u2f_types.h:87
@ CTAP2_ERR_PUAT_REQUIRED
Definition u2f_types.h:104
@ CTAP2_ERR_LIMIT_EXCEEDED
Definition u2f_types.h:81
u2f_command_t
Definition u2f_types.h:32
@ U2F_COMMAND_HID_WINK
Definition u2f_types.h:41
@ U2F_COMMAND_ERROR
Definition u2f_types.h:36
@ U2F_COMMAND_BLE_CANCEL
Definition u2f_types.h:48
@ U2F_COMMAND_HID_LOCK
Definition u2f_types.h:39
@ U2F_COMMAND_PING
Definition u2f_types.h:34
@ U2F_COMMAND_HID_CBOR
Definition u2f_types.h:42
@ U2F_COMMAND_HID_INIT
Definition u2f_types.h:40
@ U2F_COMMAND_BLE_KEEP_ALIVE
Definition u2f_types.h:47
@ U2F_COMMAND_MSG
Definition u2f_types.h:35
@ U2F_COMMAND_HID_CANCEL
Definition u2f_types.h:43
@ U2F_COMMAND_HID_KEEP_ALIVE
Definition u2f_types.h:44