Xuyi Wang / wolfSSL

Dependents:   OS

Committer:
wolfSSL
Date:
Sat Aug 18 22:20:43 2018 +0000
Revision:
15:117db924cf7c
wolfSSL 3.15.3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wolfSSL 15:117db924cf7c 1 /* error.c
wolfSSL 15:117db924cf7c 2 *
wolfSSL 15:117db924cf7c 3 * Copyright (C) 2006-2017 wolfSSL Inc.
wolfSSL 15:117db924cf7c 4 *
wolfSSL 15:117db924cf7c 5 * This file is part of wolfSSL.
wolfSSL 15:117db924cf7c 6 *
wolfSSL 15:117db924cf7c 7 * wolfSSL is free software; you can redistribute it and/or modify
wolfSSL 15:117db924cf7c 8 * it under the terms of the GNU General Public License as published by
wolfSSL 15:117db924cf7c 9 * the Free Software Foundation; either version 2 of the License, or
wolfSSL 15:117db924cf7c 10 * (at your option) any later version.
wolfSSL 15:117db924cf7c 11 *
wolfSSL 15:117db924cf7c 12 * wolfSSL is distributed in the hope that it will be useful,
wolfSSL 15:117db924cf7c 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
wolfSSL 15:117db924cf7c 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
wolfSSL 15:117db924cf7c 15 * GNU General Public License for more details.
wolfSSL 15:117db924cf7c 16 *
wolfSSL 15:117db924cf7c 17 * You should have received a copy of the GNU General Public License
wolfSSL 15:117db924cf7c 18 * along with this program; if not, write to the Free Software
wolfSSL 15:117db924cf7c 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
wolfSSL 15:117db924cf7c 20 */
wolfSSL 15:117db924cf7c 21
wolfSSL 15:117db924cf7c 22
wolfSSL 15:117db924cf7c 23 #ifdef HAVE_CONFIG_H
wolfSSL 15:117db924cf7c 24 #include <config.h>
wolfSSL 15:117db924cf7c 25 #endif
wolfSSL 15:117db924cf7c 26
wolfSSL 15:117db924cf7c 27 #include <wolfssl/wolfcrypt/settings.h>
wolfSSL 15:117db924cf7c 28
wolfSSL 15:117db924cf7c 29 #include <wolfssl/wolfcrypt/error-crypt.h>
wolfSSL 15:117db924cf7c 30
wolfSSL 15:117db924cf7c 31 #ifdef _MSC_VER
wolfSSL 15:117db924cf7c 32 /* 4996 warning to use MS extensions e.g., strcpy_s instead of XSTRNCPY */
wolfSSL 15:117db924cf7c 33 #pragma warning(disable: 4996)
wolfSSL 15:117db924cf7c 34 #endif
wolfSSL 15:117db924cf7c 35
wolfSSL 15:117db924cf7c 36 #ifndef NO_ERROR_STRINGS
wolfSSL 15:117db924cf7c 37 const char* wc_GetErrorString(int error)
wolfSSL 15:117db924cf7c 38 {
wolfSSL 15:117db924cf7c 39 switch (error) {
wolfSSL 15:117db924cf7c 40
wolfSSL 15:117db924cf7c 41 case OPEN_RAN_E :
wolfSSL 15:117db924cf7c 42 return "opening random device error";
wolfSSL 15:117db924cf7c 43
wolfSSL 15:117db924cf7c 44 case READ_RAN_E :
wolfSSL 15:117db924cf7c 45 return "reading random device error";
wolfSSL 15:117db924cf7c 46
wolfSSL 15:117db924cf7c 47 case WINCRYPT_E :
wolfSSL 15:117db924cf7c 48 return "windows crypt init error";
wolfSSL 15:117db924cf7c 49
wolfSSL 15:117db924cf7c 50 case CRYPTGEN_E :
wolfSSL 15:117db924cf7c 51 return "windows crypt generation error";
wolfSSL 15:117db924cf7c 52
wolfSSL 15:117db924cf7c 53 case RAN_BLOCK_E :
wolfSSL 15:117db924cf7c 54 return "random device read would block error";
wolfSSL 15:117db924cf7c 55
wolfSSL 15:117db924cf7c 56 case BAD_MUTEX_E :
wolfSSL 15:117db924cf7c 57 return "Bad mutex, operation failed";
wolfSSL 15:117db924cf7c 58
wolfSSL 15:117db924cf7c 59 case WC_TIMEOUT_E:
wolfSSL 15:117db924cf7c 60 return "Timeout error";
wolfSSL 15:117db924cf7c 61
wolfSSL 15:117db924cf7c 62 case WC_PENDING_E:
wolfSSL 15:117db924cf7c 63 return "wolfCrypt Operation Pending (would block / eagain) error";
wolfSSL 15:117db924cf7c 64
wolfSSL 15:117db924cf7c 65 case WC_NOT_PENDING_E:
wolfSSL 15:117db924cf7c 66 return "wolfCrypt operation not pending error";
wolfSSL 15:117db924cf7c 67
wolfSSL 15:117db924cf7c 68 case MP_INIT_E :
wolfSSL 15:117db924cf7c 69 return "mp_init error state";
wolfSSL 15:117db924cf7c 70
wolfSSL 15:117db924cf7c 71 case MP_READ_E :
wolfSSL 15:117db924cf7c 72 return "mp_read error state";
wolfSSL 15:117db924cf7c 73
wolfSSL 15:117db924cf7c 74 case MP_EXPTMOD_E :
wolfSSL 15:117db924cf7c 75 return "mp_exptmod error state";
wolfSSL 15:117db924cf7c 76
wolfSSL 15:117db924cf7c 77 case MP_TO_E :
wolfSSL 15:117db924cf7c 78 return "mp_to_xxx error state, can't convert";
wolfSSL 15:117db924cf7c 79
wolfSSL 15:117db924cf7c 80 case MP_SUB_E :
wolfSSL 15:117db924cf7c 81 return "mp_sub error state, can't subtract";
wolfSSL 15:117db924cf7c 82
wolfSSL 15:117db924cf7c 83 case MP_ADD_E :
wolfSSL 15:117db924cf7c 84 return "mp_add error state, can't add";
wolfSSL 15:117db924cf7c 85
wolfSSL 15:117db924cf7c 86 case MP_MUL_E :
wolfSSL 15:117db924cf7c 87 return "mp_mul error state, can't multiply";
wolfSSL 15:117db924cf7c 88
wolfSSL 15:117db924cf7c 89 case MP_MULMOD_E :
wolfSSL 15:117db924cf7c 90 return "mp_mulmod error state, can't multiply mod";
wolfSSL 15:117db924cf7c 91
wolfSSL 15:117db924cf7c 92 case MP_MOD_E :
wolfSSL 15:117db924cf7c 93 return "mp_mod error state, can't mod";
wolfSSL 15:117db924cf7c 94
wolfSSL 15:117db924cf7c 95 case MP_INVMOD_E :
wolfSSL 15:117db924cf7c 96 return "mp_invmod error state, can't inv mod";
wolfSSL 15:117db924cf7c 97
wolfSSL 15:117db924cf7c 98 case MP_CMP_E :
wolfSSL 15:117db924cf7c 99 return "mp_cmp error state";
wolfSSL 15:117db924cf7c 100
wolfSSL 15:117db924cf7c 101 case MP_ZERO_E :
wolfSSL 15:117db924cf7c 102 return "mp zero result, not expected";
wolfSSL 15:117db924cf7c 103
wolfSSL 15:117db924cf7c 104 case MEMORY_E :
wolfSSL 15:117db924cf7c 105 return "out of memory error";
wolfSSL 15:117db924cf7c 106
wolfSSL 15:117db924cf7c 107 case VAR_STATE_CHANGE_E :
wolfSSL 15:117db924cf7c 108 return "Variable state modified by different thread";
wolfSSL 15:117db924cf7c 109
wolfSSL 15:117db924cf7c 110 case RSA_WRONG_TYPE_E :
wolfSSL 15:117db924cf7c 111 return "RSA wrong block type for RSA function";
wolfSSL 15:117db924cf7c 112
wolfSSL 15:117db924cf7c 113 case RSA_BUFFER_E :
wolfSSL 15:117db924cf7c 114 return "RSA buffer error, output too small or input too big";
wolfSSL 15:117db924cf7c 115
wolfSSL 15:117db924cf7c 116 case BUFFER_E :
wolfSSL 15:117db924cf7c 117 return "Buffer error, output too small or input too big";
wolfSSL 15:117db924cf7c 118
wolfSSL 15:117db924cf7c 119 case ALGO_ID_E :
wolfSSL 15:117db924cf7c 120 return "Setting Cert AlgoID error";
wolfSSL 15:117db924cf7c 121
wolfSSL 15:117db924cf7c 122 case PUBLIC_KEY_E :
wolfSSL 15:117db924cf7c 123 return "Setting Cert Public Key error";
wolfSSL 15:117db924cf7c 124
wolfSSL 15:117db924cf7c 125 case DATE_E :
wolfSSL 15:117db924cf7c 126 return "Setting Cert Date validity error";
wolfSSL 15:117db924cf7c 127
wolfSSL 15:117db924cf7c 128 case SUBJECT_E :
wolfSSL 15:117db924cf7c 129 return "Setting Cert Subject name error";
wolfSSL 15:117db924cf7c 130
wolfSSL 15:117db924cf7c 131 case ISSUER_E :
wolfSSL 15:117db924cf7c 132 return "Setting Cert Issuer name error";
wolfSSL 15:117db924cf7c 133
wolfSSL 15:117db924cf7c 134 case CA_TRUE_E :
wolfSSL 15:117db924cf7c 135 return "Setting basic constraint CA true error";
wolfSSL 15:117db924cf7c 136
wolfSSL 15:117db924cf7c 137 case EXTENSIONS_E :
wolfSSL 15:117db924cf7c 138 return "Setting extensions error";
wolfSSL 15:117db924cf7c 139
wolfSSL 15:117db924cf7c 140 case ASN_PARSE_E :
wolfSSL 15:117db924cf7c 141 return "ASN parsing error, invalid input";
wolfSSL 15:117db924cf7c 142
wolfSSL 15:117db924cf7c 143 case ASN_VERSION_E :
wolfSSL 15:117db924cf7c 144 return "ASN version error, invalid number";
wolfSSL 15:117db924cf7c 145
wolfSSL 15:117db924cf7c 146 case ASN_GETINT_E :
wolfSSL 15:117db924cf7c 147 return "ASN get big int error, invalid data";
wolfSSL 15:117db924cf7c 148
wolfSSL 15:117db924cf7c 149 case ASN_RSA_KEY_E :
wolfSSL 15:117db924cf7c 150 return "ASN key init error, invalid input";
wolfSSL 15:117db924cf7c 151
wolfSSL 15:117db924cf7c 152 case ASN_OBJECT_ID_E :
wolfSSL 15:117db924cf7c 153 return "ASN object id error, invalid id";
wolfSSL 15:117db924cf7c 154
wolfSSL 15:117db924cf7c 155 case ASN_TAG_NULL_E :
wolfSSL 15:117db924cf7c 156 return "ASN tag error, not null";
wolfSSL 15:117db924cf7c 157
wolfSSL 15:117db924cf7c 158 case ASN_EXPECT_0_E :
wolfSSL 15:117db924cf7c 159 return "ASN expect error, not zero";
wolfSSL 15:117db924cf7c 160
wolfSSL 15:117db924cf7c 161 case ASN_BITSTR_E :
wolfSSL 15:117db924cf7c 162 return "ASN bit string error, wrong id";
wolfSSL 15:117db924cf7c 163
wolfSSL 15:117db924cf7c 164 case ASN_UNKNOWN_OID_E :
wolfSSL 15:117db924cf7c 165 return "ASN oid error, unknown sum id";
wolfSSL 15:117db924cf7c 166
wolfSSL 15:117db924cf7c 167 case ASN_DATE_SZ_E :
wolfSSL 15:117db924cf7c 168 return "ASN date error, bad size";
wolfSSL 15:117db924cf7c 169
wolfSSL 15:117db924cf7c 170 case ASN_BEFORE_DATE_E :
wolfSSL 15:117db924cf7c 171 return "ASN date error, current date before";
wolfSSL 15:117db924cf7c 172
wolfSSL 15:117db924cf7c 173 case ASN_AFTER_DATE_E :
wolfSSL 15:117db924cf7c 174 return "ASN date error, current date after";
wolfSSL 15:117db924cf7c 175
wolfSSL 15:117db924cf7c 176 case ASN_SIG_OID_E :
wolfSSL 15:117db924cf7c 177 return "ASN signature error, mismatched oid";
wolfSSL 15:117db924cf7c 178
wolfSSL 15:117db924cf7c 179 case ASN_TIME_E :
wolfSSL 15:117db924cf7c 180 return "ASN time error, unknown time type";
wolfSSL 15:117db924cf7c 181
wolfSSL 15:117db924cf7c 182 case ASN_INPUT_E :
wolfSSL 15:117db924cf7c 183 return "ASN input error, not enough data";
wolfSSL 15:117db924cf7c 184
wolfSSL 15:117db924cf7c 185 case ASN_SIG_CONFIRM_E :
wolfSSL 15:117db924cf7c 186 return "ASN sig error, confirm failure";
wolfSSL 15:117db924cf7c 187
wolfSSL 15:117db924cf7c 188 case ASN_SIG_HASH_E :
wolfSSL 15:117db924cf7c 189 return "ASN sig error, unsupported hash type";
wolfSSL 15:117db924cf7c 190
wolfSSL 15:117db924cf7c 191 case ASN_SIG_KEY_E :
wolfSSL 15:117db924cf7c 192 return "ASN sig error, unsupported key type";
wolfSSL 15:117db924cf7c 193
wolfSSL 15:117db924cf7c 194 case ASN_DH_KEY_E :
wolfSSL 15:117db924cf7c 195 return "ASN key init error, invalid input";
wolfSSL 15:117db924cf7c 196
wolfSSL 15:117db924cf7c 197 case ASN_NTRU_KEY_E :
wolfSSL 15:117db924cf7c 198 return "ASN NTRU key decode error, invalid input";
wolfSSL 15:117db924cf7c 199
wolfSSL 15:117db924cf7c 200 case ASN_CRIT_EXT_E:
wolfSSL 15:117db924cf7c 201 return "X.509 Critical extension ignored or invalid";
wolfSSL 15:117db924cf7c 202
wolfSSL 15:117db924cf7c 203 case ASN_ALT_NAME_E:
wolfSSL 15:117db924cf7c 204 return "ASN alternate name error";
wolfSSL 15:117db924cf7c 205
wolfSSL 15:117db924cf7c 206 case ECC_BAD_ARG_E :
wolfSSL 15:117db924cf7c 207 return "ECC input argument wrong type, invalid input";
wolfSSL 15:117db924cf7c 208
wolfSSL 15:117db924cf7c 209 case ASN_ECC_KEY_E :
wolfSSL 15:117db924cf7c 210 return "ECC ASN1 bad key data, invalid input";
wolfSSL 15:117db924cf7c 211
wolfSSL 15:117db924cf7c 212 case ECC_CURVE_OID_E :
wolfSSL 15:117db924cf7c 213 return "ECC curve sum OID unsupported, invalid input";
wolfSSL 15:117db924cf7c 214
wolfSSL 15:117db924cf7c 215 case BAD_FUNC_ARG :
wolfSSL 15:117db924cf7c 216 return "Bad function argument";
wolfSSL 15:117db924cf7c 217
wolfSSL 15:117db924cf7c 218 case NOT_COMPILED_IN :
wolfSSL 15:117db924cf7c 219 return "Feature not compiled in";
wolfSSL 15:117db924cf7c 220
wolfSSL 15:117db924cf7c 221 case UNICODE_SIZE_E :
wolfSSL 15:117db924cf7c 222 return "Unicode password too big";
wolfSSL 15:117db924cf7c 223
wolfSSL 15:117db924cf7c 224 case NO_PASSWORD :
wolfSSL 15:117db924cf7c 225 return "No password provided by user";
wolfSSL 15:117db924cf7c 226
wolfSSL 15:117db924cf7c 227 case ALT_NAME_E :
wolfSSL 15:117db924cf7c 228 return "Alt Name problem, too big";
wolfSSL 15:117db924cf7c 229
wolfSSL 15:117db924cf7c 230 case AES_GCM_AUTH_E:
wolfSSL 15:117db924cf7c 231 return "AES-GCM Authentication check fail";
wolfSSL 15:117db924cf7c 232
wolfSSL 15:117db924cf7c 233 case AES_CCM_AUTH_E:
wolfSSL 15:117db924cf7c 234 return "AES-CCM Authentication check fail";
wolfSSL 15:117db924cf7c 235
wolfSSL 15:117db924cf7c 236 case ASYNC_INIT_E:
wolfSSL 15:117db924cf7c 237 return "Async Init error";
wolfSSL 15:117db924cf7c 238
wolfSSL 15:117db924cf7c 239 case COMPRESS_INIT_E:
wolfSSL 15:117db924cf7c 240 return "Compress Init error";
wolfSSL 15:117db924cf7c 241
wolfSSL 15:117db924cf7c 242 case COMPRESS_E:
wolfSSL 15:117db924cf7c 243 return "Compress error";
wolfSSL 15:117db924cf7c 244
wolfSSL 15:117db924cf7c 245 case DECOMPRESS_INIT_E:
wolfSSL 15:117db924cf7c 246 return "DeCompress Init error";
wolfSSL 15:117db924cf7c 247
wolfSSL 15:117db924cf7c 248 case DECOMPRESS_E:
wolfSSL 15:117db924cf7c 249 return "DeCompress error";
wolfSSL 15:117db924cf7c 250
wolfSSL 15:117db924cf7c 251 case BAD_ALIGN_E:
wolfSSL 15:117db924cf7c 252 return "Bad alignment error, no alloc help";
wolfSSL 15:117db924cf7c 253
wolfSSL 15:117db924cf7c 254 case ASN_NO_SIGNER_E :
wolfSSL 15:117db924cf7c 255 return "ASN no signer error to confirm failure";
wolfSSL 15:117db924cf7c 256
wolfSSL 15:117db924cf7c 257 case ASN_CRL_CONFIRM_E :
wolfSSL 15:117db924cf7c 258 return "ASN CRL sig error, confirm failure";
wolfSSL 15:117db924cf7c 259
wolfSSL 15:117db924cf7c 260 case ASN_CRL_NO_SIGNER_E :
wolfSSL 15:117db924cf7c 261 return "ASN CRL no signer error to confirm failure";
wolfSSL 15:117db924cf7c 262
wolfSSL 15:117db924cf7c 263 case ASN_OCSP_CONFIRM_E :
wolfSSL 15:117db924cf7c 264 return "ASN OCSP sig error, confirm failure";
wolfSSL 15:117db924cf7c 265
wolfSSL 15:117db924cf7c 266 case ASN_NO_PEM_HEADER:
wolfSSL 15:117db924cf7c 267 return "ASN no PEM Header Error";
wolfSSL 15:117db924cf7c 268
wolfSSL 15:117db924cf7c 269 case BAD_STATE_E:
wolfSSL 15:117db924cf7c 270 return "Bad state operation";
wolfSSL 15:117db924cf7c 271
wolfSSL 15:117db924cf7c 272 case BAD_PADDING_E:
wolfSSL 15:117db924cf7c 273 return "Bad padding, message wrong length";
wolfSSL 15:117db924cf7c 274
wolfSSL 15:117db924cf7c 275 case REQ_ATTRIBUTE_E:
wolfSSL 15:117db924cf7c 276 return "Setting cert request attributes error";
wolfSSL 15:117db924cf7c 277
wolfSSL 15:117db924cf7c 278 case PKCS7_OID_E:
wolfSSL 15:117db924cf7c 279 return "PKCS#7 error: mismatched OID value";
wolfSSL 15:117db924cf7c 280
wolfSSL 15:117db924cf7c 281 case PKCS7_RECIP_E:
wolfSSL 15:117db924cf7c 282 return "PKCS#7 error: no matching recipient found";
wolfSSL 15:117db924cf7c 283
wolfSSL 15:117db924cf7c 284 case FIPS_NOT_ALLOWED_E:
wolfSSL 15:117db924cf7c 285 return "FIPS mode not allowed error";
wolfSSL 15:117db924cf7c 286
wolfSSL 15:117db924cf7c 287 case ASN_NAME_INVALID_E:
wolfSSL 15:117db924cf7c 288 return "Name Constraint error";
wolfSSL 15:117db924cf7c 289
wolfSSL 15:117db924cf7c 290 case RNG_FAILURE_E:
wolfSSL 15:117db924cf7c 291 return "Random Number Generator failed";
wolfSSL 15:117db924cf7c 292
wolfSSL 15:117db924cf7c 293 case HMAC_MIN_KEYLEN_E:
wolfSSL 15:117db924cf7c 294 return "FIPS Mode HMAC Minimum Key Length error";
wolfSSL 15:117db924cf7c 295
wolfSSL 15:117db924cf7c 296 case RSA_PAD_E:
wolfSSL 15:117db924cf7c 297 return "Rsa Padding error";
wolfSSL 15:117db924cf7c 298
wolfSSL 15:117db924cf7c 299 case LENGTH_ONLY_E:
wolfSSL 15:117db924cf7c 300 return "Output length only set, not for other use error";
wolfSSL 15:117db924cf7c 301
wolfSSL 15:117db924cf7c 302 case IN_CORE_FIPS_E:
wolfSSL 15:117db924cf7c 303 return "In Core Integrity check FIPS error";
wolfSSL 15:117db924cf7c 304
wolfSSL 15:117db924cf7c 305 case AES_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 306 return "AES Known Answer Test check FIPS error";
wolfSSL 15:117db924cf7c 307
wolfSSL 15:117db924cf7c 308 case DES3_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 309 return "DES3 Known Answer Test check FIPS error";
wolfSSL 15:117db924cf7c 310
wolfSSL 15:117db924cf7c 311 case HMAC_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 312 return "HMAC Known Answer Test check FIPS error";
wolfSSL 15:117db924cf7c 313
wolfSSL 15:117db924cf7c 314 case RSA_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 315 return "RSA Known Answer Test check FIPS error";
wolfSSL 15:117db924cf7c 316
wolfSSL 15:117db924cf7c 317 case DRBG_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 318 return "DRBG Known Answer Test check FIPS error";
wolfSSL 15:117db924cf7c 319
wolfSSL 15:117db924cf7c 320 case DRBG_CONT_FIPS_E:
wolfSSL 15:117db924cf7c 321 return "DRBG Continuous Test FIPS error";
wolfSSL 15:117db924cf7c 322
wolfSSL 15:117db924cf7c 323 case AESGCM_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 324 return "AESGCM Known Answer Test check FIPS error";
wolfSSL 15:117db924cf7c 325
wolfSSL 15:117db924cf7c 326 case THREAD_STORE_KEY_E:
wolfSSL 15:117db924cf7c 327 return "Thread Storage Key Create error";
wolfSSL 15:117db924cf7c 328
wolfSSL 15:117db924cf7c 329 case THREAD_STORE_SET_E:
wolfSSL 15:117db924cf7c 330 return "Thread Storage Set error";
wolfSSL 15:117db924cf7c 331
wolfSSL 15:117db924cf7c 332 case MAC_CMP_FAILED_E:
wolfSSL 15:117db924cf7c 333 return "MAC comparison failed";
wolfSSL 15:117db924cf7c 334
wolfSSL 15:117db924cf7c 335 case IS_POINT_E:
wolfSSL 15:117db924cf7c 336 return "ECC is point on curve failed";
wolfSSL 15:117db924cf7c 337
wolfSSL 15:117db924cf7c 338 case ECC_INF_E:
wolfSSL 15:117db924cf7c 339 return " ECC point at infinity error";
wolfSSL 15:117db924cf7c 340
wolfSSL 15:117db924cf7c 341 case ECC_OUT_OF_RANGE_E:
wolfSSL 15:117db924cf7c 342 return " ECC Qx or Qy out of range error";
wolfSSL 15:117db924cf7c 343
wolfSSL 15:117db924cf7c 344 case ECC_PRIV_KEY_E:
wolfSSL 15:117db924cf7c 345 return " ECC private key is not valid error";
wolfSSL 15:117db924cf7c 346
wolfSSL 15:117db924cf7c 347 case SRP_CALL_ORDER_E:
wolfSSL 15:117db924cf7c 348 return "SRP function called in the wrong order error";
wolfSSL 15:117db924cf7c 349
wolfSSL 15:117db924cf7c 350 case SRP_VERIFY_E:
wolfSSL 15:117db924cf7c 351 return "SRP proof verification error";
wolfSSL 15:117db924cf7c 352
wolfSSL 15:117db924cf7c 353 case SRP_BAD_KEY_E:
wolfSSL 15:117db924cf7c 354 return "SRP bad key values error";
wolfSSL 15:117db924cf7c 355
wolfSSL 15:117db924cf7c 356 case ASN_NO_SKID:
wolfSSL 15:117db924cf7c 357 return "ASN no Subject Key Identifier found error";
wolfSSL 15:117db924cf7c 358
wolfSSL 15:117db924cf7c 359 case ASN_NO_AKID:
wolfSSL 15:117db924cf7c 360 return "ASN no Authority Key Identifier found error";
wolfSSL 15:117db924cf7c 361
wolfSSL 15:117db924cf7c 362 case ASN_NO_KEYUSAGE:
wolfSSL 15:117db924cf7c 363 return "ASN no Key Usage found error";
wolfSSL 15:117db924cf7c 364
wolfSSL 15:117db924cf7c 365 case SKID_E:
wolfSSL 15:117db924cf7c 366 return "Setting Subject Key Identifier error";
wolfSSL 15:117db924cf7c 367
wolfSSL 15:117db924cf7c 368 case AKID_E:
wolfSSL 15:117db924cf7c 369 return "Setting Authority Key Identifier error";
wolfSSL 15:117db924cf7c 370
wolfSSL 15:117db924cf7c 371 case KEYUSAGE_E:
wolfSSL 15:117db924cf7c 372 return "Key Usage value error";
wolfSSL 15:117db924cf7c 373
wolfSSL 15:117db924cf7c 374 case EXTKEYUSAGE_E:
wolfSSL 15:117db924cf7c 375 return "Extended Key Usage value error";
wolfSSL 15:117db924cf7c 376
wolfSSL 15:117db924cf7c 377 case CERTPOLICIES_E:
wolfSSL 15:117db924cf7c 378 return "Setting Certificate Policies error";
wolfSSL 15:117db924cf7c 379
wolfSSL 15:117db924cf7c 380 case WC_INIT_E:
wolfSSL 15:117db924cf7c 381 return "wolfCrypt Initialize Failure error";
wolfSSL 15:117db924cf7c 382
wolfSSL 15:117db924cf7c 383 case SIG_VERIFY_E:
wolfSSL 15:117db924cf7c 384 return "Signature verify error";
wolfSSL 15:117db924cf7c 385
wolfSSL 15:117db924cf7c 386 case BAD_COND_E:
wolfSSL 15:117db924cf7c 387 return "Bad condition variable operation error";
wolfSSL 15:117db924cf7c 388
wolfSSL 15:117db924cf7c 389 case SIG_TYPE_E:
wolfSSL 15:117db924cf7c 390 return "Signature type not enabled/available";
wolfSSL 15:117db924cf7c 391
wolfSSL 15:117db924cf7c 392 case HASH_TYPE_E:
wolfSSL 15:117db924cf7c 393 return "Hash type not enabled/available";
wolfSSL 15:117db924cf7c 394
wolfSSL 15:117db924cf7c 395 case WC_KEY_SIZE_E:
wolfSSL 15:117db924cf7c 396 return "Key size error, either too small or large";
wolfSSL 15:117db924cf7c 397
wolfSSL 15:117db924cf7c 398 case ASN_COUNTRY_SIZE_E:
wolfSSL 15:117db924cf7c 399 return "Country code size error, either too small or large";
wolfSSL 15:117db924cf7c 400
wolfSSL 15:117db924cf7c 401 case MISSING_RNG_E:
wolfSSL 15:117db924cf7c 402 return "RNG required but not provided";
wolfSSL 15:117db924cf7c 403
wolfSSL 15:117db924cf7c 404 case ASN_PATHLEN_SIZE_E:
wolfSSL 15:117db924cf7c 405 return "ASN CA path length value too large error";
wolfSSL 15:117db924cf7c 406
wolfSSL 15:117db924cf7c 407 case ASN_PATHLEN_INV_E:
wolfSSL 15:117db924cf7c 408 return "ASN CA path length larger than signer error";
wolfSSL 15:117db924cf7c 409
wolfSSL 15:117db924cf7c 410 case BAD_KEYWRAP_ALG_E:
wolfSSL 15:117db924cf7c 411 return "Unsupported key wrap algorithm error";
wolfSSL 15:117db924cf7c 412
wolfSSL 15:117db924cf7c 413 case BAD_KEYWRAP_IV_E:
wolfSSL 15:117db924cf7c 414 return "Decrypted AES key wrap IV does not match expected";
wolfSSL 15:117db924cf7c 415
wolfSSL 15:117db924cf7c 416 case WC_CLEANUP_E:
wolfSSL 15:117db924cf7c 417 return "wolfcrypt cleanup failed";
wolfSSL 15:117db924cf7c 418
wolfSSL 15:117db924cf7c 419 case ECC_CDH_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 420 return "wolfcrypt FIPS ECC CDH Known Answer Test Failure";
wolfSSL 15:117db924cf7c 421
wolfSSL 15:117db924cf7c 422 case DH_CHECK_PUB_E:
wolfSSL 15:117db924cf7c 423 return "DH Check Public Key failure";
wolfSSL 15:117db924cf7c 424
wolfSSL 15:117db924cf7c 425 case BAD_PATH_ERROR:
wolfSSL 15:117db924cf7c 426 return "Bad path for opendir error";
wolfSSL 15:117db924cf7c 427
wolfSSL 15:117db924cf7c 428 case ASYNC_OP_E:
wolfSSL 15:117db924cf7c 429 return "Async operation error";
wolfSSL 15:117db924cf7c 430
wolfSSL 15:117db924cf7c 431 case BAD_OCSP_RESPONDER:
wolfSSL 15:117db924cf7c 432 return "Invalid OCSP Responder, missing specific key usage extensions";
wolfSSL 15:117db924cf7c 433
wolfSSL 15:117db924cf7c 434 case ECC_PRIVATEONLY_E:
wolfSSL 15:117db924cf7c 435 return "Invalid use of private only ECC key";
wolfSSL 15:117db924cf7c 436
wolfSSL 15:117db924cf7c 437 case WC_HW_E:
wolfSSL 15:117db924cf7c 438 return "Error with hardware crypto use";
wolfSSL 15:117db924cf7c 439
wolfSSL 15:117db924cf7c 440 case WC_HW_WAIT_E:
wolfSSL 15:117db924cf7c 441 return "Hardware waiting on resource";
wolfSSL 15:117db924cf7c 442
wolfSSL 15:117db924cf7c 443 case PSS_SALTLEN_E:
wolfSSL 15:117db924cf7c 444 return "PSS - Length of salt is too big for hash algorithm";
wolfSSL 15:117db924cf7c 445
wolfSSL 15:117db924cf7c 446 case PRIME_GEN_E:
wolfSSL 15:117db924cf7c 447 return "Unable to find a prime for RSA key";
wolfSSL 15:117db924cf7c 448
wolfSSL 15:117db924cf7c 449 case BER_INDEF_E:
wolfSSL 15:117db924cf7c 450 return "Unable to decode an indefinite length encoded message";
wolfSSL 15:117db924cf7c 451
wolfSSL 15:117db924cf7c 452 case RSA_OUT_OF_RANGE_E:
wolfSSL 15:117db924cf7c 453 return "Ciphertext to decrypt is out of range";
wolfSSL 15:117db924cf7c 454
wolfSSL 15:117db924cf7c 455 case RSAPSS_PAT_FIPS_E:
wolfSSL 15:117db924cf7c 456 return "wolfcrypt FIPS RSA-PSS Pairwise Agreement Test Failure";
wolfSSL 15:117db924cf7c 457
wolfSSL 15:117db924cf7c 458 case ECDSA_PAT_FIPS_E:
wolfSSL 15:117db924cf7c 459 return "wolfcrypt FIPS ECDSA Pairwise Agreement Test Failure";
wolfSSL 15:117db924cf7c 460
wolfSSL 15:117db924cf7c 461 case DH_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 462 return "wolfcrypt FIPS DH Known Answer Test Failure";
wolfSSL 15:117db924cf7c 463
wolfSSL 15:117db924cf7c 464 case AESCCM_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 465 return "AESCCM Known Answer Test check FIPS error";
wolfSSL 15:117db924cf7c 466
wolfSSL 15:117db924cf7c 467 case SHA3_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 468 return "SHA-3 Known Answer Test check FIPS error";
wolfSSL 15:117db924cf7c 469
wolfSSL 15:117db924cf7c 470 case ECDHE_KAT_FIPS_E:
wolfSSL 15:117db924cf7c 471 return "wolfcrypt FIPS ECDHE Known Answer Test Failure";
wolfSSL 15:117db924cf7c 472
wolfSSL 15:117db924cf7c 473 case AES_GCM_OVERFLOW_E:
wolfSSL 15:117db924cf7c 474 return "AES-GCM invocation counter overflow";
wolfSSL 15:117db924cf7c 475
wolfSSL 15:117db924cf7c 476 case AES_CCM_OVERFLOW_E:
wolfSSL 15:117db924cf7c 477 return "AES-CCM invocation counter overflow";
wolfSSL 15:117db924cf7c 478
wolfSSL 15:117db924cf7c 479 case RSA_KEY_PAIR_E:
wolfSSL 15:117db924cf7c 480 return "RSA Key Pair-Wise Consistency check fail";
wolfSSL 15:117db924cf7c 481
wolfSSL 15:117db924cf7c 482 case DH_CHECK_PRIV_E:
wolfSSL 15:117db924cf7c 483 return "DH Check Private Key failure";
wolfSSL 15:117db924cf7c 484
wolfSSL 15:117db924cf7c 485 default:
wolfSSL 15:117db924cf7c 486 return "unknown error number";
wolfSSL 15:117db924cf7c 487
wolfSSL 15:117db924cf7c 488 }
wolfSSL 15:117db924cf7c 489 }
wolfSSL 15:117db924cf7c 490
wolfSSL 15:117db924cf7c 491 void wc_ErrorString(int error, char* buffer)
wolfSSL 15:117db924cf7c 492 {
wolfSSL 15:117db924cf7c 493 XSTRNCPY(buffer, wc_GetErrorString(error), WOLFSSL_MAX_ERROR_SZ);
wolfSSL 15:117db924cf7c 494 }
wolfSSL 15:117db924cf7c 495 #endif /* !NO_ERROR_STRINGS */
wolfSSL 15:117db924cf7c 496
wolfSSL 15:117db924cf7c 497