Home | History | Annotate | Line # | Download | only in fido
      1 /*
      2  * Copyright (c) 2018 Yubico AB. All rights reserved.
      3  * SPDX-License-Identifier: BSD-2-Clause
      4  *
      5  * Redistribution and use in source and binary forms, with or without
      6  * modification, are permitted provided that the following conditions are
      7  * met:
      8  *
      9  *    1. Redistributions of source code must retain the above copyright
     10  *       notice, this list of conditions and the following disclaimer.
     11  *    2. Redistributions in binary form must reproduce the above copyright
     12  *       notice, this list of conditions and the following disclaimer in
     13  *       the documentation and/or other materials provided with the
     14  *       distribution.
     15  *
     16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     17  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     18  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     19  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     20  * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     21  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27  */
     28 
     29 #ifndef _FIDO_ERR_H
     30 #define _FIDO_ERR_H
     31 
     32 #define FIDO_ERR_SUCCESS		0x00
     33 #define FIDO_ERR_INVALID_COMMAND	0x01
     34 #define FIDO_ERR_INVALID_PARAMETER	0x02
     35 #define FIDO_ERR_INVALID_LENGTH		0x03
     36 #define FIDO_ERR_INVALID_SEQ		0x04
     37 #define FIDO_ERR_TIMEOUT		0x05
     38 #define FIDO_ERR_CHANNEL_BUSY		0x06
     39 #define FIDO_ERR_LOCK_REQUIRED		0x0a
     40 #define FIDO_ERR_INVALID_CHANNEL	0x0b
     41 #define FIDO_ERR_CBOR_UNEXPECTED_TYPE	0x11
     42 #define FIDO_ERR_INVALID_CBOR		0x12
     43 #define FIDO_ERR_MISSING_PARAMETER	0x14
     44 #define FIDO_ERR_LIMIT_EXCEEDED		0x15
     45 #define FIDO_ERR_UNSUPPORTED_EXTENSION	0x16
     46 #define FIDO_ERR_FP_DATABASE_FULL	0x17
     47 #define FIDO_ERR_LARGEBLOB_STORAGE_FULL	0x18
     48 #define FIDO_ERR_CREDENTIAL_EXCLUDED	0x19
     49 #define FIDO_ERR_PROCESSING		0x21
     50 #define FIDO_ERR_INVALID_CREDENTIAL	0x22
     51 #define FIDO_ERR_USER_ACTION_PENDING	0x23
     52 #define FIDO_ERR_OPERATION_PENDING	0x24
     53 #define FIDO_ERR_NO_OPERATIONS		0x25
     54 #define FIDO_ERR_UNSUPPORTED_ALGORITHM	0x26
     55 #define FIDO_ERR_OPERATION_DENIED	0x27
     56 #define FIDO_ERR_KEY_STORE_FULL		0x28
     57 #define FIDO_ERR_NOT_BUSY		0x29
     58 #define FIDO_ERR_NO_OPERATION_PENDING	0x2a
     59 #define FIDO_ERR_UNSUPPORTED_OPTION	0x2b
     60 #define FIDO_ERR_INVALID_OPTION		0x2c
     61 #define FIDO_ERR_KEEPALIVE_CANCEL	0x2d
     62 #define FIDO_ERR_NO_CREDENTIALS		0x2e
     63 #define FIDO_ERR_USER_ACTION_TIMEOUT	0x2f
     64 #define FIDO_ERR_NOT_ALLOWED		0x30
     65 #define FIDO_ERR_PIN_INVALID		0x31
     66 #define FIDO_ERR_PIN_BLOCKED		0x32
     67 #define FIDO_ERR_PIN_AUTH_INVALID	0x33
     68 #define FIDO_ERR_PIN_AUTH_BLOCKED	0x34
     69 #define FIDO_ERR_PIN_NOT_SET		0x35
     70 #define FIDO_ERR_PIN_REQUIRED		0x36
     71 #define FIDO_ERR_PIN_POLICY_VIOLATION	0x37
     72 #define FIDO_ERR_PIN_TOKEN_EXPIRED	0x38
     73 #define FIDO_ERR_REQUEST_TOO_LARGE	0x39
     74 #define FIDO_ERR_ACTION_TIMEOUT		0x3a
     75 #define FIDO_ERR_UP_REQUIRED		0x3b
     76 #define FIDO_ERR_UV_BLOCKED		0x3c
     77 #define FIDO_ERR_UV_INVALID		0x3f
     78 #define FIDO_ERR_UNAUTHORIZED_PERM	0x40
     79 #define FIDO_ERR_ERR_OTHER		0x7f
     80 #define FIDO_ERR_SPEC_LAST		0xdf
     81 
     82 /* defined internally */
     83 #define FIDO_OK				FIDO_ERR_SUCCESS
     84 #define FIDO_ERR_TX			-1
     85 #define FIDO_ERR_RX			-2
     86 #define FIDO_ERR_RX_NOT_CBOR		-3
     87 #define FIDO_ERR_RX_INVALID_CBOR	-4
     88 #define FIDO_ERR_INVALID_PARAM		-5
     89 #define FIDO_ERR_INVALID_SIG		-6
     90 #define FIDO_ERR_INVALID_ARGUMENT	-7
     91 #define FIDO_ERR_USER_PRESENCE_REQUIRED	-8
     92 #define FIDO_ERR_INTERNAL		-9
     93 #define FIDO_ERR_NOTFOUND		-10
     94 #define FIDO_ERR_COMPRESS		-11
     95 
     96 #ifdef __cplusplus
     97 extern "C" {
     98 #endif /* __cplusplus */
     99 
    100 const char *fido_strerr(int);
    101 
    102 #ifdef __cplusplus
    103 } /* extern "C" */
    104 #endif /* __cplusplus */
    105 
    106 #endif /* _FIDO_ERR_H */
    107