include/tls: summarize all error symbols in mbedTLS
authorJunyeon LEE <junyeon2.lee@samsung.com>
Tue, 18 Jul 2017 04:59:11 +0000 (13:59 +0900)
committerEunBong Song <eunb.song@samsung.com>
Wed, 30 Aug 2017 04:15:46 +0000 (21:15 -0700)
This commit integrates all error symbols in mbedTLS for
easy searching error number.

Change-Id: Ia7cff5b8380e6bee939e91143e27be2872c01675
Signed-off-by: Junyeon LEE <junyeon2.lee@samsung.com>
os/include/tls/error.txt [new file with mode: 0644]

diff --git a/os/include/tls/error.txt b/os/include/tls/error.txt
new file mode 100644 (file)
index 0000000..67f8f2c
--- /dev/null
@@ -0,0 +1,303 @@
+/* This file is integrated all error symbol in mbedTLS */
+
+------------------------------ aes.h ------------------------------
+
+MBEDTLS_ERR_AES_INVALID_KEY_LENGTH             -0x0020         /**< Invalid key length. */
+MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH   -0x0022         /**< Invalid data input length. */
+
+------------------------------ asn1.h ------------------------------
+
+MBEDTLS_ERR_ASN1_OUT_OF_DATA           -0x0060 /**< Out of data when parsing an ASN1 data structure. */
+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG                -0x0062 /**< ASN1 tag was of an unexpected value. */
+MBEDTLS_ERR_ASN1_INVALID_LENGTH                -0x0064 /**< Error when trying to determine the length or invalid length. */
+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH       -0x0066 /**< Actual length differs from expected length. */
+MBEDTLS_ERR_ASN1_INVALID_DATA          -0x0068 /**< Data is invalid. (not used) */
+MBEDTLS_ERR_ASN1_ALLOC_FAILED          -0x006A /**< Memory allocation failed */
+MBEDTLS_ERR_ASN1_BUF_TOO_SMALL         -0x006C /**< Buffer too small when writing ASN.1 data structure. */
+
+------------------------------ base64.h ------------------------------
+
+MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL            -0x002A /**< Output buffer too small. */
+MBEDTLS_ERR_BASE64_INVALID_CHARACTER   -0x002C /**< Invalid character in input. */
+
+------------------------------ bignum.h ------------------------------
+
+MBEDTLS_ERR_MPI_FILE_IO_ERROR          -0x0002 /**< An error occurred while reading from or writing to a file. */
+MBEDTLS_ERR_MPI_BAD_INPUT_DATA         -0x0004 /**< Bad input parameters to function. */
+MBEDTLS_ERR_MPI_INVALID_CHARACTER      -0x0006 /**< There is an invalid character in the digit string. */
+MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL       -0x0008 /**< The buffer is too small to write to. */
+MBEDTLS_ERR_MPI_NEGATIVE_VALUE         -0x000A /**< The input arguments are negative or result in illegal output. */
+MBEDTLS_ERR_MPI_DIVISION_BY_ZERO       -0x000C /**< The input argument for division is zero, which is not allowed. */
+MBEDTLS_ERR_MPI_NOT_ACCEPTABLE         -0x000E /**< The input arguments are not acceptable. */
+MBEDTLS_ERR_MPI_ALLOC_FAILED           -0x0010 /**< Memory allocation failed. */
+
+------------------------------ blowfish.h ------------------------------
+
+MBEDTLS_ERR_BLOWFISH_INVALID_KEY_LENGTH                -0x0016 /**< Invalid key length. */
+MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH      -0x0018 /**< Invalid data input length. */
+
+------------------------------ camellia.h ------------------------------
+
+MBEDTLS_ERR_CAMELLIA_INVALID_KEY_LENGTH                -0x0024 /**< Invalid key length. */
+MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH      -0x0026 /**< Invalid data input length. */
+
+------------------------------ ccm.h ------------------------------
+
+MBEDTLS_ERR_CCM_BAD_INPUT      -0x000D /**< Bad input parameters to function. */
+MBEDTLS_ERR_CCM_AUTH_FAILED    -0x000F /**< Authenticated decryption failed. */
+
+------------------------------ cipher.h ------------------------------
+
+MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE -0x6080 /**< The selected feature is not available. */
+MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA              -0x6100 /**< Bad input parameters to function. */
+MBEDTLS_ERR_CIPHER_ALLOC_FAILED                        -0x6180 /**< Failed to allocate memory. */
+MBEDTLS_ERR_CIPHER_INVALID_PADDING             -0x6200 /**< Input data contains invalid padding and is rejected. */
+MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED -0x6280 /**< Decryption of block requires a full block. */
+MBEDTLS_ERR_CIPHER_AUTH_FAILED                 -0x6300 /**< Authentication failed (for AEAD modes). */
+MBEDTLS_ERR_CIPHER_INVALID_CONTEXT             -0x6380 /**< The context is invalid, eg because it was free()ed. */
+
+------------------------------ ctr_drbg.h ------------------------------
+MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED     -0x0034 /**< The entropy source failed. */
+MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG           -0x0036 /**< Too many random requested in single call. */
+MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG                     -0x0038 /**< Input too large (Entropy + additional). */
+MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR                     -0x003A /**< Read/write error in file. */
+
+------------------------------ des.h ------------------------------
+
+MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH           -0x0032 /**< The data input has an invalid length. */
+
+------------------------------ dhm.h ------------------------------
+
+MBEDTLS_ERR_DHM_BAD_INPUT_DATA         -0x3080 /**< Bad input parameters to function. */
+MBEDTLS_ERR_DHM_READ_PARAMS_FAILED     -0x3100 /**< Reading of the DHM parameters failed. */
+MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED     -0x3180 /**< Making of the DHM parameters failed. */
+MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED     -0x3200 /**< Reading of the public values failed. */
+MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED     -0x3280 /**< Making of the public value failed. */
+MBEDTLS_ERR_DHM_CALC_SECRET_FAILED     -0x3300 /**< Calculation of the DHM secret failed. */
+MBEDTLS_ERR_DHM_INVALID_FORMAT         -0x3380 /**< The ASN.1 data is not formatted correctly. */
+MBEDTLS_ERR_DHM_ALLOC_FAILED           -0x3400 /**< Allocation of memory failed. */
+MBEDTLS_ERR_DHM_FILE_IO_ERROR          -0x3480 /**< Read/write of file failed. */
+
+------------------------------ ecp.h ------------------------------
+MBEDTLS_ERR_ECP_BAD_INPUT_DATA         -0x4F80 /**< Bad input parameters to function. */
+MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL       -0x4F00 /**< The buffer is too small to write to. */
+MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE    -0x4E80 /**< Requested curve not available. */
+MBEDTLS_ERR_ECP_VERIFY_FAILED          -0x4E00 /**< The signature is not valid. */
+MBEDTLS_ERR_ECP_ALLOC_FAILED           -0x4D80 /**< Memory allocation failed. */
+MBEDTLS_ERR_ECP_RANDOM_FAILED          -0x4D00 /**< Generation of random value, such as (ephemeral) key, failed. */
+MBEDTLS_ERR_ECP_INVALID_KEY                    -0x4C80 /**< Invalid private or public key. */
+MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH       -0x4C00 /**< Signature is valid but shorter than the user-supplied length. */
+
+------------------------------ entropy.h ------------------------------
+
+MBEDTLS_ERR_ENTROPY_SOURCE_FAILED              -0x003C /**< Critical entropy source failure. */
+MBEDTLS_ERR_ENTROPY_MAX_SOURCES                        -0x003E /**< No more sources can be added. */
+MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED -0x0040 /**< No sources have been added to poll. */
+MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE   -0x003D /**< No strong sources have been added to poll. */
+MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR              -0x003F /**< Read/write error in file. */
+
+------------------------------ gcm.h ------------------------------
+
+MBEDTLS_ERR_GCM_AUTH_FAILED    -0x0012 /**< Authenticated decryption failed. */
+MBEDTLS_ERR_GCM_BAD_INPUT      -0x0014 /**< Bad input parameters to function. */
+
+------------------------------ hmac_drbg.h ------------------------------
+
+MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG          -0x0003 /**< Too many random requested in single call. */
+MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG                    -0x0005 /**< Input too large (Entropy + additional). */
+MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR                    -0x0007 /**< Read/write error in file. */
+MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED    -0x0009 /**< The entropy source failed. */
+
+------------------------------ md.h ------------------------------
+
+MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE     -0x5080 /**< The selected feature is not available. */
+MBEDTLS_ERR_MD_BAD_INPUT_DATA          -0x5100 /**< Bad input parameters to function. */
+MBEDTLS_ERR_MD_ALLOC_FAILED                    -0x5180 /**< Failed to allocate memory. */
+MBEDTLS_ERR_MD_FILE_IO_ERROR           -0x5200 /**< Opening or reading of file failed. */
+
+------------------------------ net.h ------------------------------
+
+MBEDTLS_ERR_NET_SOCKET_FAILED          -0x0042 /**< Failed to open a socket. */
+MBEDTLS_ERR_NET_CONNECT_FAILED         -0x0044 /**< The connection to the given server / port failed. */
+MBEDTLS_ERR_NET_BIND_FAILED                    -0x0046 /**< Binding of the socket failed. */
+MBEDTLS_ERR_NET_LISTEN_FAILED          -0x0048 /**< Could not listen on the socket. */
+MBEDTLS_ERR_NET_ACCEPT_FAILED          -0x004A /**< Could not accept the incoming connection. */
+MBEDTLS_ERR_NET_RECV_FAILED                    -0x004C /**< Reading information from the socket failed. */
+MBEDTLS_ERR_NET_SEND_FAILED                    -0x004E /**< Sending information through the socket failed. */
+MBEDTLS_ERR_NET_CONN_RESET                     -0x0050 /**< Connection was reset by peer. */
+MBEDTLS_ERR_NET_UNKNOWN_HOST           -0x0052 /**< Failed to get an IP address for the given hostname. */
+MBEDTLS_ERR_NET_BUFFER_TOO_SMALL       -0x0043 /**< Buffer is too small to hold the data. */
+MBEDTLS_ERR_NET_INVALID_CONTEXT                -0x0045 /**< The context is invalid, eg because it was free()ed. */
+
+------------------------------ oid.h ------------------------------
+
+MBEDTLS_ERR_OID_NOT_FOUND                      -0x002E /**< OID is not found. */
+MBEDTLS_ERR_OID_BUF_TOO_SMALL          -0x000B /**< output buffer is too small */
+
+------------------------------ padlock.h ------------------------------
+
+MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED    -0x0030 /**< Input data should be aligned. */
+
+------------------------------ pem.h ------------------------------
+
+MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT       -0x1080 /**< No PEM header or footer found. */
+MBEDTLS_ERR_PEM_INVALID_DATA           -0x1100 /**< PEM string is not as expected. */
+MBEDTLS_ERR_PEM_ALLOC_FAILED           -0x1180 /**< Failed to allocate memory. */
+MBEDTLS_ERR_PEM_INVALID_ENC_IV         -0x1200 /**< RSA IV is not in hex-format. */
+MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG                -0x1280 /**< Unsupported key encryption algorithm. */
+MBEDTLS_ERR_PEM_PASSWORD_REQUIRED      -0x1300 /**< Private key password can't be empty. */
+MBEDTLS_ERR_PEM_PASSWORD_MISMATCH      -0x1380 /**< Given private key password does not allow for correct decryption. */
+MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE    -0x1400 /**< Unavailable feature, e.g. hashing/encryption combination. */
+MBEDTLS_ERR_PEM_BAD_INPUT_DATA         -0x1480 /**< Bad input parameters to function. */
+
+------------------------------ pkcs12.h ------------------------------
+
+MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA              -0x1F80 /**< Bad input parameters to function. */
+MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE -0x1F00 /**< Feature not available, e.g. unsupported encryption scheme. */
+MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT  -0x1E80 /**< PBE ASN.1 data not as expected. */
+MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH   -0x1E00 /**< Given private key password does not allow for correct decryption. */
+
+------------------------------ pkcs5.h ------------------------------
+
+MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA               -0x2f80 /**< Bad input parameters to function. */
+MBEDTLS_ERR_PKCS5_INVALID_FORMAT               -0x2f00 /**< Unexpected ASN.1 data. */
+MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE  -0x2e80 /**< Requested encryption or digest alg not available. */
+MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH            -0x2e00 /**< Given private key password does not allow for correct decryption. */
+
+------------------------------ pk.h ------------------------------
+
+MBEDTLS_ERR_PK_ALLOC_FAILED                    -0x3F80 /**< Memory allocation failed. */
+MBEDTLS_ERR_PK_TYPE_MISMATCH           -0x3F00 /**< Type mismatch, eg attempt to encrypt with an ECDSA key */
+MBEDTLS_ERR_PK_BAD_INPUT_DATA          -0x3E80 /**< Bad input parameters to function. */
+MBEDTLS_ERR_PK_FILE_IO_ERROR           -0x3E00 /**< Read/write of file failed. */
+MBEDTLS_ERR_PK_KEY_INVALID_VERSION     -0x3D80 /**< Unsupported key version */
+MBEDTLS_ERR_PK_KEY_INVALID_FORMAT      -0x3D00 /**< Invalid key tag or value. */
+MBEDTLS_ERR_PK_UNKNOWN_PK_ALG          -0x3C80 /**< Key algorithm is unsupported (only RSA and EC are supported). */
+MBEDTLS_ERR_PK_PASSWORD_REQUIRED       -0x3C00 /**< Private key password can't be empty. */
+MBEDTLS_ERR_PK_PASSWORD_MISMATCH       -0x3B80 /**< Given private key password does not allow for correct decryption. */
+MBEDTLS_ERR_PK_INVALID_PUBKEY          -0x3B00 /**< The pubkey tag or value is invalid (only RSA and EC are supported). */
+MBEDTLS_ERR_PK_INVALID_ALG                     -0x3A80 /**< The algorithm tag or value is invalid. */
+MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE     -0x3A00 /**< Elliptic curve is unsupported (only NIST curves are supported). */
+MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE     -0x3980 /**< Unavailable feature, e.g. RSA disabled for RSA key. */
+MBEDTLS_ERR_PK_SIG_LEN_MISMATCH                -0x3900 /**< The signature is valid but its length is less than expected. */
+
+------------------------------ rsa.h ------------------------------
+
+MBEDTLS_ERR_RSA_BAD_INPUT_DATA         -0x4080 /**< Bad input parameters to function. */
+MBEDTLS_ERR_RSA_INVALID_PADDING                -0x4100 /**< Input data contains invalid padding and is rejected. */
+MBEDTLS_ERR_RSA_KEY_GEN_FAILED         -0x4180 /**< Something failed during generation of a key. */
+MBEDTLS_ERR_RSA_KEY_CHECK_FAILED       -0x4200 /**< Key failed to pass the library's validity check. */
+MBEDTLS_ERR_RSA_PUBLIC_FAILED          -0x4280 /**< The public key operation failed. */
+MBEDTLS_ERR_RSA_PRIVATE_FAILED         -0x4300 /**< The private key operation failed. */
+MBEDTLS_ERR_RSA_VERIFY_FAILED          -0x4380 /**< The PKCS#1 verification failed. */
+MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE       -0x4400 /**< The output buffer for decryption is not large enough. */
+MBEDTLS_ERR_RSA_RNG_FAILED                     -0x4480 /**< The random generator failed to generate non-zeros. */
+
+------------------------------ ssl.h ------------------------------
+
+MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE            -0x7080 /**< The requested feature is not available. */
+MBEDTLS_ERR_SSL_BAD_INPUT_DATA                 -0x7100 /**< Bad input parameters to function. */
+MBEDTLS_ERR_SSL_INVALID_MAC                            -0x7180 /**< Verification of the message MAC failed. */
+MBEDTLS_ERR_SSL_INVALID_RECORD                 -0x7200 /**< An invalid SSL record was received. */
+MBEDTLS_ERR_SSL_CONN_EOF                               -0x7280 /**< The connection indicated an EOF. */
+MBEDTLS_ERR_SSL_UNKNOWN_CIPHER                 -0x7300 /**< An unknown cipher was received. */
+MBEDTLS_ERR_SSL_NO_CIPHER_CHOSEN               -0x7380 /**< The server has no ciphersuites in common with the client. */
+MBEDTLS_ERR_SSL_NO_RNG                                 -0x7400 /**< No RNG was provided to the SSL module. */
+MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE  -0x7480 /**< No client certification received from the client, but required by the authentication mode. */
+MBEDTLS_ERR_SSL_CERTIFICATE_TOO_LARGE  -0x7500 /**< Our own certificate(s) is/are too large to send in an SSL message. */
+MBEDTLS_ERR_SSL_CERTIFICATE_REQUIRED   -0x7580 /**< The own certificate is not set, but needed by the server. */
+MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED   -0x7600 /**< The own private key or pre-shared key is not set, but needed. */
+MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED              -0x7680 /**< No CA Chain is set, but required to operate. */
+MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE             -0x7700 /**< An unexpected message was received from our peer. */
+MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE            -0x7780 /**< A fatal alert message was received from our peer. */
+MBEDTLS_ERR_SSL_PEER_VERIFY_FAILED             -0x7800 /**< Verification of our peer failed. */
+MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY              -0x7880 /**< The peer notified us that the connection is going to be closed. */
+MBEDTLS_ERR_SSL_BAD_HS_CLIENT_HELLO            -0x7900 /**< Processing of the ClientHello handshake message failed. */
+MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO            -0x7980 /**< Processing of the ServerHello handshake message failed. */
+MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE             -0x7A00 /**< Processing of the Certificate handshake message failed. */
+MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_REQUEST     -0x7A80 /**< Processing of the CertificateRequest handshake message failed. */
+MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE     -0x7B00 /**< Processing of the ServerKeyExchange handshake message failed. */
+MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO_DONE       -0x7B80 /**< Processing of the ServerHelloDone handshake message failed. */
+MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE     -0x7C00 /**< Processing of the ClientKeyExchange handshake message failed. */
+MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_RP  -0x7C80 /**< Processing of the ClientKeyExchange handshake message failed in DHM / ECDH Read Public. */
+MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_CS  -0x7D00 /**< Processing of the ClientKeyExchange handshake message failed in DHM / ECDH Calculate Secret. */
+MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_VERIFY      -0x7D80 /**< Processing of the CertificateVerify handshake message failed. */
+MBEDTLS_ERR_SSL_BAD_HS_CHANGE_CIPHER_SPEC      -0x7E00 /**< Processing of the ChangeCipherSpec handshake message failed. */
+MBEDTLS_ERR_SSL_BAD_HS_FINISHED                        -0x7E80 /**< Processing of the Finished handshake message failed. */
+MBEDTLS_ERR_SSL_ALLOC_FAILED                   -0x7F00 /**< Memory allocation failed */
+MBEDTLS_ERR_SSL_HW_ACCEL_FAILED                        -0x7F80 /**< Hardware acceleration function returned with error */
+MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH   -0x6F80 /**< Hardware acceleration function skipped / left alone data */
+MBEDTLS_ERR_SSL_COMPRESSION_FAILED             -0x6F00 /**< Processing of the compression / decompression failed */
+MBEDTLS_ERR_SSL_BAD_HS_PROTOCOL_VERSION                -0x6E80 /**< Handshake protocol not within min/max boundaries */
+MBEDTLS_ERR_SSL_BAD_HS_NEW_SESSION_TICKET      -0x6E00 /**< Processing of the NewSessionTicket handshake message failed. */
+MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED -0x6D80 /**< Session ticket has expired. */
+MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH               -0x6D00 /**< Public key type mismatch (eg, asked for RSA key exchange and presented EC key) */
+MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY               -0x6C80 /**< Unknown identity received (eg, PSK identity) */
+MBEDTLS_ERR_SSL_INTERNAL_ERROR                 -0x6C00 /**< Internal error (eg, unexpected failure in lower-level module) */
+MBEDTLS_ERR_SSL_COUNTER_WRAPPING               -0x6B80 /**< A counter would wrap (eg, too many messages exchanged). */
+MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED  -0x6A80 /**< DTLS client must retry for hello verification */
+MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL               -0x6A00 /**< A buffer is too small to receive or write a message */
+MBEDTLS_ERR_SSL_NO_USABLE_CIPHERSUITE  -0x6980 /**< None of the common ciphersuites is usable (eg, no suitable certificate, see debug messages). */
+MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO    -0x6B00 /**< Unexpected message at ServerHello in renegotiation. */
+MBEDTLS_ERR_SSL_WANT_READ                      -0x6900 /**< Connection requires a read call. */
+MBEDTLS_ERR_SSL_WANT_WRITE                     -0x6880 /**< Connection requires a write call. */
+MBEDTLS_ERR_SSL_TIMEOUT                                -0x6800 /**< The operation timed out. */
+MBEDTLS_ERR_SSL_CLIENT_RECONNECT       -0x6780 /**< The client initiated a reconnect from the same port. */
+MBEDTLS_ERR_SSL_UNEXPECTED_RECORD      -0x6700 /**< Record header looks valid but is not expected. */
+MBEDTLS_ERR_SSL_NON_FATAL                      -0x6680 /**< The alert message received indicates a non-fatal error. */
+MBEDTLS_ERR_SSL_INVALID_VERIFY_HASH    -0x6600 /**< Couldn't set the hash for verifying CertificateVerify */
+
+------------------------------ threading.h ------------------------------
+
+MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE      -0x001A /**< The selected feature is not available. */
+MBEDTLS_ERR_THREADING_BAD_INPUT_DATA           -0x001C /**< Bad input parameters to function. */
+MBEDTLS_ERR_THREADING_MUTEX_ERROR                      -0x001E /**< Locking / unlocking / free failed with error code. */
+
+------------------------------ x509.h ------------------------------
+
+MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE   -0x2080 /**< Unavailable feature, e.g. RSA hashing/encryption combination. */
+MBEDTLS_ERR_X509_UNKNOWN_OID           -0x2100 /**< Requested OID is unknown. */
+MBEDTLS_ERR_X509_INVALID_FORMAT                -0x2180 /**< The CRT/CRL/CSR format is invalid, e.g. different type expected. */
+MBEDTLS_ERR_X509_INVALID_VERSION       -0x2200 /**< The CRT/CRL/CSR version element is invalid. */
+MBEDTLS_ERR_X509_INVALID_SERIAL                -0x2280 /**< The serial tag or value is invalid. */
+MBEDTLS_ERR_X509_INVALID_ALG           -0x2300 /**< The algorithm tag or value is invalid. */
+MBEDTLS_ERR_X509_INVALID_NAME          -0x2380 /**< The name tag or value is invalid. */
+MBEDTLS_ERR_X509_INVALID_DATE          -0x2400 /**< The date tag or value is invalid. */
+MBEDTLS_ERR_X509_INVALID_SIGNATURE     -0x2480 /**< The signature tag or value invalid. */
+MBEDTLS_ERR_X509_INVALID_EXTENSIONS    -0x2500 /**< The extension tag or value is invalid. */
+MBEDTLS_ERR_X509_UNKNOWN_VERSION       -0x2580 /**< CRT/CRL/CSR has an unsupported version number. */
+MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG       -0x2600 /**< Signature algorithm (oid) is unsupported. */
+MBEDTLS_ERR_X509_SIG_MISMATCH          -0x2680 /**< Signature algorithms do not match. (see \c ::mbedtls_x509_crt sig_oid) */
+MBEDTLS_ERR_X509_CERT_VERIFY_FAILED    -0x2700 /**< Certificate verification failed, e.g. CRL, CA or signature check failed. */
+MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT   -0x2780 /**< Format not recognized as DER or PEM. */
+MBEDTLS_ERR_X509_BAD_INPUT_DATA                        -0x2800 /**< Input invalid. */
+MBEDTLS_ERR_X509_ALLOC_FAILED                  -0x2880 /**< Allocation of memory failed. */
+MBEDTLS_ERR_X509_FILE_IO_ERROR                 -0x2900 /**< Read/write of file failed. */
+MBEDTLS_ERR_X509_BUFFER_TOO_SMALL              -0x2980 /**< Destination buffer is too small. */
+
+------------------------------ xtea.h ------------------------------
+
+MBEDTLS_ERR_XTEA_INVALID_INPUT_LENGTH  -0x0028 /**< The data input has an invalid length. */
+
+------------------------------ x509.h (verify fail code) ------------------------------
+
+MBEDTLS_X509_BADCERT_EXPIRED           0x01 /**< The certificate validity has expired. */
+MBEDTLS_X509_BADCERT_REVOKED           0x02 /**< The certificate has been revoked (is on a CRL). */
+MBEDTLS_X509_BADCERT_CN_MISMATCH       0x04 /**< The certificate Common Name (CN) does not match with the expected CN. */
+MBEDTLS_X509_BADCERT_NOT_TRUSTED       0x08 /**< The certificate is not correctly signed by the trusted CA. */
+MBEDTLS_X509_BADCRL_NOT_TRUSTED                0x10 /**< The CRL is not correctly signed by the trusted CA. */
+MBEDTLS_X509_BADCRL_EXPIRED                    0x20 /**< The CRL is expired. */
+MBEDTLS_X509_BADCERT_MISSING           0x40 /**< Certificate was missing. */
+MBEDTLS_X509_BADCERT_SKIP_VERIFY       0x80 /**< Certificate verification was skipped. */
+MBEDTLS_X509_BADCERT_OTHER                     0x0100 /**< Other reason (can be used by verify callback) */
+MBEDTLS_X509_BADCERT_FUTURE                    0x0200 /**< The certificate validity starts in the future. */
+MBEDTLS_X509_BADCRL_FUTURE                     0x0400 /**< The CRL is from the future */
+MBEDTLS_X509_BADCERT_KEY_USAGE         0x0800 /**< Usage does not match the keyUsage extension. */
+MBEDTLS_X509_BADCERT_EXT_KEY_USAGE     0x1000 /**< Usage does not match the extendedKeyUsage extension. */
+MBEDTLS_X509_BADCERT_NS_CERT_TYPE      0x2000 /**< Usage does not match the nsCertType extension. */
+MBEDTLS_X509_BADCERT_BAD_MD                    0x4000 /**< The certificate is signed with an unacceptable hash. */
+MBEDTLS_X509_BADCERT_BAD_PK                    0x8000 /**< The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA). */
+MBEDTLS_X509_BADCERT_BAD_KEY           0x010000 /**< The certificate is signed with an unacceptable key (eg bad curve, RSA too short). */
+MBEDTLS_X509_BADCRL_BAD_MD                     0x020000 /**< The CRL is signed with an unacceptable hash. */
+MBEDTLS_X509_BADCRL_BAD_PK                     0x040000 /**< The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA). */
+MBEDTLS_X509_BADCRL_BAD_KEY                    0x080000 /**< The CRL is signed with an unacceptable key (eg bad curve, RSA too short). */