xref: /openbsd-src/lib/libfido2/src/err.c (revision c4a807ed13283181a6a84fdf571f4571a1b25eac)
1d75efeb7Sdjm /*
2d75efeb7Sdjm  * Copyright (c) 2018 Yubico AB. All rights reserved.
3d75efeb7Sdjm  * Use of this source code is governed by a BSD-style
4d75efeb7Sdjm  * license that can be found in the LICENSE file.
5d75efeb7Sdjm  */
6d75efeb7Sdjm 
7d75efeb7Sdjm #include "fido/err.h"
8d75efeb7Sdjm 
9d75efeb7Sdjm const char *
fido_strerr(int n)10d75efeb7Sdjm fido_strerr(int n)
11d75efeb7Sdjm {
12d75efeb7Sdjm 	switch (n) {
13d75efeb7Sdjm 	case FIDO_ERR_SUCCESS:
14d75efeb7Sdjm 		return "FIDO_ERR_SUCCESS";
15d75efeb7Sdjm 	case FIDO_ERR_INVALID_COMMAND:
16d75efeb7Sdjm 		return "FIDO_ERR_INVALID_COMMAND";
17d75efeb7Sdjm 	case FIDO_ERR_INVALID_PARAMETER:
18d75efeb7Sdjm 		return "FIDO_ERR_INVALID_PARAMETER";
19d75efeb7Sdjm 	case FIDO_ERR_INVALID_LENGTH:
20d75efeb7Sdjm 		return "FIDO_ERR_INVALID_LENGTH";
21d75efeb7Sdjm 	case FIDO_ERR_INVALID_SEQ:
22d75efeb7Sdjm 		return "FIDO_ERR_INVALID_SEQ";
23d75efeb7Sdjm 	case FIDO_ERR_TIMEOUT:
24d75efeb7Sdjm 		return "FIDO_ERR_TIMEOUT";
25d75efeb7Sdjm 	case FIDO_ERR_CHANNEL_BUSY:
26d75efeb7Sdjm 		return "FIDO_ERR_CHANNEL_BUSY";
27d75efeb7Sdjm 	case FIDO_ERR_LOCK_REQUIRED:
28d75efeb7Sdjm 		return "FIDO_ERR_LOCK_REQUIRED";
29d75efeb7Sdjm 	case FIDO_ERR_INVALID_CHANNEL:
30d75efeb7Sdjm 		return "FIDO_ERR_INVALID_CHANNEL";
31d75efeb7Sdjm 	case FIDO_ERR_CBOR_UNEXPECTED_TYPE:
3232a20e26Sdjm 		return "FIDO_ERR_CBOR_UNEXPECTED_TYPE";
33d75efeb7Sdjm 	case FIDO_ERR_INVALID_CBOR:
34d75efeb7Sdjm 		return "FIDO_ERR_INVALID_CBOR";
35d75efeb7Sdjm 	case FIDO_ERR_MISSING_PARAMETER:
36d75efeb7Sdjm 		return "FIDO_ERR_MISSING_PARAMETER";
37d75efeb7Sdjm 	case FIDO_ERR_LIMIT_EXCEEDED:
38d75efeb7Sdjm 		return "FIDO_ERR_LIMIT_EXCEEDED";
39d75efeb7Sdjm 	case FIDO_ERR_UNSUPPORTED_EXTENSION:
40d75efeb7Sdjm 		return "FIDO_ERR_UNSUPPORTED_EXTENSION";
41739189a3Sdjm 	case FIDO_ERR_FP_DATABASE_FULL:
42739189a3Sdjm 		return "FIDO_ERR_FP_DATABASE_FULL";
43*c4a807edSdjm 	case FIDO_ERR_LARGEBLOB_STORAGE_FULL:
44*c4a807edSdjm 		return "FIDO_ERR_LARGEBLOB_STORAGE_FULL";
45d75efeb7Sdjm 	case FIDO_ERR_CREDENTIAL_EXCLUDED:
46d75efeb7Sdjm 		return "FIDO_ERR_CREDENTIAL_EXCLUDED";
47d75efeb7Sdjm 	case FIDO_ERR_PROCESSING:
48d75efeb7Sdjm 		return "FIDO_ERR_PROCESSING";
49d75efeb7Sdjm 	case FIDO_ERR_INVALID_CREDENTIAL:
50d75efeb7Sdjm 		return "FIDO_ERR_INVALID_CREDENTIAL";
51d75efeb7Sdjm 	case FIDO_ERR_USER_ACTION_PENDING:
5232a20e26Sdjm 		return "FIDO_ERR_USER_ACTION_PENDING";
53d75efeb7Sdjm 	case FIDO_ERR_OPERATION_PENDING:
54d75efeb7Sdjm 		return "FIDO_ERR_OPERATION_PENDING";
55d75efeb7Sdjm 	case FIDO_ERR_NO_OPERATIONS:
56d75efeb7Sdjm 		return "FIDO_ERR_NO_OPERATIONS";
57d75efeb7Sdjm 	case FIDO_ERR_UNSUPPORTED_ALGORITHM:
58d75efeb7Sdjm 		return "FIDO_ERR_UNSUPPORTED_ALGORITHM";
59d75efeb7Sdjm 	case FIDO_ERR_OPERATION_DENIED:
60d75efeb7Sdjm 		return "FIDO_ERR_OPERATION_DENIED";
61d75efeb7Sdjm 	case FIDO_ERR_KEY_STORE_FULL:
6232a20e26Sdjm 		return "FIDO_ERR_KEY_STORE_FULL";
63d75efeb7Sdjm 	case FIDO_ERR_NOT_BUSY:
64d75efeb7Sdjm 		return "FIDO_ERR_NOT_BUSY";
65d75efeb7Sdjm 	case FIDO_ERR_NO_OPERATION_PENDING:
6632a20e26Sdjm 		return "FIDO_ERR_NO_OPERATION_PENDING";
67d75efeb7Sdjm 	case FIDO_ERR_UNSUPPORTED_OPTION:
68d75efeb7Sdjm 		return "FIDO_ERR_UNSUPPORTED_OPTION";
69d75efeb7Sdjm 	case FIDO_ERR_INVALID_OPTION:
70d75efeb7Sdjm 		return "FIDO_ERR_INVALID_OPTION";
71d75efeb7Sdjm 	case FIDO_ERR_KEEPALIVE_CANCEL:
72d75efeb7Sdjm 		return "FIDO_ERR_KEEPALIVE_CANCEL";
73d75efeb7Sdjm 	case FIDO_ERR_NO_CREDENTIALS:
74d75efeb7Sdjm 		return "FIDO_ERR_NO_CREDENTIALS";
75d75efeb7Sdjm 	case FIDO_ERR_USER_ACTION_TIMEOUT:
7632a20e26Sdjm 		return "FIDO_ERR_USER_ACTION_TIMEOUT";
77d75efeb7Sdjm 	case FIDO_ERR_NOT_ALLOWED:
78d75efeb7Sdjm 		return "FIDO_ERR_NOT_ALLOWED";
79d75efeb7Sdjm 	case FIDO_ERR_PIN_INVALID:
80d75efeb7Sdjm 		return "FIDO_ERR_PIN_INVALID";
81d75efeb7Sdjm 	case FIDO_ERR_PIN_BLOCKED:
82d75efeb7Sdjm 		return "FIDO_ERR_PIN_BLOCKED";
83d75efeb7Sdjm 	case FIDO_ERR_PIN_AUTH_INVALID:
8432a20e26Sdjm 		return "FIDO_ERR_PIN_AUTH_INVALID";
85d75efeb7Sdjm 	case FIDO_ERR_PIN_AUTH_BLOCKED:
8632a20e26Sdjm 		return "FIDO_ERR_PIN_AUTH_BLOCKED";
87d75efeb7Sdjm 	case FIDO_ERR_PIN_NOT_SET:
8832a20e26Sdjm 		return "FIDO_ERR_PIN_NOT_SET";
89d75efeb7Sdjm 	case FIDO_ERR_PIN_REQUIRED:
90d75efeb7Sdjm 		return "FIDO_ERR_PIN_REQUIRED";
91d75efeb7Sdjm 	case FIDO_ERR_PIN_POLICY_VIOLATION:
9232a20e26Sdjm 		return "FIDO_ERR_PIN_POLICY_VIOLATION";
93d75efeb7Sdjm 	case FIDO_ERR_PIN_TOKEN_EXPIRED:
9432a20e26Sdjm 		return "FIDO_ERR_PIN_TOKEN_EXPIRED";
95d75efeb7Sdjm 	case FIDO_ERR_REQUEST_TOO_LARGE:
9632a20e26Sdjm 		return "FIDO_ERR_REQUEST_TOO_LARGE";
97d75efeb7Sdjm 	case FIDO_ERR_ACTION_TIMEOUT:
98d75efeb7Sdjm 		return "FIDO_ERR_ACTION_TIMEOUT";
99d75efeb7Sdjm 	case FIDO_ERR_UP_REQUIRED:
100d75efeb7Sdjm 		return "FIDO_ERR_UP_REQUIRED";
101739189a3Sdjm 	case FIDO_ERR_UV_BLOCKED:
102739189a3Sdjm 		return "FIDO_ERR_UV_BLOCKED";
103*c4a807edSdjm 	case FIDO_ERR_UV_INVALID:
104*c4a807edSdjm 		return "FIDO_ERR_UV_INVALID";
105*c4a807edSdjm 	case FIDO_ERR_UNAUTHORIZED_PERM:
106*c4a807edSdjm 		return "FIDO_ERR_UNAUTHORIZED_PERM";
107d75efeb7Sdjm 	case FIDO_ERR_ERR_OTHER:
10832a20e26Sdjm 		return "FIDO_ERR_ERR_OTHER";
109d75efeb7Sdjm 	case FIDO_ERR_SPEC_LAST:
110d75efeb7Sdjm 		return "FIDO_ERR_SPEC_LAST";
111d75efeb7Sdjm 	case FIDO_ERR_TX:
112d75efeb7Sdjm 		return "FIDO_ERR_TX";
113d75efeb7Sdjm 	case FIDO_ERR_RX:
114d75efeb7Sdjm 		return "FIDO_ERR_RX";
115d75efeb7Sdjm 	case FIDO_ERR_RX_NOT_CBOR:
116d75efeb7Sdjm 		return "FIDO_ERR_RX_NOT_CBOR";
117d75efeb7Sdjm 	case FIDO_ERR_RX_INVALID_CBOR:
118d75efeb7Sdjm 		return "FIDO_ERR_RX_INVALID_CBOR";
119d75efeb7Sdjm 	case FIDO_ERR_INVALID_PARAM:
120d75efeb7Sdjm 		return "FIDO_ERR_INVALID_PARAM";
121d75efeb7Sdjm 	case FIDO_ERR_INVALID_SIG:
122d75efeb7Sdjm 		return "FIDO_ERR_INVALID_SIG";
123d75efeb7Sdjm 	case FIDO_ERR_INVALID_ARGUMENT:
124d75efeb7Sdjm 		return "FIDO_ERR_INVALID_ARGUMENT";
125d75efeb7Sdjm 	case FIDO_ERR_USER_PRESENCE_REQUIRED:
126d75efeb7Sdjm 		return "FIDO_ERR_USER_PRESENCE_REQUIRED";
127*c4a807edSdjm 	case FIDO_ERR_NOTFOUND:
128*c4a807edSdjm 		return "FIDO_ERR_NOTFOUND";
129*c4a807edSdjm 	case FIDO_ERR_COMPRESS:
130*c4a807edSdjm 		return "FIDO_ERR_COMPRESS";
131d75efeb7Sdjm 	case FIDO_ERR_INTERNAL:
132d75efeb7Sdjm 		return "FIDO_ERR_INTERNAL";
133d75efeb7Sdjm 	default:
134d75efeb7Sdjm 		return "FIDO_ERR_UNKNOWN";
135d75efeb7Sdjm 	}
136d75efeb7Sdjm }
137