Merge branch 'master' into ti

This commit is contained in:
toddouska
2014-05-14 15:07:47 -07:00
5 changed files with 192 additions and 349 deletions

View File

@ -22,7 +22,7 @@
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include <config.h> #include <config.h>
#endif #endif
#include <cyassl/ctaocrypt/settings.h> #include <cyassl/ctaocrypt/settings.h>
#include <cyassl/ctaocrypt/error-crypt.h> #include <cyassl/ctaocrypt/error-crypt.h>
@ -32,334 +32,258 @@
#pragma warning(disable: 4996) #pragma warning(disable: 4996)
#endif #endif
const char* CTaoCryptGetErrorString(int error)
void CTaoCryptErrorString(int error, char* buffer)
{ {
const int max = CYASSL_MAX_ERROR_SZ; /* shorthand */
#ifdef NO_ERROR_STRINGS #ifdef NO_ERROR_STRINGS
(void)error; (void)error;
XSTRNCPY(buffer, "no support for error strings built in", max); return "no support for error strings built in";
#else #else
switch (error) { switch (error) {
case OPEN_RAN_E : case OPEN_RAN_E :
XSTRNCPY(buffer, "opening random device error", max); return "opening random device error";
break;
case READ_RAN_E : case READ_RAN_E :
XSTRNCPY(buffer, "reading random device error", max); return "reading random device error";
break;
case WINCRYPT_E : case WINCRYPT_E :
XSTRNCPY(buffer, "windows crypt init error", max); return "windows crypt init error";
break;
case CRYPTGEN_E : case CRYPTGEN_E :
XSTRNCPY(buffer, "windows crypt generation error", max); return "windows crypt generation error";
break;
case RAN_BLOCK_E : case RAN_BLOCK_E :
XSTRNCPY(buffer, "random device read would block error", max); return "random device read would block error";
break;
case BAD_MUTEX_E : case BAD_MUTEX_E :
XSTRNCPY(buffer, "Bad mutex, operation failed", max); return "Bad mutex, operation failed";
break;
case MP_INIT_E : case MP_INIT_E :
XSTRNCPY(buffer, "mp_init error state", max); return "mp_init error state";
break;
case MP_READ_E : case MP_READ_E :
XSTRNCPY(buffer, "mp_read error state", max); return "mp_read error state";
break;
case MP_EXPTMOD_E : case MP_EXPTMOD_E :
XSTRNCPY(buffer, "mp_exptmod error state", max); return "mp_exptmod error state";
break;
case MP_TO_E : case MP_TO_E :
XSTRNCPY(buffer, "mp_to_xxx error state, can't convert", max); return "mp_to_xxx error state, can't convert";
break;
case MP_SUB_E : case MP_SUB_E :
XSTRNCPY(buffer, "mp_sub error state, can't subtract", max); return "mp_sub error state, can't subtract";
break;
case MP_ADD_E : case MP_ADD_E :
XSTRNCPY(buffer, "mp_add error state, can't add", max); return "mp_add error state, can't add";
break;
case MP_MUL_E : case MP_MUL_E :
XSTRNCPY(buffer, "mp_mul error state, can't multiply", max); return "mp_mul error state, can't multiply";
break;
case MP_MULMOD_E : case MP_MULMOD_E :
XSTRNCPY(buffer, "mp_mulmod error state, can't multiply mod", max); return "mp_mulmod error state, can't multiply mod";
break;
case MP_MOD_E : case MP_MOD_E :
XSTRNCPY(buffer, "mp_mod error state, can't mod", max); return "mp_mod error state, can't mod";
break;
case MP_INVMOD_E : case MP_INVMOD_E :
XSTRNCPY(buffer, "mp_invmod error state, can't inv mod", max); return "mp_invmod error state, can't inv mod";
break;
case MP_CMP_E : case MP_CMP_E :
XSTRNCPY(buffer, "mp_cmp error state", max); return "mp_cmp error state";
break;
case MP_ZERO_E : case MP_ZERO_E :
XSTRNCPY(buffer, "mp zero result, not expected", max); return "mp zero result, not expected";
break;
case MEMORY_E : case MEMORY_E :
XSTRNCPY(buffer, "out of memory error", max); return "out of memory error";
break;
case RSA_WRONG_TYPE_E : case RSA_WRONG_TYPE_E :
XSTRNCPY(buffer, "RSA wrong block type for RSA function", max); return "RSA wrong block type for RSA function";
break;
case RSA_BUFFER_E : case RSA_BUFFER_E :
XSTRNCPY(buffer, "RSA buffer error, output too small or input too big", return "RSA buffer error, output too small or input too big";
max);
break;
case BUFFER_E : case BUFFER_E :
XSTRNCPY(buffer, "Buffer error, output too small or input too big",max); return "Buffer error, output too small or input too big";
break;
case ALGO_ID_E : case ALGO_ID_E :
XSTRNCPY(buffer, "Setting Cert AlogID error", max); return "Setting Cert AlogID error";
break;
case PUBLIC_KEY_E : case PUBLIC_KEY_E :
XSTRNCPY(buffer, "Setting Cert Public Key error", max); return "Setting Cert Public Key error";
break;
case DATE_E : case DATE_E :
XSTRNCPY(buffer, "Setting Cert Date validity error", max); return "Setting Cert Date validity error";
break;
case SUBJECT_E : case SUBJECT_E :
XSTRNCPY(buffer, "Setting Cert Subject name error", max); return "Setting Cert Subject name error";
break;
case ISSUER_E : case ISSUER_E :
XSTRNCPY(buffer, "Setting Cert Issuer name error", max); return "Setting Cert Issuer name error";
break;
case CA_TRUE_E : case CA_TRUE_E :
XSTRNCPY(buffer, "Setting basic constraint CA true error", max); return "Setting basic constraint CA true error";
break;
case EXTENSIONS_E : case EXTENSIONS_E :
XSTRNCPY(buffer, "Setting extensions error", max); return "Setting extensions error";
break;
case ASN_PARSE_E : case ASN_PARSE_E :
XSTRNCPY(buffer, "ASN parsing error, invalid input", max); return "ASN parsing error, invalid input";
break;
case ASN_VERSION_E : case ASN_VERSION_E :
XSTRNCPY(buffer, "ASN version error, invalid number", max); return "ASN version error, invalid number";
break;
case ASN_GETINT_E : case ASN_GETINT_E :
XSTRNCPY(buffer, "ASN get big int error, invalid data", max); return "ASN get big int error, invalid data";
break;
case ASN_RSA_KEY_E : case ASN_RSA_KEY_E :
XSTRNCPY(buffer, "ASN key init error, invalid input", max); return "ASN key init error, invalid input";
break;
case ASN_OBJECT_ID_E : case ASN_OBJECT_ID_E :
XSTRNCPY(buffer, "ASN object id error, invalid id", max); return "ASN object id error, invalid id";
break;
case ASN_TAG_NULL_E : case ASN_TAG_NULL_E :
XSTRNCPY(buffer, "ASN tag error, not null", max); return "ASN tag error, not null";
break;
case ASN_EXPECT_0_E : case ASN_EXPECT_0_E :
XSTRNCPY(buffer, "ASN expect error, not zero", max); return "ASN expect error, not zero";
break;
case ASN_BITSTR_E : case ASN_BITSTR_E :
XSTRNCPY(buffer, "ASN bit string error, wrong id", max); return "ASN bit string error, wrong id";
break;
case ASN_UNKNOWN_OID_E : case ASN_UNKNOWN_OID_E :
XSTRNCPY(buffer, "ASN oid error, unknown sum id", max); return "ASN oid error, unknown sum id";
break;
case ASN_DATE_SZ_E : case ASN_DATE_SZ_E :
XSTRNCPY(buffer, "ASN date error, bad size", max); return "ASN date error, bad size";
break;
case ASN_BEFORE_DATE_E : case ASN_BEFORE_DATE_E :
XSTRNCPY(buffer, "ASN date error, current date before", max); return "ASN date error, current date before";
break;
case ASN_AFTER_DATE_E : case ASN_AFTER_DATE_E :
XSTRNCPY(buffer, "ASN date error, current date after", max); return "ASN date error, current date after";
break;
case ASN_SIG_OID_E : case ASN_SIG_OID_E :
XSTRNCPY(buffer, "ASN signature error, mismatched oid", max); return "ASN signature error, mismatched oid";
break;
case ASN_TIME_E : case ASN_TIME_E :
XSTRNCPY(buffer, "ASN time error, unkown time type", max); return "ASN time error, unkown time type";
break;
case ASN_INPUT_E : case ASN_INPUT_E :
XSTRNCPY(buffer, "ASN input error, not enough data", max); return "ASN input error, not enough data";
break;
case ASN_SIG_CONFIRM_E : case ASN_SIG_CONFIRM_E :
XSTRNCPY(buffer, "ASN sig error, confirm failure", max); return "ASN sig error, confirm failure";
break;
case ASN_SIG_HASH_E : case ASN_SIG_HASH_E :
XSTRNCPY(buffer, "ASN sig error, unsupported hash type", max); return "ASN sig error, unsupported hash type";
break;
case ASN_SIG_KEY_E : case ASN_SIG_KEY_E :
XSTRNCPY(buffer, "ASN sig error, unsupported key type", max); return "ASN sig error, unsupported key type";
break;
case ASN_DH_KEY_E : case ASN_DH_KEY_E :
XSTRNCPY(buffer, "ASN key init error, invalid input", max); return "ASN key init error, invalid input";
break;
case ASN_NTRU_KEY_E : case ASN_NTRU_KEY_E :
XSTRNCPY(buffer, "ASN NTRU key decode error, invalid input", max); return "ASN NTRU key decode error, invalid input";
break;
case ASN_CRIT_EXT_E: case ASN_CRIT_EXT_E:
XSTRNCPY(buffer, "X.509 Critical extension ignored", max); return "X.509 Critical extension ignored";
break;
case ECC_BAD_ARG_E : case ECC_BAD_ARG_E :
XSTRNCPY(buffer, "ECC input argument wrong type, invalid input", max); return "ECC input argument wrong type, invalid input";
break;
case ASN_ECC_KEY_E : case ASN_ECC_KEY_E :
XSTRNCPY(buffer, "ECC ASN1 bad key data, invalid input", max); return "ECC ASN1 bad key data, invalid input";
break;
case ECC_CURVE_OID_E : case ECC_CURVE_OID_E :
XSTRNCPY(buffer, "ECC curve sum OID unsupported, invalid input", max); return "ECC curve sum OID unsupported, invalid input";
break;
case BAD_FUNC_ARG : case BAD_FUNC_ARG :
XSTRNCPY(buffer, "Bad function argument", max); return "Bad function argument";
break;
case NOT_COMPILED_IN : case NOT_COMPILED_IN :
XSTRNCPY(buffer, "Feature not compiled in", max); return "Feature not compiled in";
break;
case UNICODE_SIZE_E : case UNICODE_SIZE_E :
XSTRNCPY(buffer, "Unicode password too big", max); return "Unicode password too big";
break;
case NO_PASSWORD : case NO_PASSWORD :
XSTRNCPY(buffer, "No password provided by user", max); return "No password provided by user";
break;
case ALT_NAME_E : case ALT_NAME_E :
XSTRNCPY(buffer, "Alt Name problem, too big", max); return "Alt Name problem, too big";
break;
case AES_GCM_AUTH_E: case AES_GCM_AUTH_E:
XSTRNCPY(buffer, "AES-GCM Authentication check fail", max); return "AES-GCM Authentication check fail";
break;
case AES_CCM_AUTH_E: case AES_CCM_AUTH_E:
XSTRNCPY(buffer, "AES-CCM Authentication check fail", max); return "AES-CCM Authentication check fail";
break;
case CAVIUM_INIT_E: case CAVIUM_INIT_E:
XSTRNCPY(buffer, "Cavium Init type error", max); return "Cavium Init type error";
break;
case COMPRESS_INIT_E: case COMPRESS_INIT_E:
XSTRNCPY(buffer, "Compress Init error", max); return "Compress Init error";
break;
case COMPRESS_E: case COMPRESS_E:
XSTRNCPY(buffer, "Compress error", max); return "Compress error";
break;
case DECOMPRESS_INIT_E: case DECOMPRESS_INIT_E:
XSTRNCPY(buffer, "DeCompress Init error", max); return "DeCompress Init error";
break;
case DECOMPRESS_E: case DECOMPRESS_E:
XSTRNCPY(buffer, "DeCompress error", max); return "DeCompress error";
break;
case BAD_ALIGN_E: case BAD_ALIGN_E:
XSTRNCPY(buffer, "Bad alignment error, no alloc help", max); return "Bad alignment error, no alloc help";
break;
case ASN_NO_SIGNER_E : case ASN_NO_SIGNER_E :
XSTRNCPY(buffer, "ASN no signer error to confirm failure", max); return "ASN no signer error to confirm failure";
break;
case ASN_CRL_CONFIRM_E : case ASN_CRL_CONFIRM_E :
XSTRNCPY(buffer, "ASN CRL sig error, confirm failure", max); return "ASN CRL sig error, confirm failure";
break;
case ASN_CRL_NO_SIGNER_E : case ASN_CRL_NO_SIGNER_E :
XSTRNCPY(buffer, "ASN CRL no signer error to confirm failure", max); return "ASN CRL no signer error to confirm failure";
break;
case ASN_OCSP_CONFIRM_E : case ASN_OCSP_CONFIRM_E :
XSTRNCPY(buffer, "ASN OCSP sig error, confirm failure", max); return "ASN OCSP sig error, confirm failure";
break;
case BAD_ENC_STATE_E: case BAD_ENC_STATE_E:
XSTRNCPY(buffer, "Bad ecc encrypt state operation", max); return "Bad ecc encrypt state operation";
break;
case BAD_PADDING_E: case BAD_PADDING_E:
XSTRNCPY(buffer, "Bad padding, message wrong length", max); return "Bad padding, message wrong length";
break;
case REQ_ATTRIBUTE_E: case REQ_ATTRIBUTE_E:
XSTRNCPY(buffer, "Setting cert request attributes error", max); return "Setting cert request attributes error";
break;
case PKCS7_OID_E: case PKCS7_OID_E:
XSTRNCPY(buffer, "PKCS#7 error: mismatched OID value", max); return "PKCS#7 error: mismatched OID value";
break;
case PKCS7_RECIP_E: case PKCS7_RECIP_E:
XSTRNCPY(buffer, "PKCS#7 error: no matching recipient found", max); return "PKCS#7 error: no matching recipient found";
break;
case FIPS_NOT_ALLOWED_E: case FIPS_NOT_ALLOWED_E:
XSTRNCPY(buffer, "FIPS mode not allowed error", max); return "FIPS mode not allowed error";
break;
case ASN_NAME_INVALID_E: case ASN_NAME_INVALID_E:
XSTRNCPY(buffer, "Name Constraint error", max); return "Name Constraint error";
break;
default: default:
XSTRNCPY(buffer, "unknown error number", max); return "unknown error number";
} }
#endif /* NO_ERROR_STRINGS */ #endif /* NO_ERROR_STRINGS */
} }
void CTaoCryptErrorString(int error, char* buffer)
{
XSTRNCPY(buffer, CTaoCryptGetErrorString(error), CYASSL_MAX_ERROR_SZ);
}

View File

@ -130,6 +130,7 @@ enum {
CYASSL_API void CTaoCryptErrorString(int err, char* buff); CYASSL_API void CTaoCryptErrorString(int err, char* buff);
CYASSL_API const char* CTaoCryptGetErrorString(int error);
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -142,6 +142,7 @@ typedef CYASSL_X509_STORE_CTX X509_STORE_CTX;
#define ERR_error_string CyaSSL_ERR_error_string #define ERR_error_string CyaSSL_ERR_error_string
#define ERR_error_string_n CyaSSL_ERR_error_string_n #define ERR_error_string_n CyaSSL_ERR_error_string_n
#define ERR_reason_error_string CyaSSL_ERR_reason_error_string
#define SSL_set_ex_data CyaSSL_set_ex_data #define SSL_set_ex_data CyaSSL_set_ex_data
#define SSL_get_shutdown CyaSSL_get_shutdown #define SSL_get_shutdown CyaSSL_get_shutdown

View File

@ -312,6 +312,7 @@ CYASSL_API int CyaSSL_ERR_GET_REASON(int err);
CYASSL_API char* CyaSSL_ERR_error_string(unsigned long,char*); CYASSL_API char* CyaSSL_ERR_error_string(unsigned long,char*);
CYASSL_API void CyaSSL_ERR_error_string_n(unsigned long e, char* buf, CYASSL_API void CyaSSL_ERR_error_string_n(unsigned long e, char* buf,
unsigned long sz); unsigned long sz);
CYASSL_API const char* CyaSSL_ERR_reason_error_string(unsigned long);
/* extras */ /* extras */

View File

@ -6203,377 +6203,293 @@ int SendAlert(CYASSL* ssl, int severity, int type)
return SendBuffered(ssl); return SendBuffered(ssl);
} }
const char* CyaSSL_ERR_reason_error_string(unsigned long e)
void SetErrorString(int error, char* str)
{ {
const int max = CYASSL_MAX_ERROR_SZ; /* shorthand */
#ifdef NO_ERROR_STRINGS #ifdef NO_ERROR_STRINGS
(void)error; (void)e;
XSTRNCPY(str, "no support for error strings built in", max); return "no support for error strings built in";
#else #else
int error = (int)e;
/* pass to CTaoCrypt */ /* pass to CTaoCrypt */
if (error < MAX_CODE_E && error > MIN_CODE_E) { if (error < MAX_CODE_E && error > MIN_CODE_E) {
CTaoCryptErrorString(error, str); return CTaoCryptGetErrorString(error);
return;
} }
switch (error) { switch (error) {
case UNSUPPORTED_SUITE : case UNSUPPORTED_SUITE :
XSTRNCPY(str, "unsupported cipher suite", max); return "unsupported cipher suite";
break;
case INPUT_CASE_ERROR : case INPUT_CASE_ERROR :
XSTRNCPY(str, "input state error", max); return "input state error";
break;
case PREFIX_ERROR : case PREFIX_ERROR :
XSTRNCPY(str, "bad index to key rounds", max); return "bad index to key rounds";
break;
case MEMORY_ERROR : case MEMORY_ERROR :
XSTRNCPY(str, "out of memory", max); return "out of memory";
break;
case VERIFY_FINISHED_ERROR : case VERIFY_FINISHED_ERROR :
XSTRNCPY(str, "verify problem on finished", max); return "verify problem on finished";
break;
case VERIFY_MAC_ERROR : case VERIFY_MAC_ERROR :
XSTRNCPY(str, "verify mac problem", max); return "verify mac problem";
break;
case PARSE_ERROR : case PARSE_ERROR :
XSTRNCPY(str, "parse error on header", max); return "parse error on header";
break;
case SIDE_ERROR : case SIDE_ERROR :
XSTRNCPY(str, "wrong client/server type", max); return "wrong client/server type";
break;
case NO_PEER_CERT : case NO_PEER_CERT :
XSTRNCPY(str, "peer didn't send cert", max); return "peer didn't send cert";
break;
case UNKNOWN_HANDSHAKE_TYPE : case UNKNOWN_HANDSHAKE_TYPE :
XSTRNCPY(str, "weird handshake type", max); return "weird handshake type";
break;
case SOCKET_ERROR_E : case SOCKET_ERROR_E :
XSTRNCPY(str, "error state on socket", max); return "error state on socket";
break;
case SOCKET_NODATA : case SOCKET_NODATA :
XSTRNCPY(str, "expected data, not there", max); return "expected data, not there";
break;
case INCOMPLETE_DATA : case INCOMPLETE_DATA :
XSTRNCPY(str, "don't have enough data to complete task", max); return "don't have enough data to complete task";
break;
case UNKNOWN_RECORD_TYPE : case UNKNOWN_RECORD_TYPE :
XSTRNCPY(str, "unknown type in record hdr", max); return "unknown type in record hdr";
break;
case DECRYPT_ERROR : case DECRYPT_ERROR :
XSTRNCPY(str, "error during decryption", max); return "error during decryption";
break;
case FATAL_ERROR : case FATAL_ERROR :
XSTRNCPY(str, "revcd alert fatal error", max); return "revcd alert fatal error";
break;
case ENCRYPT_ERROR : case ENCRYPT_ERROR :
XSTRNCPY(str, "error during encryption", max); return "error during encryption";
break;
case FREAD_ERROR : case FREAD_ERROR :
XSTRNCPY(str, "fread problem", max); return "fread problem";
break;
case NO_PEER_KEY : case NO_PEER_KEY :
XSTRNCPY(str, "need peer's key", max); return "need peer's key";
break;
case NO_PRIVATE_KEY : case NO_PRIVATE_KEY :
XSTRNCPY(str, "need the private key", max); return "need the private key";
break;
case NO_DH_PARAMS : case NO_DH_PARAMS :
XSTRNCPY(str, "server missing DH params", max); return "server missing DH params";
break;
case RSA_PRIVATE_ERROR : case RSA_PRIVATE_ERROR :
XSTRNCPY(str, "error during rsa priv op", max); return "error during rsa priv op";
break;
case MATCH_SUITE_ERROR : case MATCH_SUITE_ERROR :
XSTRNCPY(str, "can't match cipher suite", max); return "can't match cipher suite";
break;
case BUILD_MSG_ERROR : case BUILD_MSG_ERROR :
XSTRNCPY(str, "build message failure", max); return "build message failure";
break;
case BAD_HELLO : case BAD_HELLO :
XSTRNCPY(str, "client hello malformed", max); return "client hello malformed";
break;
case DOMAIN_NAME_MISMATCH : case DOMAIN_NAME_MISMATCH :
XSTRNCPY(str, "peer subject name mismatch", max); return "peer subject name mismatch";
break;
case WANT_READ : case WANT_READ :
case SSL_ERROR_WANT_READ : case SSL_ERROR_WANT_READ :
XSTRNCPY(str, "non-blocking socket wants data to be read", max); return "non-blocking socket wants data to be read";
break;
case NOT_READY_ERROR : case NOT_READY_ERROR :
XSTRNCPY(str, "handshake layer not ready yet, complete first", max); return "handshake layer not ready yet, complete first";
break;
case PMS_VERSION_ERROR : case PMS_VERSION_ERROR :
XSTRNCPY(str, "premaster secret version mismatch error", max); return "premaster secret version mismatch error";
break;
case VERSION_ERROR : case VERSION_ERROR :
XSTRNCPY(str, "record layer version error", max); return "record layer version error";
break;
case WANT_WRITE : case WANT_WRITE :
case SSL_ERROR_WANT_WRITE : case SSL_ERROR_WANT_WRITE :
XSTRNCPY(str, "non-blocking socket write buffer full", max); return "non-blocking socket write buffer full";
break;
case BUFFER_ERROR : case BUFFER_ERROR :
XSTRNCPY(str, "malformed buffer input error", max); return "malformed buffer input error";
break;
case VERIFY_CERT_ERROR : case VERIFY_CERT_ERROR :
XSTRNCPY(str, "verify problem on certificate", max); return "verify problem on certificate";
break;
case VERIFY_SIGN_ERROR : case VERIFY_SIGN_ERROR :
XSTRNCPY(str, "verify problem based on signature", max); return "verify problem based on signature";
break;
case CLIENT_ID_ERROR : case CLIENT_ID_ERROR :
XSTRNCPY(str, "psk client identity error", max); return "psk client identity error";
break;
case SERVER_HINT_ERROR: case SERVER_HINT_ERROR:
XSTRNCPY(str, "psk server hint error", max); return "psk server hint error";
break;
case PSK_KEY_ERROR: case PSK_KEY_ERROR:
XSTRNCPY(str, "psk key callback error", max); return "psk key callback error";
break;
case NTRU_KEY_ERROR: case NTRU_KEY_ERROR:
XSTRNCPY(str, "NTRU key error", max); return "NTRU key error";
break;
case NTRU_DRBG_ERROR: case NTRU_DRBG_ERROR:
XSTRNCPY(str, "NTRU drbg error", max); return "NTRU drbg error";
break;
case NTRU_ENCRYPT_ERROR: case NTRU_ENCRYPT_ERROR:
XSTRNCPY(str, "NTRU encrypt error", max); return "NTRU encrypt error";
break;
case NTRU_DECRYPT_ERROR: case NTRU_DECRYPT_ERROR:
XSTRNCPY(str, "NTRU decrypt error", max); return "NTRU decrypt error";
break;
case ZLIB_INIT_ERROR: case ZLIB_INIT_ERROR:
XSTRNCPY(str, "zlib init error", max); return "zlib init error";
break;
case ZLIB_COMPRESS_ERROR: case ZLIB_COMPRESS_ERROR:
XSTRNCPY(str, "zlib compress error", max); return "zlib compress error";
break;
case ZLIB_DECOMPRESS_ERROR: case ZLIB_DECOMPRESS_ERROR:
XSTRNCPY(str, "zlib decompress error", max); return "zlib decompress error";
break;
case GETTIME_ERROR: case GETTIME_ERROR:
XSTRNCPY(str, "gettimeofday() error", max); return "gettimeofday() error";
break;
case GETITIMER_ERROR: case GETITIMER_ERROR:
XSTRNCPY(str, "getitimer() error", max); return "getitimer() error";
break;
case SIGACT_ERROR: case SIGACT_ERROR:
XSTRNCPY(str, "sigaction() error", max); return "sigaction() error";
break;
case SETITIMER_ERROR: case SETITIMER_ERROR:
XSTRNCPY(str, "setitimer() error", max); return "setitimer() error";
break;
case LENGTH_ERROR: case LENGTH_ERROR:
XSTRNCPY(str, "record layer length error", max); return "record layer length error";
break;
case PEER_KEY_ERROR: case PEER_KEY_ERROR:
XSTRNCPY(str, "cant decode peer key", max); return "cant decode peer key";
break;
case ZERO_RETURN: case ZERO_RETURN:
case SSL_ERROR_ZERO_RETURN: case SSL_ERROR_ZERO_RETURN:
XSTRNCPY(str, "peer sent close notify alert", max); return "peer sent close notify alert";
break;
case ECC_CURVETYPE_ERROR: case ECC_CURVETYPE_ERROR:
XSTRNCPY(str, "Bad ECC Curve Type or unsupported", max); return "Bad ECC Curve Type or unsupported";
break;
case ECC_CURVE_ERROR: case ECC_CURVE_ERROR:
XSTRNCPY(str, "Bad ECC Curve or unsupported", max); return "Bad ECC Curve or unsupported";
break;
case ECC_PEERKEY_ERROR: case ECC_PEERKEY_ERROR:
XSTRNCPY(str, "Bad ECC Peer Key", max); return "Bad ECC Peer Key";
break;
case ECC_MAKEKEY_ERROR: case ECC_MAKEKEY_ERROR:
XSTRNCPY(str, "ECC Make Key failure", max); return "ECC Make Key failure";
break;
case ECC_EXPORT_ERROR: case ECC_EXPORT_ERROR:
XSTRNCPY(str, "ECC Export Key failure", max); return "ECC Export Key failure";
break;
case ECC_SHARED_ERROR: case ECC_SHARED_ERROR:
XSTRNCPY(str, "ECC DHE shared failure", max); return "ECC DHE shared failure";
break;
case NOT_CA_ERROR: case NOT_CA_ERROR:
XSTRNCPY(str, "Not a CA by basic constraint error", max); return "Not a CA by basic constraint error";
break;
case BAD_PATH_ERROR: case BAD_PATH_ERROR:
XSTRNCPY(str, "Bad path for opendir error", max); return "Bad path for opendir error";
break;
case BAD_CERT_MANAGER_ERROR: case BAD_CERT_MANAGER_ERROR:
XSTRNCPY(str, "Bad Cert Manager error", max); return "Bad Cert Manager error";
break;
case OCSP_CERT_REVOKED: case OCSP_CERT_REVOKED:
XSTRNCPY(str, "OCSP Cert revoked", max); return "OCSP Cert revoked";
break;
case CRL_CERT_REVOKED: case CRL_CERT_REVOKED:
XSTRNCPY(str, "CRL Cert revoked", max); return "CRL Cert revoked";
break;
case CRL_MISSING: case CRL_MISSING:
XSTRNCPY(str, "CRL missing, not loaded", max); return "CRL missing, not loaded";
break;
case MONITOR_RUNNING_E: case MONITOR_RUNNING_E:
XSTRNCPY(str, "CRL monitor already running", max); return "CRL monitor already running";
break;
case THREAD_CREATE_E: case THREAD_CREATE_E:
XSTRNCPY(str, "Thread creation problem", max); return "Thread creation problem";
break;
case OCSP_NEED_URL: case OCSP_NEED_URL:
XSTRNCPY(str, "OCSP need URL", max); return "OCSP need URL";
break;
case OCSP_CERT_UNKNOWN: case OCSP_CERT_UNKNOWN:
XSTRNCPY(str, "OCSP Cert unknown", max); return "OCSP Cert unknown";
break;
case OCSP_LOOKUP_FAIL: case OCSP_LOOKUP_FAIL:
XSTRNCPY(str, "OCSP Responder lookup fail", max); return "OCSP Responder lookup fail";
break;
case MAX_CHAIN_ERROR: case MAX_CHAIN_ERROR:
XSTRNCPY(str, "Maximum Chain Depth Exceeded", max); return "Maximum Chain Depth Exceeded";
break;
case COOKIE_ERROR: case COOKIE_ERROR:
XSTRNCPY(str, "DTLS Cookie Error", max); return "DTLS Cookie Error";
break;
case SEQUENCE_ERROR: case SEQUENCE_ERROR:
XSTRNCPY(str, "DTLS Sequence Error", max); return "DTLS Sequence Error";
break;
case SUITES_ERROR: case SUITES_ERROR:
XSTRNCPY(str, "Suites Pointer Error", max); return "Suites Pointer Error";
break;
case SSL_NO_PEM_HEADER: case SSL_NO_PEM_HEADER:
XSTRNCPY(str, "No PEM Header Error", max); return "No PEM Header Error";
break;
case OUT_OF_ORDER_E: case OUT_OF_ORDER_E:
XSTRNCPY(str, "Out of order message, fatal", max); return "Out of order message, fatal";
break;
case BAD_KEA_TYPE_E: case BAD_KEA_TYPE_E:
XSTRNCPY(str, "Bad KEA type found", max); return "Bad KEA type found";
break;
case SANITY_CIPHER_E: case SANITY_CIPHER_E:
XSTRNCPY(str, "Sanity check on ciphertext failed", max); return "Sanity check on ciphertext failed";
break;
case RECV_OVERFLOW_E: case RECV_OVERFLOW_E:
XSTRNCPY(str, "Receive callback returned more than requested", max); return "Receive callback returned more than requested";
break;
case GEN_COOKIE_E: case GEN_COOKIE_E:
XSTRNCPY(str, "Generate Cookie Error", max); return "Generate Cookie Error";
break;
case NO_PEER_VERIFY: case NO_PEER_VERIFY:
XSTRNCPY(str, "Need peer certificate verify Error", max); return "Need peer certificate verify Error";
break;
case FWRITE_ERROR: case FWRITE_ERROR:
XSTRNCPY(str, "fwrite Error", max); return "fwrite Error";
break;
case CACHE_MATCH_ERROR: case CACHE_MATCH_ERROR:
XSTRNCPY(str, "Cache restore header match Error", max); return "Cache restore header match Error";
break;
case UNKNOWN_SNI_HOST_NAME_E: case UNKNOWN_SNI_HOST_NAME_E:
XSTRNCPY(str, "Unrecognized host name Error", max); return "Unrecognized host name Error";
break;
case KEYUSE_SIGNATURE_E: case KEYUSE_SIGNATURE_E:
XSTRNCPY(str, "Key Use digitalSignature not set Error", max); return "Key Use digitalSignature not set Error";
break;
case KEYUSE_ENCIPHER_E: case KEYUSE_ENCIPHER_E:
XSTRNCPY(str, "Key Use keyEncipherment not set Error", max); return "Key Use keyEncipherment not set Error";
break;
case EXTKEYUSE_AUTH_E: case EXTKEYUSE_AUTH_E:
XSTRNCPY(str, "Ext Key Use server/client auth not set Error", max); return "Ext Key Use server/client auth not set Error";
break;
default : default :
XSTRNCPY(str, "unknown error number", max); return "unknown error number";
} }
#endif /* NO_ERROR_STRINGS */ #endif /* NO_ERROR_STRINGS */
} }
void SetErrorString(int error, char* str)
{
XSTRNCPY(str, CyaSSL_ERR_reason_error_string(error), CYASSL_MAX_ERROR_SZ);
}
/* be sure to add to cipher_name_idx too !!!! */ /* be sure to add to cipher_name_idx too !!!! */