cyassl re-port with cellular comms, PSK test

Dependencies:   VodafoneUSBModem_bleedingedge2 mbed-rtos mbed-src

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-2012 Sawtooth Consulting Ltd.
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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
00020  */
00021 
00022 #ifdef HAVE_CONFIG_H
00023     #include <config.h>
00024 #endif
00025  
00026 #include <cyassl/ctaocrypt/error.h>
00027 
00028 #ifdef _MSC_VER
00029     /* 4996 warning to use MS extensions e.g., strcpy_s instead of XSTRNCPY */
00030     #pragma warning(disable: 4996)
00031 #endif
00032 
00033 
00034 void CTaoCryptErrorString(int error, char* buffer)
00035 {
00036     const int max = MAX_ERROR_SZ;   /* shorthand */
00037 
00038 #ifdef NO_ERROR_STRINGS
00039 
00040     (void)error;
00041     XSTRNCPY(buffer, "no support for error strings built in", max);
00042 
00043 #else
00044 
00045     switch (error) {
00046 
00047     case OPEN_RAN_E :        
00048         XSTRNCPY(buffer, "opening random device error", max);
00049         break;
00050 
00051     case READ_RAN_E :
00052         XSTRNCPY(buffer, "reading random device error", max);
00053         break;
00054 
00055     case WINCRYPT_E :
00056         XSTRNCPY(buffer, "windows crypt init error", max);
00057         break;
00058 
00059     case CRYPTGEN_E : 
00060         XSTRNCPY(buffer, "windows crypt generation error", max);
00061         break;
00062 
00063     case RAN_BLOCK_E : 
00064         XSTRNCPY(buffer, "random device read would block error", max);
00065         break;
00066 
00067     case MP_INIT_E :
00068         XSTRNCPY(buffer, "mp_init error state", max);
00069         break;
00070 
00071     case MP_READ_E :
00072         XSTRNCPY(buffer, "mp_read error state", max);
00073         break;
00074 
00075     case MP_EXPTMOD_E :
00076         XSTRNCPY(buffer, "mp_exptmod error state", max);
00077         break;
00078 
00079     case MP_TO_E :
00080         XSTRNCPY(buffer, "mp_to_xxx error state, can't convert", max);
00081         break;
00082 
00083     case MP_SUB_E :
00084         XSTRNCPY(buffer, "mp_sub error state, can't subtract", max);
00085         break;
00086 
00087     case MP_ADD_E :
00088         XSTRNCPY(buffer, "mp_add error state, can't add", max);
00089         break;
00090 
00091     case MP_MUL_E :
00092         XSTRNCPY(buffer, "mp_mul error state, can't multiply", max);
00093         break;
00094 
00095     case MP_MULMOD_E :
00096         XSTRNCPY(buffer, "mp_mulmod error state, can't multiply mod", max);
00097         break;
00098 
00099     case MP_MOD_E :
00100         XSTRNCPY(buffer, "mp_mod error state, can't mod", max);
00101         break;
00102 
00103     case MP_INVMOD_E :
00104         XSTRNCPY(buffer, "mp_invmod error state, can't inv mod", max);
00105         break; 
00106         
00107     case MP_CMP_E :
00108         XSTRNCPY(buffer, "mp_cmp error state", max);
00109         break; 
00110         
00111     case MP_ZERO_E :
00112         XSTRNCPY(buffer, "mp zero result, not expected", max);
00113         break; 
00114         
00115     case MEMORY_E :
00116         XSTRNCPY(buffer, "out of memory error", max);
00117         break;
00118 
00119     case RSA_WRONG_TYPE_E :
00120         XSTRNCPY(buffer, "RSA wrong block type for RSA function", max);
00121         break; 
00122 
00123     case RSA_BUFFER_E :
00124         XSTRNCPY(buffer, "RSA buffer error, output too small or input too big",
00125                 max);
00126         break; 
00127 
00128     case BUFFER_E :
00129         XSTRNCPY(buffer, "Buffer error, output too small or input too big",max);
00130         break; 
00131 
00132     case ALGO_ID_E :
00133         XSTRNCPY(buffer, "Setting Cert AlogID error", max);
00134         break; 
00135 
00136     case PUBLIC_KEY_E :
00137         XSTRNCPY(buffer, "Setting Cert Public Key error", max);
00138         break; 
00139 
00140     case DATE_E :
00141         XSTRNCPY(buffer, "Setting Cert Date validity error", max);
00142         break; 
00143 
00144     case SUBJECT_E :
00145         XSTRNCPY(buffer, "Setting Cert Subject name error", max);
00146         break; 
00147 
00148     case ISSUER_E :
00149         XSTRNCPY(buffer, "Setting Cert Issuer name error", max);
00150         break; 
00151 
00152     case CA_TRUE_E :
00153         XSTRNCPY(buffer, "Setting basic constraint CA true error", max);
00154         break; 
00155 
00156     case EXTENSIONS_E :
00157         XSTRNCPY(buffer, "Setting extensions error", max);
00158         break; 
00159 
00160     case ASN_PARSE_E :
00161         XSTRNCPY(buffer, "ASN parsing error, invalid input", max);
00162         break;
00163 
00164     case ASN_VERSION_E :
00165         XSTRNCPY(buffer, "ASN version error, invalid number", max);
00166         break;
00167 
00168     case ASN_GETINT_E :
00169         XSTRNCPY(buffer, "ASN get big int error, invalid data", max);
00170         break;
00171 
00172     case ASN_RSA_KEY_E :
00173         XSTRNCPY(buffer, "ASN key init error, invalid input", max);
00174         break;
00175 
00176     case ASN_OBJECT_ID_E :
00177         XSTRNCPY(buffer, "ASN object id error, invalid id", max);
00178         break;
00179 
00180     case ASN_TAG_NULL_E :
00181         XSTRNCPY(buffer, "ASN tag error, not null", max);
00182         break;
00183 
00184     case ASN_EXPECT_0_E :
00185         XSTRNCPY(buffer, "ASN expect error, not zero", max);
00186         break;
00187 
00188     case ASN_BITSTR_E :
00189         XSTRNCPY(buffer, "ASN bit string error, wrong id", max);
00190         break;
00191 
00192     case ASN_UNKNOWN_OID_E :
00193         XSTRNCPY(buffer, "ASN oid error, unknown sum id", max);
00194         break;
00195 
00196     case ASN_DATE_SZ_E :
00197         XSTRNCPY(buffer, "ASN date error, bad size", max);
00198         break;
00199 
00200     case ASN_BEFORE_DATE_E :
00201         XSTRNCPY(buffer, "ASN date error, current date before", max);
00202         break;
00203 
00204     case ASN_AFTER_DATE_E :
00205         XSTRNCPY(buffer, "ASN date error, current date after", max);
00206         break;
00207 
00208     case ASN_SIG_OID_E :
00209         XSTRNCPY(buffer, "ASN signature error, mismatched oid", max);
00210         break;
00211 
00212     case ASN_TIME_E :
00213         XSTRNCPY(buffer, "ASN time error, unkown time type", max);
00214         break;
00215 
00216     case ASN_INPUT_E :
00217         XSTRNCPY(buffer, "ASN input error, not enough data", max);
00218         break;
00219 
00220     case ASN_SIG_CONFIRM_E :
00221         XSTRNCPY(buffer, "ASN sig error, confirm failure", max);
00222         break;
00223 
00224     case ASN_SIG_HASH_E :
00225         XSTRNCPY(buffer, "ASN sig error, unsupported hash type", max);
00226         break;
00227 
00228     case ASN_SIG_KEY_E :
00229         XSTRNCPY(buffer, "ASN sig error, unsupported key type", max);
00230         break;
00231 
00232     case ASN_DH_KEY_E :
00233         XSTRNCPY(buffer, "ASN key init error, invalid input", max);
00234         break;
00235 
00236     case ASN_NTRU_KEY_E :
00237         XSTRNCPY(buffer, "ASN NTRU key decode error, invalid input", max);
00238         break;
00239 
00240     case ECC_BAD_ARG_E :
00241         XSTRNCPY(buffer, "ECC input argument wrong type, invalid input", max);
00242         break;
00243 
00244     case ASN_ECC_KEY_E :
00245         XSTRNCPY(buffer, "ECC ASN1 bad key data, invalid input", max);
00246         break;
00247 
00248     case ECC_CURVE_OID_E :
00249         XSTRNCPY(buffer, "ECC curve sum OID unsupported, invalid input", max);
00250         break;
00251 
00252     case BAD_FUNC_ARG :
00253         XSTRNCPY(buffer, "Bad function argument", max);
00254         break;
00255 
00256     case NOT_COMPILED_IN :
00257         XSTRNCPY(buffer, "Feature not compiled in", max);
00258         break;
00259 
00260     case UNICODE_SIZE_E :
00261         XSTRNCPY(buffer, "Unicode password too big", max);
00262         break;
00263 
00264     case NO_PASSWORD :
00265         XSTRNCPY(buffer, "No password provided by user", max);
00266         break;
00267 
00268     case ALT_NAME_E :
00269         XSTRNCPY(buffer, "Alt Name problem, too big", max);
00270         break;
00271 
00272     case AES_GCM_AUTH_E:
00273         XSTRNCPY(buffer, "AES-GCM Authentication check fail", max);
00274         break;
00275 
00276     case AES_CCM_AUTH_E:
00277         XSTRNCPY(buffer, "AES-CCM Authentication check fail", max);
00278         break;
00279 
00280     case CAVIUM_INIT_E:
00281         XSTRNCPY(buffer, "Cavium Init type error", max);
00282         break;
00283 
00284     default:
00285         XSTRNCPY(buffer, "unknown error number", max);
00286 
00287     }
00288 
00289 #endif /* NO_ERROR_STRINGS */
00290 
00291 }