xref: /openbsd-src/lib/libfido2/src/fido/err.h (revision 1a8dbaac879b9f3335ad7fb25429ce63ac1d6bac)
1 /*
2  * Copyright (c) 2018 Yubico AB. All rights reserved.
3  * Use of this source code is governed by a BSD-style
4  * license that can be found in the LICENSE file.
5  */
6 
7 #ifndef _FIDO_ERR_H
8 #define _FIDO_ERR_H
9 
10 #define	FIDO_ERR_SUCCESS		0x00
11 #define FIDO_ERR_INVALID_COMMAND	0x01
12 #define FIDO_ERR_INVALID_PARAMETER	0x02
13 #define FIDO_ERR_INVALID_LENGTH		0x03
14 #define FIDO_ERR_INVALID_SEQ		0x04
15 #define FIDO_ERR_TIMEOUT		0x05
16 #define FIDO_ERR_CHANNEL_BUSY		0x06
17 #define FIDO_ERR_LOCK_REQUIRED		0x0a
18 #define FIDO_ERR_INVALID_CHANNEL	0x0b
19 #define FIDO_ERR_CBOR_UNEXPECTED_TYPE	0x11
20 #define FIDO_ERR_INVALID_CBOR		0x12
21 #define FIDO_ERR_MISSING_PARAMETER	0x14
22 #define FIDO_ERR_LIMIT_EXCEEDED		0x15
23 #define FIDO_ERR_UNSUPPORTED_EXTENSION	0x16
24 #define FIDO_ERR_FP_DATABASE_FULL	0x17
25 #define FIDO_ERR_CREDENTIAL_EXCLUDED	0x19
26 #define FIDO_ERR_PROCESSING		0x21
27 #define FIDO_ERR_INVALID_CREDENTIAL	0x22
28 #define FIDO_ERR_USER_ACTION_PENDING	0x23
29 #define FIDO_ERR_OPERATION_PENDING	0x24
30 #define FIDO_ERR_NO_OPERATIONS		0x25
31 #define FIDO_ERR_UNSUPPORTED_ALGORITHM	0x26
32 #define FIDO_ERR_OPERATION_DENIED	0x27
33 #define FIDO_ERR_KEY_STORE_FULL		0x28
34 #define FIDO_ERR_NOT_BUSY		0x29
35 #define FIDO_ERR_NO_OPERATION_PENDING	0x2a
36 #define FIDO_ERR_UNSUPPORTED_OPTION	0x2b
37 #define FIDO_ERR_INVALID_OPTION		0x2c
38 #define FIDO_ERR_KEEPALIVE_CANCEL	0x2d
39 #define FIDO_ERR_NO_CREDENTIALS		0x2e
40 #define FIDO_ERR_USER_ACTION_TIMEOUT	0x2f
41 #define FIDO_ERR_NOT_ALLOWED		0x30
42 #define FIDO_ERR_PIN_INVALID		0x31
43 #define FIDO_ERR_PIN_BLOCKED		0x32
44 #define FIDO_ERR_PIN_AUTH_INVALID	0x33
45 #define FIDO_ERR_PIN_AUTH_BLOCKED	0x34
46 #define FIDO_ERR_PIN_NOT_SET		0x35
47 #define FIDO_ERR_PIN_REQUIRED		0x36
48 #define FIDO_ERR_PIN_POLICY_VIOLATION	0x37
49 #define FIDO_ERR_PIN_TOKEN_EXPIRED	0x38
50 #define FIDO_ERR_REQUEST_TOO_LARGE	0x39
51 #define FIDO_ERR_ACTION_TIMEOUT		0x3a
52 #define FIDO_ERR_UP_REQUIRED		0x3b
53 #define FIDO_ERR_UV_BLOCKED		0x3c
54 #define FIDO_ERR_ERR_OTHER		0x7f
55 #define FIDO_ERR_SPEC_LAST		0xdf
56 
57 /* defined internally */
58 #define FIDO_OK				FIDO_ERR_SUCCESS
59 #define FIDO_ERR_TX			-1
60 #define FIDO_ERR_RX			-2
61 #define FIDO_ERR_RX_NOT_CBOR		-3
62 #define FIDO_ERR_RX_INVALID_CBOR	-4
63 #define FIDO_ERR_INVALID_PARAM		-5
64 #define FIDO_ERR_INVALID_SIG		-6
65 #define FIDO_ERR_INVALID_ARGUMENT	-7
66 #define FIDO_ERR_USER_PRESENCE_REQUIRED	-8
67 #define FIDO_ERR_INTERNAL		-9
68 
69 #ifdef __cplusplus
70 extern "C" {
71 #endif /* __cplusplus */
72 
73 const char *fido_strerr(int);
74 
75 #ifdef __cplusplus
76 } /* extern "C" */
77 #endif /* __cplusplus */
78 
79 #endif /* _FIDO_ERR_H */
80