1c6672fdcSEdison Ai // SPDX-License-Identifier: Apache-2.0 2817466cbSJens Wiklander /* 3817466cbSJens Wiklander * Error message information 4817466cbSJens Wiklander * 5817466cbSJens Wiklander * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved 6817466cbSJens Wiklander * 7817466cbSJens Wiklander * Licensed under the Apache License, Version 2.0 (the "License"); you may 8817466cbSJens Wiklander * not use this file except in compliance with the License. 9817466cbSJens Wiklander * You may obtain a copy of the License at 10817466cbSJens Wiklander * 11817466cbSJens Wiklander * http://www.apache.org/licenses/LICENSE-2.0 12817466cbSJens Wiklander * 13817466cbSJens Wiklander * Unless required by applicable law or agreed to in writing, software 14817466cbSJens Wiklander * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 15817466cbSJens Wiklander * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16817466cbSJens Wiklander * See the License for the specific language governing permissions and 17817466cbSJens Wiklander * limitations under the License. 18817466cbSJens Wiklander * 19817466cbSJens Wiklander * This file is part of mbed TLS (https://tls.mbed.org) 20817466cbSJens Wiklander */ 21817466cbSJens Wiklander 22817466cbSJens Wiklander #if !defined(MBEDTLS_CONFIG_FILE) 23817466cbSJens Wiklander #include "mbedtls/config.h" 24817466cbSJens Wiklander #else 25817466cbSJens Wiklander #include MBEDTLS_CONFIG_FILE 26817466cbSJens Wiklander #endif 27817466cbSJens Wiklander 28817466cbSJens Wiklander #if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY) 29817466cbSJens Wiklander #include "mbedtls/error.h" 30817466cbSJens Wiklander #include <string.h> 31817466cbSJens Wiklander #endif 32817466cbSJens Wiklander 33817466cbSJens Wiklander #if defined(MBEDTLS_PLATFORM_C) 34817466cbSJens Wiklander #include "mbedtls/platform.h" 35817466cbSJens Wiklander #else 36817466cbSJens Wiklander #define mbedtls_snprintf snprintf 37817466cbSJens Wiklander #define mbedtls_time_t time_t 38817466cbSJens Wiklander #endif 39817466cbSJens Wiklander 40817466cbSJens Wiklander #if defined(MBEDTLS_ERROR_C) 41817466cbSJens Wiklander 42817466cbSJens Wiklander #include <stdio.h> 43817466cbSJens Wiklander 44817466cbSJens Wiklander #if defined(MBEDTLS_AES_C) 45817466cbSJens Wiklander #include "mbedtls/aes.h" 46817466cbSJens Wiklander #endif 47817466cbSJens Wiklander 48*3d3b0591SJens Wiklander #if defined(MBEDTLS_ARC4_C) 49*3d3b0591SJens Wiklander #include "mbedtls/arc4.h" 50*3d3b0591SJens Wiklander #endif 51*3d3b0591SJens Wiklander 52*3d3b0591SJens Wiklander #if defined(MBEDTLS_ARIA_C) 53*3d3b0591SJens Wiklander #include "mbedtls/aria.h" 54*3d3b0591SJens Wiklander #endif 55*3d3b0591SJens Wiklander 56817466cbSJens Wiklander #if defined(MBEDTLS_BASE64_C) 57817466cbSJens Wiklander #include "mbedtls/base64.h" 58817466cbSJens Wiklander #endif 59817466cbSJens Wiklander 60817466cbSJens Wiklander #if defined(MBEDTLS_BIGNUM_C) 61817466cbSJens Wiklander #include "mbedtls/bignum.h" 62817466cbSJens Wiklander #endif 63817466cbSJens Wiklander 64817466cbSJens Wiklander #if defined(MBEDTLS_BLOWFISH_C) 65817466cbSJens Wiklander #include "mbedtls/blowfish.h" 66817466cbSJens Wiklander #endif 67817466cbSJens Wiklander 68817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C) 69817466cbSJens Wiklander #include "mbedtls/camellia.h" 70817466cbSJens Wiklander #endif 71817466cbSJens Wiklander 72817466cbSJens Wiklander #if defined(MBEDTLS_CCM_C) 73817466cbSJens Wiklander #include "mbedtls/ccm.h" 74817466cbSJens Wiklander #endif 75817466cbSJens Wiklander 76*3d3b0591SJens Wiklander #if defined(MBEDTLS_CHACHA20_C) 77*3d3b0591SJens Wiklander #include "mbedtls/chacha20.h" 78*3d3b0591SJens Wiklander #endif 79*3d3b0591SJens Wiklander 80*3d3b0591SJens Wiklander #if defined(MBEDTLS_CHACHAPOLY_C) 81*3d3b0591SJens Wiklander #include "mbedtls/chachapoly.h" 82*3d3b0591SJens Wiklander #endif 83*3d3b0591SJens Wiklander 84817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_C) 85817466cbSJens Wiklander #include "mbedtls/cipher.h" 86817466cbSJens Wiklander #endif 87817466cbSJens Wiklander 88*3d3b0591SJens Wiklander #if defined(MBEDTLS_CMAC_C) 89*3d3b0591SJens Wiklander #include "mbedtls/cmac.h" 90*3d3b0591SJens Wiklander #endif 91*3d3b0591SJens Wiklander 92817466cbSJens Wiklander #if defined(MBEDTLS_CTR_DRBG_C) 93817466cbSJens Wiklander #include "mbedtls/ctr_drbg.h" 94817466cbSJens Wiklander #endif 95817466cbSJens Wiklander 96817466cbSJens Wiklander #if defined(MBEDTLS_DES_C) 97817466cbSJens Wiklander #include "mbedtls/des.h" 98817466cbSJens Wiklander #endif 99817466cbSJens Wiklander 100817466cbSJens Wiklander #if defined(MBEDTLS_DHM_C) 101817466cbSJens Wiklander #include "mbedtls/dhm.h" 102817466cbSJens Wiklander #endif 103817466cbSJens Wiklander 104817466cbSJens Wiklander #if defined(MBEDTLS_ECP_C) 105817466cbSJens Wiklander #include "mbedtls/ecp.h" 106817466cbSJens Wiklander #endif 107817466cbSJens Wiklander 108817466cbSJens Wiklander #if defined(MBEDTLS_ENTROPY_C) 109817466cbSJens Wiklander #include "mbedtls/entropy.h" 110817466cbSJens Wiklander #endif 111817466cbSJens Wiklander 112817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C) 113817466cbSJens Wiklander #include "mbedtls/gcm.h" 114817466cbSJens Wiklander #endif 115817466cbSJens Wiklander 116*3d3b0591SJens Wiklander #if defined(MBEDTLS_HKDF_C) 117*3d3b0591SJens Wiklander #include "mbedtls/hkdf.h" 118*3d3b0591SJens Wiklander #endif 119*3d3b0591SJens Wiklander 120817466cbSJens Wiklander #if defined(MBEDTLS_HMAC_DRBG_C) 121817466cbSJens Wiklander #include "mbedtls/hmac_drbg.h" 122817466cbSJens Wiklander #endif 123817466cbSJens Wiklander 124817466cbSJens Wiklander #if defined(MBEDTLS_MD_C) 125817466cbSJens Wiklander #include "mbedtls/md.h" 126817466cbSJens Wiklander #endif 127817466cbSJens Wiklander 128*3d3b0591SJens Wiklander #if defined(MBEDTLS_MD2_C) 129*3d3b0591SJens Wiklander #include "mbedtls/md2.h" 130*3d3b0591SJens Wiklander #endif 131*3d3b0591SJens Wiklander 132*3d3b0591SJens Wiklander #if defined(MBEDTLS_MD4_C) 133*3d3b0591SJens Wiklander #include "mbedtls/md4.h" 134*3d3b0591SJens Wiklander #endif 135*3d3b0591SJens Wiklander 136*3d3b0591SJens Wiklander #if defined(MBEDTLS_MD5_C) 137*3d3b0591SJens Wiklander #include "mbedtls/md5.h" 138*3d3b0591SJens Wiklander #endif 139*3d3b0591SJens Wiklander 140817466cbSJens Wiklander #if defined(MBEDTLS_NET_C) 141817466cbSJens Wiklander #include "mbedtls/net_sockets.h" 142817466cbSJens Wiklander #endif 143817466cbSJens Wiklander 144817466cbSJens Wiklander #if defined(MBEDTLS_OID_C) 145817466cbSJens Wiklander #include "mbedtls/oid.h" 146817466cbSJens Wiklander #endif 147817466cbSJens Wiklander 148817466cbSJens Wiklander #if defined(MBEDTLS_PADLOCK_C) 149817466cbSJens Wiklander #include "mbedtls/padlock.h" 150817466cbSJens Wiklander #endif 151817466cbSJens Wiklander 152817466cbSJens Wiklander #if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C) 153817466cbSJens Wiklander #include "mbedtls/pem.h" 154817466cbSJens Wiklander #endif 155817466cbSJens Wiklander 156817466cbSJens Wiklander #if defined(MBEDTLS_PK_C) 157817466cbSJens Wiklander #include "mbedtls/pk.h" 158817466cbSJens Wiklander #endif 159817466cbSJens Wiklander 160817466cbSJens Wiklander #if defined(MBEDTLS_PKCS12_C) 161817466cbSJens Wiklander #include "mbedtls/pkcs12.h" 162817466cbSJens Wiklander #endif 163817466cbSJens Wiklander 164817466cbSJens Wiklander #if defined(MBEDTLS_PKCS5_C) 165817466cbSJens Wiklander #include "mbedtls/pkcs5.h" 166817466cbSJens Wiklander #endif 167817466cbSJens Wiklander 168*3d3b0591SJens Wiklander #if defined(MBEDTLS_PLATFORM_C) 169*3d3b0591SJens Wiklander #include "mbedtls/platform.h" 170*3d3b0591SJens Wiklander #endif 171*3d3b0591SJens Wiklander 172*3d3b0591SJens Wiklander #if defined(MBEDTLS_POLY1305_C) 173*3d3b0591SJens Wiklander #include "mbedtls/poly1305.h" 174*3d3b0591SJens Wiklander #endif 175*3d3b0591SJens Wiklander 176*3d3b0591SJens Wiklander #if defined(MBEDTLS_RIPEMD160_C) 177*3d3b0591SJens Wiklander #include "mbedtls/ripemd160.h" 178*3d3b0591SJens Wiklander #endif 179*3d3b0591SJens Wiklander 180817466cbSJens Wiklander #if defined(MBEDTLS_RSA_C) 181817466cbSJens Wiklander #include "mbedtls/rsa.h" 182817466cbSJens Wiklander #endif 183817466cbSJens Wiklander 184*3d3b0591SJens Wiklander #if defined(MBEDTLS_SHA1_C) 185*3d3b0591SJens Wiklander #include "mbedtls/sha1.h" 186*3d3b0591SJens Wiklander #endif 187*3d3b0591SJens Wiklander 188*3d3b0591SJens Wiklander #if defined(MBEDTLS_SHA256_C) 189*3d3b0591SJens Wiklander #include "mbedtls/sha256.h" 190*3d3b0591SJens Wiklander #endif 191*3d3b0591SJens Wiklander 192*3d3b0591SJens Wiklander #if defined(MBEDTLS_SHA512_C) 193*3d3b0591SJens Wiklander #include "mbedtls/sha512.h" 194*3d3b0591SJens Wiklander #endif 195*3d3b0591SJens Wiklander 196817466cbSJens Wiklander #if defined(MBEDTLS_SSL_TLS_C) 197817466cbSJens Wiklander #include "mbedtls/ssl.h" 198817466cbSJens Wiklander #endif 199817466cbSJens Wiklander 200817466cbSJens Wiklander #if defined(MBEDTLS_THREADING_C) 201817466cbSJens Wiklander #include "mbedtls/threading.h" 202817466cbSJens Wiklander #endif 203817466cbSJens Wiklander 204817466cbSJens Wiklander #if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C) 205817466cbSJens Wiklander #include "mbedtls/x509.h" 206817466cbSJens Wiklander #endif 207817466cbSJens Wiklander 208817466cbSJens Wiklander #if defined(MBEDTLS_XTEA_C) 209817466cbSJens Wiklander #include "mbedtls/xtea.h" 210817466cbSJens Wiklander #endif 211817466cbSJens Wiklander 212817466cbSJens Wiklander 213817466cbSJens Wiklander void mbedtls_strerror( int ret, char *buf, size_t buflen ) 214817466cbSJens Wiklander { 215817466cbSJens Wiklander size_t len; 216817466cbSJens Wiklander int use_ret; 217817466cbSJens Wiklander 218817466cbSJens Wiklander if( buflen == 0 ) 219817466cbSJens Wiklander return; 220817466cbSJens Wiklander 221817466cbSJens Wiklander memset( buf, 0x00, buflen ); 222817466cbSJens Wiklander 223817466cbSJens Wiklander if( ret < 0 ) 224817466cbSJens Wiklander ret = -ret; 225817466cbSJens Wiklander 226817466cbSJens Wiklander if( ret & 0xFF80 ) 227817466cbSJens Wiklander { 228817466cbSJens Wiklander use_ret = ret & 0xFF80; 229817466cbSJens Wiklander 230817466cbSJens Wiklander // High level error codes 231817466cbSJens Wiklander // 232817466cbSJens Wiklander // BEGIN generated code 233817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_C) 234817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE) ) 235817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "CIPHER - The selected feature is not available" ); 236817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA) ) 237*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CIPHER - Bad input parameters" ); 238817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CIPHER_ALLOC_FAILED) ) 239817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "CIPHER - Failed to allocate memory" ); 240817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CIPHER_INVALID_PADDING) ) 241817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "CIPHER - Input data contains invalid padding and is rejected" ); 242817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED) ) 243817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "CIPHER - Decryption of block requires a full block" ); 244817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CIPHER_AUTH_FAILED) ) 245817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "CIPHER - Authentication failed (for AEAD modes)" ); 246817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT) ) 247*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CIPHER - The context is invalid. For example, because it was freed" ); 248*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_CIPHER_HW_ACCEL_FAILED) ) 249*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CIPHER - Cipher hardware accelerator failed" ); 250817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_C */ 251817466cbSJens Wiklander 252817466cbSJens Wiklander #if defined(MBEDTLS_DHM_C) 253817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_BAD_INPUT_DATA) ) 254*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - Bad input parameters" ); 255817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_READ_PARAMS_FAILED) ) 256817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - Reading of the DHM parameters failed" ); 257817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED) ) 258817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - Making of the DHM parameters failed" ); 259817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED) ) 260817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - Reading of the public values failed" ); 261817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED) ) 262817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - Making of the public value failed" ); 263817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_CALC_SECRET_FAILED) ) 264817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - Calculation of the DHM secret failed" ); 265817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_INVALID_FORMAT) ) 266817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - The ASN.1 data is not formatted correctly" ); 267817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_ALLOC_FAILED) ) 268817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - Allocation of memory failed" ); 269817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_FILE_IO_ERROR) ) 270*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - Read or write of file failed" ); 271*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_HW_ACCEL_FAILED) ) 272*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - DHM hardware accelerator failed" ); 273*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_DHM_SET_GROUP_FAILED) ) 274*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "DHM - Setting the modulus and generator failed" ); 275817466cbSJens Wiklander #endif /* MBEDTLS_DHM_C */ 276817466cbSJens Wiklander 277817466cbSJens Wiklander #if defined(MBEDTLS_ECP_C) 278817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ECP_BAD_INPUT_DATA) ) 279817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ECP - Bad input parameters to function" ); 280817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL) ) 281817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ECP - The buffer is too small to write to" ); 282817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE) ) 283*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "ECP - The requested feature is not available, for example, the requested curve is not supported" ); 284817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ECP_VERIFY_FAILED) ) 285817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ECP - The signature is not valid" ); 286817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ECP_ALLOC_FAILED) ) 287817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ECP - Memory allocation failed" ); 288817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ECP_RANDOM_FAILED) ) 289*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "ECP - Generation of random value, such as ephemeral key, failed" ); 290817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ECP_INVALID_KEY) ) 291817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ECP - Invalid private or public key" ); 292817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH) ) 293*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "ECP - The buffer contains a valid signature followed by more data" ); 294*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_ECP_HW_ACCEL_FAILED) ) 295*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "ECP - The ECP hardware accelerator failed" ); 296*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_ECP_IN_PROGRESS) ) 297*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "ECP - Operation in progress, call again with the same parameters to continue" ); 298817466cbSJens Wiklander #endif /* MBEDTLS_ECP_C */ 299817466cbSJens Wiklander 300817466cbSJens Wiklander #if defined(MBEDTLS_MD_C) 301817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE) ) 302817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "MD - The selected feature is not available" ); 303817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MD_BAD_INPUT_DATA) ) 304817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "MD - Bad input parameters to function" ); 305817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MD_ALLOC_FAILED) ) 306817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "MD - Failed to allocate memory" ); 307817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MD_FILE_IO_ERROR) ) 308817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "MD - Opening or reading of file failed" ); 309*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_MD_HW_ACCEL_FAILED) ) 310*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "MD - MD hardware accelerator failed" ); 311817466cbSJens Wiklander #endif /* MBEDTLS_MD_C */ 312817466cbSJens Wiklander 313817466cbSJens Wiklander #if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C) 314817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) ) 315817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PEM - No PEM header or footer found" ); 316817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PEM_INVALID_DATA) ) 317817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PEM - PEM string is not as expected" ); 318817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PEM_ALLOC_FAILED) ) 319817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PEM - Failed to allocate memory" ); 320817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PEM_INVALID_ENC_IV) ) 321817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PEM - RSA IV is not in hex-format" ); 322817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG) ) 323817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PEM - Unsupported key encryption algorithm" ); 324817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PEM_PASSWORD_REQUIRED) ) 325817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PEM - Private key password can't be empty" ); 326817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PEM_PASSWORD_MISMATCH) ) 327817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PEM - Given private key password does not allow for correct decryption" ); 328817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE) ) 329817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PEM - Unavailable feature, e.g. hashing/encryption combination" ); 330817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PEM_BAD_INPUT_DATA) ) 331817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PEM - Bad input parameters to function" ); 332817466cbSJens Wiklander #endif /* MBEDTLS_PEM_PARSE_C || MBEDTLS_PEM_WRITE_C */ 333817466cbSJens Wiklander 334817466cbSJens Wiklander #if defined(MBEDTLS_PK_C) 335817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_ALLOC_FAILED) ) 336817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Memory allocation failed" ); 337817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_TYPE_MISMATCH) ) 338817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Type mismatch, eg attempt to encrypt with an ECDSA key" ); 339817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_BAD_INPUT_DATA) ) 340817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Bad input parameters to function" ); 341817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_FILE_IO_ERROR) ) 342817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Read/write of file failed" ); 343817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_KEY_INVALID_VERSION) ) 344817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Unsupported key version" ); 345817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT) ) 346817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Invalid key tag or value" ); 347817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_UNKNOWN_PK_ALG) ) 348817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Key algorithm is unsupported (only RSA and EC are supported)" ); 349817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_PASSWORD_REQUIRED) ) 350817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Private key password can't be empty" ); 351817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_PASSWORD_MISMATCH) ) 352817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Given private key password does not allow for correct decryption" ); 353817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_INVALID_PUBKEY) ) 354817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - The pubkey tag or value is invalid (only RSA and EC are supported)" ); 355817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_INVALID_ALG) ) 356817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - The algorithm tag or value is invalid" ); 357817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE) ) 358817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Elliptic curve is unsupported (only NIST curves are supported)" ); 359817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE) ) 360817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PK - Unavailable feature, e.g. RSA disabled for RSA key" ); 361817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_SIG_LEN_MISMATCH) ) 362*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "PK - The buffer contains a valid signature followed by more data" ); 363*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_PK_HW_ACCEL_FAILED) ) 364*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "PK - PK hardware accelerator failed" ); 365817466cbSJens Wiklander #endif /* MBEDTLS_PK_C */ 366817466cbSJens Wiklander 367817466cbSJens Wiklander #if defined(MBEDTLS_PKCS12_C) 368817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA) ) 369817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PKCS12 - Bad input parameters to function" ); 370817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE) ) 371817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PKCS12 - Feature not available, e.g. unsupported encryption scheme" ); 372817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT) ) 373817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PKCS12 - PBE ASN.1 data not as expected" ); 374817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH) ) 375817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PKCS12 - Given private key password does not allow for correct decryption" ); 376817466cbSJens Wiklander #endif /* MBEDTLS_PKCS12_C */ 377817466cbSJens Wiklander 378817466cbSJens Wiklander #if defined(MBEDTLS_PKCS5_C) 379817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA) ) 380817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PKCS5 - Bad input parameters to function" ); 381817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PKCS5_INVALID_FORMAT) ) 382817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PKCS5 - Unexpected ASN.1 data" ); 383817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE) ) 384817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PKCS5 - Requested encryption or digest alg not available" ); 385817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH) ) 386817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PKCS5 - Given private key password does not allow for correct decryption" ); 387817466cbSJens Wiklander #endif /* MBEDTLS_PKCS5_C */ 388817466cbSJens Wiklander 389817466cbSJens Wiklander #if defined(MBEDTLS_RSA_C) 390817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_BAD_INPUT_DATA) ) 391817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - Bad input parameters to function" ); 392817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_INVALID_PADDING) ) 393817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - Input data contains invalid padding and is rejected" ); 394817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_KEY_GEN_FAILED) ) 395817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - Something failed during generation of a key" ); 396817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_KEY_CHECK_FAILED) ) 397*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - Key failed to pass the validity check of the library" ); 398817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_PUBLIC_FAILED) ) 399817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - The public key operation failed" ); 400817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_PRIVATE_FAILED) ) 401817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - The private key operation failed" ); 402817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_VERIFY_FAILED) ) 403817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - The PKCS#1 verification failed" ); 404817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE) ) 405817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - The output buffer for decryption is not large enough" ); 406817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_RNG_FAILED) ) 407817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - The random generator failed to generate non-zeros" ); 408*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_UNSUPPORTED_OPERATION) ) 409*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - The implementation does not offer the requested operation, for example, because of security violations or lack of functionality" ); 410*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_RSA_HW_ACCEL_FAILED) ) 411*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "RSA - RSA hardware accelerator failed" ); 412817466cbSJens Wiklander #endif /* MBEDTLS_RSA_C */ 413817466cbSJens Wiklander 414817466cbSJens Wiklander #if defined(MBEDTLS_SSL_TLS_C) 415817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE) ) 416817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - The requested feature is not available" ); 417817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_INPUT_DATA) ) 418817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Bad input parameters to function" ); 419817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_INVALID_MAC) ) 420817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Verification of the message MAC failed" ); 421817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_INVALID_RECORD) ) 422817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - An invalid SSL record was received" ); 423817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_CONN_EOF) ) 424817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - The connection indicated an EOF" ); 425817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_UNKNOWN_CIPHER) ) 426817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - An unknown cipher was received" ); 427817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_NO_CIPHER_CHOSEN) ) 428817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - The server has no ciphersuites in common with the client" ); 429817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_NO_RNG) ) 430817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - No RNG was provided to the SSL module" ); 431817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE) ) 432817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - No client certification received from the client, but required by the authentication mode" ); 433817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_CERTIFICATE_TOO_LARGE) ) 434817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Our own certificate(s) is/are too large to send in an SSL message" ); 435817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_CERTIFICATE_REQUIRED) ) 436817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - The own certificate is not set, but needed by the server" ); 437817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED) ) 438817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - The own private key or pre-shared key is not set, but needed" ); 439817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED) ) 440817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - No CA Chain is set, but required to operate" ); 441817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE) ) 442817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - An unexpected message was received from our peer" ); 443817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE) ) 444817466cbSJens Wiklander { 445817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - A fatal alert message was received from our peer" ); 446817466cbSJens Wiklander return; 447817466cbSJens Wiklander } 448817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_PEER_VERIFY_FAILED) ) 449817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Verification of our peer failed" ); 450817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY) ) 451817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - The peer notified us that the connection is going to be closed" ); 452817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_HELLO) ) 453817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the ClientHello handshake message failed" ); 454817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO) ) 455817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the ServerHello handshake message failed" ); 456817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE) ) 457817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the Certificate handshake message failed" ); 458817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_REQUEST) ) 459817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the CertificateRequest handshake message failed" ); 460817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE) ) 461817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the ServerKeyExchange handshake message failed" ); 462817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO_DONE) ) 463817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the ServerHelloDone handshake message failed" ); 464817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE) ) 465817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the ClientKeyExchange handshake message failed" ); 466817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_RP) ) 467817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the ClientKeyExchange handshake message failed in DHM / ECDH Read Public" ); 468817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_CS) ) 469817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the ClientKeyExchange handshake message failed in DHM / ECDH Calculate Secret" ); 470817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_VERIFY) ) 471817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the CertificateVerify handshake message failed" ); 472817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CHANGE_CIPHER_SPEC) ) 473817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the ChangeCipherSpec handshake message failed" ); 474817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_FINISHED) ) 475817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the Finished handshake message failed" ); 476817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_ALLOC_FAILED) ) 477817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Memory allocation failed" ); 478817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_HW_ACCEL_FAILED) ) 479817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Hardware acceleration function returned with error" ); 480817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH) ) 481817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Hardware acceleration function skipped / left alone data" ); 482817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_COMPRESSION_FAILED) ) 483817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the compression / decompression failed" ); 484817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_PROTOCOL_VERSION) ) 485817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Handshake protocol not within min/max boundaries" ); 486817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_NEW_SESSION_TICKET) ) 487817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Processing of the NewSessionTicket handshake message failed" ); 488817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED) ) 489817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Session ticket has expired" ); 490817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH) ) 491817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Public key type mismatch (eg, asked for RSA key exchange and presented EC key)" ); 492817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY) ) 493817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Unknown identity received (eg, PSK identity)" ); 494817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_INTERNAL_ERROR) ) 495817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Internal error (eg, unexpected failure in lower-level module)" ); 496817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_COUNTER_WRAPPING) ) 497817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - A counter would wrap (eg, too many messages exchanged)" ); 498817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO) ) 499817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Unexpected message at ServerHello in renegotiation" ); 500817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED) ) 501817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - DTLS client must retry for hello verification" ); 502817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL) ) 503817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - A buffer is too small to receive or write a message" ); 504817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_NO_USABLE_CIPHERSUITE) ) 505817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - None of the common ciphersuites is usable (eg, no suitable certificate, see debug messages)" ); 506817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_WANT_READ) ) 507*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - No data of requested type currently available on underlying transport" ); 508817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_WANT_WRITE) ) 509817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Connection requires a write call" ); 510817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_TIMEOUT) ) 511817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - The operation timed out" ); 512817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_CLIENT_RECONNECT) ) 513817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - The client initiated a reconnect from the same port" ); 514817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_UNEXPECTED_RECORD) ) 515817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Record header looks valid but is not expected" ); 516817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_NON_FATAL) ) 517817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - The alert message received indicates a non-fatal error" ); 518817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_INVALID_VERIFY_HASH) ) 519817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Couldn't set the hash for verifying CertificateVerify" ); 520*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_CONTINUE_PROCESSING) ) 521*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Internal-only message signaling that further message-processing should be done" ); 522*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS) ) 523*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - The asynchronous operation is not completed yet" ); 524*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_EARLY_MESSAGE) ) 525*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - Internal-only message signaling that a message arrived early" ); 526*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) ) 527*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SSL - A cryptographic operation is in progress. Try again later" ); 528817466cbSJens Wiklander #endif /* MBEDTLS_SSL_TLS_C */ 529817466cbSJens Wiklander 530817466cbSJens Wiklander #if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C) 531817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE) ) 532817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - Unavailable feature, e.g. RSA hashing/encryption combination" ); 533817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_UNKNOWN_OID) ) 534817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - Requested OID is unknown" ); 535817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_INVALID_FORMAT) ) 536817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected" ); 537817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_INVALID_VERSION) ) 538817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - The CRT/CRL/CSR version element is invalid" ); 539817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_INVALID_SERIAL) ) 540817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - The serial tag or value is invalid" ); 541817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_INVALID_ALG) ) 542817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - The algorithm tag or value is invalid" ); 543817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_INVALID_NAME) ) 544817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - The name tag or value is invalid" ); 545817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_INVALID_DATE) ) 546817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - The date tag or value is invalid" ); 547817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_INVALID_SIGNATURE) ) 548817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - The signature tag or value invalid" ); 549817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_INVALID_EXTENSIONS) ) 550817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - The extension tag or value is invalid" ); 551817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_UNKNOWN_VERSION) ) 552817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - CRT/CRL/CSR has an unsupported version number" ); 553817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG) ) 554817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - Signature algorithm (oid) is unsupported" ); 555817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_SIG_MISMATCH) ) 556817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - Signature algorithms do not match. (see \\c ::mbedtls_x509_crt sig_oid)" ); 557817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_CERT_VERIFY_FAILED) ) 558817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - Certificate verification failed, e.g. CRL, CA or signature check failed" ); 559817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT) ) 560817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - Format not recognized as DER or PEM" ); 561817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_BAD_INPUT_DATA) ) 562817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - Input invalid" ); 563817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_ALLOC_FAILED) ) 564817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - Allocation of memory failed" ); 565817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_FILE_IO_ERROR) ) 566817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - Read/write of file failed" ); 567817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_BUFFER_TOO_SMALL) ) 568817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - Destination buffer is too small" ); 569817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_X509_FATAL_ERROR) ) 570817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "X509 - A fatal error occured, eg the chain is too long or the vrfy callback failed" ); 571817466cbSJens Wiklander #endif /* MBEDTLS_X509_USE_C || MBEDTLS_X509_CREATE_C */ 572817466cbSJens Wiklander // END generated code 573817466cbSJens Wiklander 574817466cbSJens Wiklander if( strlen( buf ) == 0 ) 575817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", use_ret ); 576817466cbSJens Wiklander } 577817466cbSJens Wiklander 578817466cbSJens Wiklander use_ret = ret & ~0xFF80; 579817466cbSJens Wiklander 580817466cbSJens Wiklander if( use_ret == 0 ) 581817466cbSJens Wiklander return; 582817466cbSJens Wiklander 583817466cbSJens Wiklander // If high level code is present, make a concatenation between both 584817466cbSJens Wiklander // error strings. 585817466cbSJens Wiklander // 586817466cbSJens Wiklander len = strlen( buf ); 587817466cbSJens Wiklander 588817466cbSJens Wiklander if( len > 0 ) 589817466cbSJens Wiklander { 590817466cbSJens Wiklander if( buflen - len < 5 ) 591817466cbSJens Wiklander return; 592817466cbSJens Wiklander 593817466cbSJens Wiklander mbedtls_snprintf( buf + len, buflen - len, " : " ); 594817466cbSJens Wiklander 595817466cbSJens Wiklander buf += len + 3; 596817466cbSJens Wiklander buflen -= len + 3; 597817466cbSJens Wiklander } 598817466cbSJens Wiklander 599817466cbSJens Wiklander // Low level error codes 600817466cbSJens Wiklander // 601817466cbSJens Wiklander // BEGIN generated code 602817466cbSJens Wiklander #if defined(MBEDTLS_AES_C) 603817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH) ) 604817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "AES - Invalid key length" ); 605817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH) ) 606817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "AES - Invalid data input length" ); 607*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_AES_BAD_INPUT_DATA) ) 608*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "AES - Invalid input data" ); 609*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_AES_FEATURE_UNAVAILABLE) ) 610*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "AES - Feature not available. For example, an unsupported AES key size" ); 611*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_AES_HW_ACCEL_FAILED) ) 612*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "AES - AES hardware accelerator failed" ); 613817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */ 614817466cbSJens Wiklander 615*3d3b0591SJens Wiklander #if defined(MBEDTLS_ARC4_C) 616*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_ARC4_HW_ACCEL_FAILED) ) 617*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "ARC4 - ARC4 hardware accelerator failed" ); 618*3d3b0591SJens Wiklander #endif /* MBEDTLS_ARC4_C */ 619*3d3b0591SJens Wiklander 620*3d3b0591SJens Wiklander #if defined(MBEDTLS_ARIA_C) 621*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_ARIA_BAD_INPUT_DATA) ) 622*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "ARIA - Bad input data" ); 623*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH) ) 624*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "ARIA - Invalid data input length" ); 625*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_ARIA_FEATURE_UNAVAILABLE) ) 626*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "ARIA - Feature not available. For example, an unsupported ARIA key size" ); 627*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_ARIA_HW_ACCEL_FAILED) ) 628*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "ARIA - ARIA hardware accelerator failed" ); 629*3d3b0591SJens Wiklander #endif /* MBEDTLS_ARIA_C */ 630*3d3b0591SJens Wiklander 631817466cbSJens Wiklander #if defined(MBEDTLS_ASN1_PARSE_C) 632817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ASN1_OUT_OF_DATA) ) 633817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ASN1 - Out of data when parsing an ASN1 data structure" ); 634817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) ) 635817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ASN1 - ASN1 tag was of an unexpected value" ); 636817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ASN1_INVALID_LENGTH) ) 637817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ASN1 - Error when trying to determine the length or invalid length" ); 638817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ASN1_LENGTH_MISMATCH) ) 639817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ASN1 - Actual length differs from expected length" ); 640817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ASN1_INVALID_DATA) ) 641817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ASN1 - Data is invalid. (not used)" ); 642817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ASN1_ALLOC_FAILED) ) 643817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ASN1 - Memory allocation failed" ); 644817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ASN1_BUF_TOO_SMALL) ) 645817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ASN1 - Buffer too small when writing ASN.1 data structure" ); 646817466cbSJens Wiklander #endif /* MBEDTLS_ASN1_PARSE_C */ 647817466cbSJens Wiklander 648817466cbSJens Wiklander #if defined(MBEDTLS_BASE64_C) 649817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL) ) 650817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BASE64 - Output buffer too small" ); 651817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_BASE64_INVALID_CHARACTER) ) 652817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BASE64 - Invalid character in input" ); 653817466cbSJens Wiklander #endif /* MBEDTLS_BASE64_C */ 654817466cbSJens Wiklander 655817466cbSJens Wiklander #if defined(MBEDTLS_BIGNUM_C) 656817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MPI_FILE_IO_ERROR) ) 657817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BIGNUM - An error occurred while reading from or writing to a file" ); 658817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MPI_BAD_INPUT_DATA) ) 659817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BIGNUM - Bad input parameters to function" ); 660817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MPI_INVALID_CHARACTER) ) 661817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BIGNUM - There is an invalid character in the digit string" ); 662817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL) ) 663817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BIGNUM - The buffer is too small to write to" ); 664817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MPI_NEGATIVE_VALUE) ) 665817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BIGNUM - The input arguments are negative or result in illegal output" ); 666817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MPI_DIVISION_BY_ZERO) ) 667817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BIGNUM - The input argument for division is zero, which is not allowed" ); 668817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) ) 669817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BIGNUM - The input arguments are not acceptable" ); 670817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_MPI_ALLOC_FAILED) ) 671817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BIGNUM - Memory allocation failed" ); 672817466cbSJens Wiklander #endif /* MBEDTLS_BIGNUM_C */ 673817466cbSJens Wiklander 674817466cbSJens Wiklander #if defined(MBEDTLS_BLOWFISH_C) 675*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA) ) 676*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "BLOWFISH - Bad input data" ); 677817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH) ) 678817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "BLOWFISH - Invalid data input length" ); 679*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_BLOWFISH_HW_ACCEL_FAILED) ) 680*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "BLOWFISH - Blowfish hardware accelerator failed" ); 681817466cbSJens Wiklander #endif /* MBEDTLS_BLOWFISH_C */ 682817466cbSJens Wiklander 683817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C) 684*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA) ) 685*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CAMELLIA - Bad input data" ); 686817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH) ) 687817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "CAMELLIA - Invalid data input length" ); 688*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_CAMELLIA_HW_ACCEL_FAILED) ) 689*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CAMELLIA - Camellia hardware accelerator failed" ); 690817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */ 691817466cbSJens Wiklander 692817466cbSJens Wiklander #if defined(MBEDTLS_CCM_C) 693817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CCM_BAD_INPUT) ) 694*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CCM - Bad input parameters to the function" ); 695817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CCM_AUTH_FAILED) ) 696817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "CCM - Authenticated decryption failed" ); 697*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_CCM_HW_ACCEL_FAILED) ) 698*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CCM - CCM hardware accelerator failed" ); 699817466cbSJens Wiklander #endif /* MBEDTLS_CCM_C */ 700817466cbSJens Wiklander 701*3d3b0591SJens Wiklander #if defined(MBEDTLS_CHACHA20_C) 702*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA) ) 703*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CHACHA20 - Invalid input parameter(s)" ); 704*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_CHACHA20_FEATURE_UNAVAILABLE) ) 705*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CHACHA20 - Feature not available. For example, s part of the API is not implemented" ); 706*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_CHACHA20_HW_ACCEL_FAILED) ) 707*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CHACHA20 - Chacha20 hardware accelerator failed" ); 708*3d3b0591SJens Wiklander #endif /* MBEDTLS_CHACHA20_C */ 709*3d3b0591SJens Wiklander 710*3d3b0591SJens Wiklander #if defined(MBEDTLS_CHACHAPOLY_C) 711*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_CHACHAPOLY_BAD_STATE) ) 712*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CHACHAPOLY - The requested operation is not permitted in the current state" ); 713*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED) ) 714*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CHACHAPOLY - Authenticated decryption failed: data was not authentic" ); 715*3d3b0591SJens Wiklander #endif /* MBEDTLS_CHACHAPOLY_C */ 716*3d3b0591SJens Wiklander 717*3d3b0591SJens Wiklander #if defined(MBEDTLS_CMAC_C) 718*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_CMAC_HW_ACCEL_FAILED) ) 719*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CMAC - CMAC hardware accelerator failed" ); 720*3d3b0591SJens Wiklander #endif /* MBEDTLS_CMAC_C */ 721*3d3b0591SJens Wiklander 722817466cbSJens Wiklander #if defined(MBEDTLS_CTR_DRBG_C) 723817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED) ) 724817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "CTR_DRBG - The entropy source failed" ); 725817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG) ) 726*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CTR_DRBG - The requested random buffer length is too big" ); 727817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG) ) 728*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CTR_DRBG - The input (entropy + additional data) is too large" ); 729817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR) ) 730*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "CTR_DRBG - Read or write error in file" ); 731817466cbSJens Wiklander #endif /* MBEDTLS_CTR_DRBG_C */ 732817466cbSJens Wiklander 733817466cbSJens Wiklander #if defined(MBEDTLS_DES_C) 734817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH) ) 735817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "DES - The data input has an invalid length" ); 736*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_DES_HW_ACCEL_FAILED) ) 737*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "DES - DES hardware accelerator failed" ); 738817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */ 739817466cbSJens Wiklander 740817466cbSJens Wiklander #if defined(MBEDTLS_ENTROPY_C) 741817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ENTROPY_SOURCE_FAILED) ) 742817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ENTROPY - Critical entropy source failure" ); 743817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ENTROPY_MAX_SOURCES) ) 744817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ENTROPY - No more sources can be added" ); 745817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED) ) 746817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ENTROPY - No sources have been added to poll" ); 747817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE) ) 748817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ENTROPY - No strong sources have been added to poll" ); 749817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR) ) 750817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "ENTROPY - Read/write error in file" ); 751817466cbSJens Wiklander #endif /* MBEDTLS_ENTROPY_C */ 752817466cbSJens Wiklander 753817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C) 754817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_GCM_AUTH_FAILED) ) 755817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "GCM - Authenticated decryption failed" ); 756*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_GCM_HW_ACCEL_FAILED) ) 757*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "GCM - GCM hardware accelerator failed" ); 758817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_GCM_BAD_INPUT) ) 759817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "GCM - Bad input parameters to function" ); 760817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */ 761817466cbSJens Wiklander 762*3d3b0591SJens Wiklander #if defined(MBEDTLS_HKDF_C) 763*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_HKDF_BAD_INPUT_DATA) ) 764*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "HKDF - Bad input parameters to function" ); 765*3d3b0591SJens Wiklander #endif /* MBEDTLS_HKDF_C */ 766*3d3b0591SJens Wiklander 767817466cbSJens Wiklander #if defined(MBEDTLS_HMAC_DRBG_C) 768817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG) ) 769817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "HMAC_DRBG - Too many random requested in single call" ); 770817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG) ) 771817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "HMAC_DRBG - Input too large (Entropy + additional)" ); 772817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR) ) 773817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "HMAC_DRBG - Read/write error in file" ); 774817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED) ) 775817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "HMAC_DRBG - The entropy source failed" ); 776817466cbSJens Wiklander #endif /* MBEDTLS_HMAC_DRBG_C */ 777817466cbSJens Wiklander 778*3d3b0591SJens Wiklander #if defined(MBEDTLS_MD2_C) 779*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_MD2_HW_ACCEL_FAILED) ) 780*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "MD2 - MD2 hardware accelerator failed" ); 781*3d3b0591SJens Wiklander #endif /* MBEDTLS_MD2_C */ 782*3d3b0591SJens Wiklander 783*3d3b0591SJens Wiklander #if defined(MBEDTLS_MD4_C) 784*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_MD4_HW_ACCEL_FAILED) ) 785*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "MD4 - MD4 hardware accelerator failed" ); 786*3d3b0591SJens Wiklander #endif /* MBEDTLS_MD4_C */ 787*3d3b0591SJens Wiklander 788*3d3b0591SJens Wiklander #if defined(MBEDTLS_MD5_C) 789*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_MD5_HW_ACCEL_FAILED) ) 790*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "MD5 - MD5 hardware accelerator failed" ); 791*3d3b0591SJens Wiklander #endif /* MBEDTLS_MD5_C */ 792*3d3b0591SJens Wiklander 793817466cbSJens Wiklander #if defined(MBEDTLS_NET_C) 794817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_SOCKET_FAILED) ) 795817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Failed to open a socket" ); 796817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_CONNECT_FAILED) ) 797817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - The connection to the given server / port failed" ); 798817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_BIND_FAILED) ) 799817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Binding of the socket failed" ); 800817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_LISTEN_FAILED) ) 801817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Could not listen on the socket" ); 802817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_ACCEPT_FAILED) ) 803817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Could not accept the incoming connection" ); 804817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_RECV_FAILED) ) 805817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Reading information from the socket failed" ); 806817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_SEND_FAILED) ) 807817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Sending information through the socket failed" ); 808817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_CONN_RESET) ) 809817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Connection was reset by peer" ); 810817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_UNKNOWN_HOST) ) 811817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Failed to get an IP address for the given hostname" ); 812817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_BUFFER_TOO_SMALL) ) 813817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Buffer is too small to hold the data" ); 814817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_INVALID_CONTEXT) ) 815817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "NET - The context is invalid, eg because it was free()ed" ); 816*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_POLL_FAILED) ) 817*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Polling the net context failed" ); 818*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_NET_BAD_INPUT_DATA) ) 819*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "NET - Input invalid" ); 820817466cbSJens Wiklander #endif /* MBEDTLS_NET_C */ 821817466cbSJens Wiklander 822817466cbSJens Wiklander #if defined(MBEDTLS_OID_C) 823817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_OID_NOT_FOUND) ) 824817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "OID - OID is not found" ); 825817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_OID_BUF_TOO_SMALL) ) 826817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "OID - output buffer is too small" ); 827817466cbSJens Wiklander #endif /* MBEDTLS_OID_C */ 828817466cbSJens Wiklander 829817466cbSJens Wiklander #if defined(MBEDTLS_PADLOCK_C) 830817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED) ) 831817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "PADLOCK - Input data should be aligned" ); 832817466cbSJens Wiklander #endif /* MBEDTLS_PADLOCK_C */ 833817466cbSJens Wiklander 834*3d3b0591SJens Wiklander #if defined(MBEDTLS_PLATFORM_C) 835*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED) ) 836*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "PLATFORM - Hardware accelerator failed" ); 837*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED) ) 838*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "PLATFORM - The requested feature is not supported by the platform" ); 839*3d3b0591SJens Wiklander #endif /* MBEDTLS_PLATFORM_C */ 840*3d3b0591SJens Wiklander 841*3d3b0591SJens Wiklander #if defined(MBEDTLS_POLY1305_C) 842*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA) ) 843*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "POLY1305 - Invalid input parameter(s)" ); 844*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_POLY1305_FEATURE_UNAVAILABLE) ) 845*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "POLY1305 - Feature not available. For example, s part of the API is not implemented" ); 846*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_POLY1305_HW_ACCEL_FAILED) ) 847*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "POLY1305 - Poly1305 hardware accelerator failed" ); 848*3d3b0591SJens Wiklander #endif /* MBEDTLS_POLY1305_C */ 849*3d3b0591SJens Wiklander 850*3d3b0591SJens Wiklander #if defined(MBEDTLS_RIPEMD160_C) 851*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_RIPEMD160_HW_ACCEL_FAILED) ) 852*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "RIPEMD160 - RIPEMD160 hardware accelerator failed" ); 853*3d3b0591SJens Wiklander #endif /* MBEDTLS_RIPEMD160_C */ 854*3d3b0591SJens Wiklander 855*3d3b0591SJens Wiklander #if defined(MBEDTLS_SHA1_C) 856*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_SHA1_HW_ACCEL_FAILED) ) 857*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SHA1 - SHA-1 hardware accelerator failed" ); 858*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_SHA1_BAD_INPUT_DATA) ) 859*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SHA1 - SHA-1 input data was malformed" ); 860*3d3b0591SJens Wiklander #endif /* MBEDTLS_SHA1_C */ 861*3d3b0591SJens Wiklander 862*3d3b0591SJens Wiklander #if defined(MBEDTLS_SHA256_C) 863*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_SHA256_HW_ACCEL_FAILED) ) 864*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SHA256 - SHA-256 hardware accelerator failed" ); 865*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA) ) 866*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SHA256 - SHA-256 input data was malformed" ); 867*3d3b0591SJens Wiklander #endif /* MBEDTLS_SHA256_C */ 868*3d3b0591SJens Wiklander 869*3d3b0591SJens Wiklander #if defined(MBEDTLS_SHA512_C) 870*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_SHA512_HW_ACCEL_FAILED) ) 871*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SHA512 - SHA-512 hardware accelerator failed" ); 872*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA) ) 873*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "SHA512 - SHA-512 input data was malformed" ); 874*3d3b0591SJens Wiklander #endif /* MBEDTLS_SHA512_C */ 875*3d3b0591SJens Wiklander 876817466cbSJens Wiklander #if defined(MBEDTLS_THREADING_C) 877817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE) ) 878817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "THREADING - The selected feature is not available" ); 879817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_THREADING_BAD_INPUT_DATA) ) 880817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "THREADING - Bad input parameters to function" ); 881817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_THREADING_MUTEX_ERROR) ) 882817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "THREADING - Locking / unlocking / free failed with error code" ); 883817466cbSJens Wiklander #endif /* MBEDTLS_THREADING_C */ 884817466cbSJens Wiklander 885817466cbSJens Wiklander #if defined(MBEDTLS_XTEA_C) 886817466cbSJens Wiklander if( use_ret == -(MBEDTLS_ERR_XTEA_INVALID_INPUT_LENGTH) ) 887817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "XTEA - The data input has an invalid length" ); 888*3d3b0591SJens Wiklander if( use_ret == -(MBEDTLS_ERR_XTEA_HW_ACCEL_FAILED) ) 889*3d3b0591SJens Wiklander mbedtls_snprintf( buf, buflen, "XTEA - XTEA hardware accelerator failed" ); 890817466cbSJens Wiklander #endif /* MBEDTLS_XTEA_C */ 891817466cbSJens Wiklander // END generated code 892817466cbSJens Wiklander 893817466cbSJens Wiklander if( strlen( buf ) != 0 ) 894817466cbSJens Wiklander return; 895817466cbSJens Wiklander 896817466cbSJens Wiklander mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", use_ret ); 897817466cbSJens Wiklander } 898817466cbSJens Wiklander 899817466cbSJens Wiklander #else /* MBEDTLS_ERROR_C */ 900817466cbSJens Wiklander 901817466cbSJens Wiklander #if defined(MBEDTLS_ERROR_STRERROR_DUMMY) 902817466cbSJens Wiklander 903817466cbSJens Wiklander /* 904817466cbSJens Wiklander * Provide an non-function in case MBEDTLS_ERROR_C is not defined 905817466cbSJens Wiklander */ 906817466cbSJens Wiklander void mbedtls_strerror( int ret, char *buf, size_t buflen ) 907817466cbSJens Wiklander { 908817466cbSJens Wiklander ((void) ret); 909817466cbSJens Wiklander 910817466cbSJens Wiklander if( buflen > 0 ) 911817466cbSJens Wiklander buf[0] = '\0'; 912817466cbSJens Wiklander } 913817466cbSJens Wiklander 914817466cbSJens Wiklander #endif /* MBEDTLS_ERROR_STRERROR_DUMMY */ 915817466cbSJens Wiklander 916817466cbSJens Wiklander #endif /* MBEDTLS_ERROR_C */ 917