Fork of CyaSSL for my specific settings

Dependents:   CyaSSL_Example

Fork of CyaSSL by wolf SSL

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers error.c Source File

error.c

00001 /* error.c
00002  *
00003  * Copyright (C) 2006-2014 wolfSSL Inc.
00004  *
00005  * This file is part of CyaSSL.
00006  *
00007  * CyaSSL is free software; you can redistribute it and/or modify
00008  * it under the terms of the GNU General Public License as published by
00009  * the Free Software Foundation; either version 2 of the License, or
00010  * (at your option) any later version.
00011  *
00012  * CyaSSL is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License
00018  * along with this program; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
00020  */
00021 
00022 #ifdef HAVE_CONFIG_H
00023     #include <config.h>
00024 #endif
00025  
00026 #include <cyassl/ctaocrypt/settings.h>
00027 
00028 #include <cyassl/ctaocrypt/error-crypt.h>
00029 
00030 #ifdef _MSC_VER
00031     /* 4996 warning to use MS extensions e.g., strcpy_s instead of XSTRNCPY */
00032     #pragma warning(disable: 4996)
00033 #endif
00034 
00035 
00036 void CTaoCryptErrorString(int error, char* buffer)
00037 {
00038     const int max = CYASSL_MAX_ERROR_SZ;   /* shorthand */
00039 
00040 #ifdef NO_ERROR_STRINGS
00041 
00042     (void)error;
00043     XSTRNCPY(buffer, "no support for error strings built in", max);
00044 
00045 #else
00046 
00047     switch (error) {
00048 
00049     case OPEN_RAN_E :        
00050         XSTRNCPY(buffer, "opening random device error", max);
00051         break;
00052 
00053     case READ_RAN_E :
00054         XSTRNCPY(buffer, "reading random device error", max);
00055         break;
00056 
00057     case WINCRYPT_E :
00058         XSTRNCPY(buffer, "windows crypt init error", max);
00059         break;
00060 
00061     case CRYPTGEN_E : 
00062         XSTRNCPY(buffer, "windows crypt generation error", max);
00063         break;
00064 
00065     case RAN_BLOCK_E : 
00066         XSTRNCPY(buffer, "random device read would block error", max);
00067         break;
00068 
00069     case BAD_MUTEX_E : 
00070         XSTRNCPY(buffer, "Bad mutex, operation failed", max);
00071         break;
00072 
00073     case MP_INIT_E :
00074         XSTRNCPY(buffer, "mp_init error state", max);
00075         break;
00076 
00077     case MP_READ_E :
00078         XSTRNCPY(buffer, "mp_read error state", max);
00079         break;
00080 
00081     case MP_EXPTMOD_E :
00082         XSTRNCPY(buffer, "mp_exptmod error state", max);
00083         break;
00084 
00085     case MP_TO_E :
00086         XSTRNCPY(buffer, "mp_to_xxx error state, can't convert", max);
00087         break;
00088 
00089     case MP_SUB_E :
00090         XSTRNCPY(buffer, "mp_sub error state, can't subtract", max);
00091         break;
00092 
00093     case MP_ADD_E :
00094         XSTRNCPY(buffer, "mp_add error state, can't add", max);
00095         break;
00096 
00097     case MP_MUL_E :
00098         XSTRNCPY(buffer, "mp_mul error state, can't multiply", max);
00099         break;
00100 
00101     case MP_MULMOD_E :
00102         XSTRNCPY(buffer, "mp_mulmod error state, can't multiply mod", max);
00103         break;
00104 
00105     case MP_MOD_E :
00106         XSTRNCPY(buffer, "mp_mod error state, can't mod", max);
00107         break;
00108 
00109     case MP_INVMOD_E :
00110         XSTRNCPY(buffer, "mp_invmod error state, can't inv mod", max);
00111         break; 
00112         
00113     case MP_CMP_E :
00114         XSTRNCPY(buffer, "mp_cmp error state", max);
00115         break; 
00116         
00117     case MP_ZERO_E :
00118         XSTRNCPY(buffer, "mp zero result, not expected", max);
00119         break; 
00120         
00121     case MEMORY_E :
00122         XSTRNCPY(buffer, "out of memory error", max);
00123         break;
00124 
00125     case RSA_WRONG_TYPE_E :
00126         XSTRNCPY(buffer, "RSA wrong block type for RSA function", max);
00127         break; 
00128 
00129     case RSA_BUFFER_E :
00130         XSTRNCPY(buffer, "RSA buffer error, output too small or input too big",
00131                 max);
00132         break; 
00133 
00134     case BUFFER_E :
00135         XSTRNCPY(buffer, "Buffer error, output too small or input too big",max);
00136         break; 
00137 
00138     case ALGO_ID_E :
00139         XSTRNCPY(buffer, "Setting Cert AlogID error", max);
00140         break; 
00141 
00142     case PUBLIC_KEY_E :
00143         XSTRNCPY(buffer, "Setting Cert Public Key error", max);
00144         break; 
00145 
00146     case DATE_E :
00147         XSTRNCPY(buffer, "Setting Cert Date validity error", max);
00148         break; 
00149 
00150     case SUBJECT_E :
00151         XSTRNCPY(buffer, "Setting Cert Subject name error", max);
00152         break; 
00153 
00154     case ISSUER_E :
00155         XSTRNCPY(buffer, "Setting Cert Issuer name error", max);
00156         break; 
00157 
00158     case CA_TRUE_E :
00159         XSTRNCPY(buffer, "Setting basic constraint CA true error", max);
00160         break; 
00161 
00162     case EXTENSIONS_E :
00163         XSTRNCPY(buffer, "Setting extensions error", max);
00164         break; 
00165 
00166     case ASN_PARSE_E :
00167         XSTRNCPY(buffer, "ASN parsing error, invalid input", max);
00168         break;
00169 
00170     case ASN_VERSION_E :
00171         XSTRNCPY(buffer, "ASN version error, invalid number", max);
00172         break;
00173 
00174     case ASN_GETINT_E :
00175         XSTRNCPY(buffer, "ASN get big int error, invalid data", max);
00176         break;
00177 
00178     case ASN_RSA_KEY_E :
00179         XSTRNCPY(buffer, "ASN key init error, invalid input", max);
00180         break;
00181 
00182     case ASN_OBJECT_ID_E :
00183         XSTRNCPY(buffer, "ASN object id error, invalid id", max);
00184         break;
00185 
00186     case ASN_TAG_NULL_E :
00187         XSTRNCPY(buffer, "ASN tag error, not null", max);
00188         break;
00189 
00190     case ASN_EXPECT_0_E :
00191         XSTRNCPY(buffer, "ASN expect error, not zero", max);
00192         break;
00193 
00194     case ASN_BITSTR_E :
00195         XSTRNCPY(buffer, "ASN bit string error, wrong id", max);
00196         break;
00197 
00198     case ASN_UNKNOWN_OID_E :
00199         XSTRNCPY(buffer, "ASN oid error, unknown sum id", max);
00200         break;
00201 
00202     case ASN_DATE_SZ_E :
00203         XSTRNCPY(buffer, "ASN date error, bad size", max);
00204         break;
00205 
00206     case ASN_BEFORE_DATE_E :
00207         XSTRNCPY(buffer, "ASN date error, current date before", max);
00208         break;
00209 
00210     case ASN_AFTER_DATE_E :
00211         XSTRNCPY(buffer, "ASN date error, current date after", max);
00212         break;
00213 
00214     case ASN_SIG_OID_E :
00215         XSTRNCPY(buffer, "ASN signature error, mismatched oid", max);
00216         break;
00217 
00218     case ASN_TIME_E :
00219         XSTRNCPY(buffer, "ASN time error, unkown time type", max);
00220         break;
00221 
00222     case ASN_INPUT_E :
00223         XSTRNCPY(buffer, "ASN input error, not enough data", max);
00224         break;
00225 
00226     case ASN_SIG_CONFIRM_E :
00227         XSTRNCPY(buffer, "ASN sig error, confirm failure", max);
00228         break;
00229 
00230     case ASN_SIG_HASH_E :
00231         XSTRNCPY(buffer, "ASN sig error, unsupported hash type", max);
00232         break;
00233 
00234     case ASN_SIG_KEY_E :
00235         XSTRNCPY(buffer, "ASN sig error, unsupported key type", max);
00236         break;
00237 
00238     case ASN_DH_KEY_E :
00239         XSTRNCPY(buffer, "ASN key init error, invalid input", max);
00240         break;
00241 
00242     case ASN_NTRU_KEY_E :
00243         XSTRNCPY(buffer, "ASN NTRU key decode error, invalid input", max);
00244         break;
00245 
00246     case ASN_CRIT_EXT_E:
00247         XSTRNCPY(buffer, "X.509 Critical extension ignored", max);
00248         break;
00249 
00250     case ECC_BAD_ARG_E :
00251         XSTRNCPY(buffer, "ECC input argument wrong type, invalid input", max);
00252         break;
00253 
00254     case ASN_ECC_KEY_E :
00255         XSTRNCPY(buffer, "ECC ASN1 bad key data, invalid input", max);
00256         break;
00257 
00258     case ECC_CURVE_OID_E :
00259         XSTRNCPY(buffer, "ECC curve sum OID unsupported, invalid input", max);
00260         break;
00261 
00262     case BAD_FUNC_ARG :
00263         XSTRNCPY(buffer, "Bad function argument", max);
00264         break;
00265 
00266     case NOT_COMPILED_IN :
00267         XSTRNCPY(buffer, "Feature not compiled in", max);
00268         break;
00269 
00270     case UNICODE_SIZE_E :
00271         XSTRNCPY(buffer, "Unicode password too big", max);
00272         break;
00273 
00274     case NO_PASSWORD :
00275         XSTRNCPY(buffer, "No password provided by user", max);
00276         break;
00277 
00278     case ALT_NAME_E :
00279         XSTRNCPY(buffer, "Alt Name problem, too big", max);
00280         break;
00281 
00282     case AES_GCM_AUTH_E:
00283         XSTRNCPY(buffer, "AES-GCM Authentication check fail", max);
00284         break;
00285 
00286     case AES_CCM_AUTH_E:
00287         XSTRNCPY(buffer, "AES-CCM Authentication check fail", max);
00288         break;
00289 
00290     case CAVIUM_INIT_E:
00291         XSTRNCPY(buffer, "Cavium Init type error", max);
00292         break;
00293 
00294     case COMPRESS_INIT_E:
00295         XSTRNCPY(buffer, "Compress Init error", max);
00296         break;
00297 
00298     case COMPRESS_E:
00299         XSTRNCPY(buffer, "Compress error", max);
00300         break;
00301 
00302     case DECOMPRESS_INIT_E:
00303         XSTRNCPY(buffer, "DeCompress Init error", max);
00304         break;
00305 
00306     case DECOMPRESS_E:
00307         XSTRNCPY(buffer, "DeCompress error", max);
00308         break;
00309 
00310     case BAD_ALIGN_E:
00311         XSTRNCPY(buffer, "Bad alignment error, no alloc help", max);
00312         break;
00313 
00314     case ASN_NO_SIGNER_E :
00315         XSTRNCPY(buffer, "ASN no signer error to confirm failure", max);
00316         break;
00317 
00318     case ASN_CRL_CONFIRM_E :
00319         XSTRNCPY(buffer, "ASN CRL sig error, confirm failure", max);
00320         break;
00321 
00322     case ASN_CRL_NO_SIGNER_E :
00323         XSTRNCPY(buffer, "ASN CRL no signer error to confirm failure", max);
00324         break;
00325 
00326     case ASN_OCSP_CONFIRM_E :
00327         XSTRNCPY(buffer, "ASN OCSP sig error, confirm failure", max);
00328         break;
00329 
00330     case BAD_ENC_STATE_E:
00331         XSTRNCPY(buffer, "Bad ecc encrypt state operation", max);
00332         break;
00333 
00334     case BAD_PADDING_E:
00335         XSTRNCPY(buffer, "Bad padding, message wrong length", max);
00336         break;
00337 
00338     case REQ_ATTRIBUTE_E:
00339         XSTRNCPY(buffer, "Setting cert request attributes error", max);
00340         break;
00341 
00342     case PKCS7_OID_E:
00343         XSTRNCPY(buffer, "PKCS#7 error: mismatched OID value", max);
00344         break;
00345 
00346     case PKCS7_RECIP_E:
00347         XSTRNCPY(buffer, "PKCS#7 error: no matching recipient found", max);
00348         break;
00349 
00350     case FIPS_NOT_ALLOWED_E:
00351         XSTRNCPY(buffer, "FIPS mode not allowed error", max);
00352         break;
00353 
00354     case ASN_NAME_INVALID_E:
00355         XSTRNCPY(buffer, "Name Constraint error", max);
00356         break;
00357 
00358     default:
00359         XSTRNCPY(buffer, "unknown error number", max);
00360 
00361     }
00362 
00363 #endif /* NO_ERROR_STRINGS */
00364 
00365 }
00366