diff options
author | Anas Nashif <anas.nashif@intel.com> | 2012-11-13 12:30:55 -0800 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2012-11-13 12:30:55 -0800 |
commit | f251dedaa31b48f7c05a4b53c112b40ebca890ef (patch) | |
tree | d6c78a1b273417506edb030c96772c8459f5831e /include/xmlsec/errors.h | |
download | xmlsec1-f251dedaa31b48f7c05a4b53c112b40ebca890ef.tar.gz xmlsec1-f251dedaa31b48f7c05a4b53c112b40ebca890ef.tar.bz2 xmlsec1-f251dedaa31b48f7c05a4b53c112b40ebca890ef.zip |
Imported Upstream version 1.2.18upstream/1.2.18
Diffstat (limited to 'include/xmlsec/errors.h')
-rw-r--r-- | include/xmlsec/errors.h | 504 |
1 files changed, 504 insertions, 0 deletions
diff --git a/include/xmlsec/errors.h b/include/xmlsec/errors.h new file mode 100644 index 00000000..6e23620c --- /dev/null +++ b/include/xmlsec/errors.h @@ -0,0 +1,504 @@ +/** + * XML Security Library (http://www.aleksey.com/xmlsec). + * + * Error codes and error reporting functions. + * + * This is free software; see Copyright file in the source + * distribution for preciese wording. + * + * Copyright (C) 2002-2003 Aleksey Sanin <aleksey@aleksey.com> + */ +#ifndef __XMLSEC_ERRORS_H__ +#define __XMLSEC_ERRORS_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/*************************************************************** + * + * Error codes + * + **************************************************************/ +/** + * XMLSEC_ERRORS_R_XMLSEC_FAILED: + * + * An XMLSec function failed (error subject is the failed function). + */ +#define XMLSEC_ERRORS_R_XMLSEC_FAILED 1 + +/** + * XMLSEC_ERRORS_R_MALLOC_FAILED: + * + * Failed to allocate memory error. + */ +#define XMLSEC_ERRORS_R_MALLOC_FAILED 2 + +/** + * XMLSEC_ERRORS_R_STRDUP_FAILED: + * + * Failed to duplicate string error. + */ +#define XMLSEC_ERRORS_R_STRDUP_FAILED 3 + +/** + * XMLSEC_ERRORS_R_CRYPTO_FAILED: + * + * Crypto (OpenSSL) function failed (error subject is the failed function). + */ +#define XMLSEC_ERRORS_R_CRYPTO_FAILED 4 + +/** + * XMLSEC_ERRORS_R_XML_FAILED: + * + * LibXML function failed (error subject is the failed function). + */ +#define XMLSEC_ERRORS_R_XML_FAILED 5 + +/** + * XMLSEC_ERRORS_R_XSLT_FAILED: + * + * LibXSLT function failed (error subject is the failed function). + */ +#define XMLSEC_ERRORS_R_XSLT_FAILED 6 + +/** + * XMLSEC_ERRORS_R_IO_FAILED: + * + * IO operation failed. + */ +#define XMLSEC_ERRORS_R_IO_FAILED 7 + +/** + * XMLSEC_ERRORS_R_DISABLED: + * + * The feature is disabled during compilation. + * Check './configure --help' for details on how to + * enable it. + */ +#define XMLSEC_ERRORS_R_DISABLED 8 + +/** + * XMLSEC_ERRORS_R_NOT_IMPLEMENTED: + * + * Feature is not implemented. + */ +#define XMLSEC_ERRORS_R_NOT_IMPLEMENTED 9 + +/** + * XMLSEC_ERRORS_R_INVALID_SIZE: + * + * Invalid size. + */ +#define XMLSEC_ERRORS_R_INVALID_SIZE 11 + +/** + * XMLSEC_ERRORS_R_INVALID_DATA: + * + * Invalid data. + */ +#define XMLSEC_ERRORS_R_INVALID_DATA 12 + +/** + * XMLSEC_ERRORS_R_INVALID_RESULT: + * + * Invalid result. + */ +#define XMLSEC_ERRORS_R_INVALID_RESULT 13 + +/** + * XMLSEC_ERRORS_R_INVALID_TYPE: + * + * Invalid type. + */ +#define XMLSEC_ERRORS_R_INVALID_TYPE 14 + +/** + * XMLSEC_ERRORS_R_INVALID_OPERATION: + * + * Invalid operation. + */ +#define XMLSEC_ERRORS_R_INVALID_OPERATION 15 + +/** + * XMLSEC_ERRORS_R_INVALID_STATUS: + * + * Invalid status. + */ +#define XMLSEC_ERRORS_R_INVALID_STATUS 16 + +/** + * XMLSEC_ERRORS_R_INVALID_FORMAT: + * + * Invalid format. + */ +#define XMLSEC_ERRORS_R_INVALID_FORMAT 17 + +/** + * XMLSEC_ERRORS_R_DATA_NOT_MATCH: + * + * The data do not match our expectation. + */ +#define XMLSEC_ERRORS_R_DATA_NOT_MATCH 18 + +/** + * XMLSEC_ERRORS_R_INVALID_NODE: + * + * Invalid node (error subject is the node name). + */ +#define XMLSEC_ERRORS_R_INVALID_NODE 21 + +/** + * XMLSEC_ERRORS_R_INVALID_NODE_CONTENT: + * + * Invalid node content (error subject is the node name). + */ +#define XMLSEC_ERRORS_R_INVALID_NODE_CONTENT 22 + +/** + * XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE: + * + * Invalid node attribute (error subject is the node name). + */ +#define XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE 23 + +/** + * XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE: + * + * Missing node attribute (error subject is the node name). + */ +#define XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE 25 + +/** + * XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT: + * + * Node already present, + */ +#define XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT 26 + +/** + * XMLSEC_ERRORS_R_UNEXPECTED_NODE: + * + * Unexpected node (error subject is the node name). + */ +#define XMLSEC_ERRORS_R_UNEXPECTED_NODE 27 + +/** + * XMLSEC_ERRORS_R_NODE_NOT_FOUND: + * + * Node not found (error subject is the required node name). + */ +#define XMLSEC_ERRORS_R_NODE_NOT_FOUND 28 + +/** + * XMLSEC_ERRORS_R_INVALID_TRANSFORM: + * + * This transform is invlaid here. + */ +#define XMLSEC_ERRORS_R_INVALID_TRANSFORM 31 + +/** + * XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY: + * + * Key is invalid for this transform. + */ +#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY 32 + +/** + * XMLSEC_ERRORS_R_INVALID_URI_TYPE: + * + * Invalid URI type. + */ +#define XMLSEC_ERRORS_R_INVALID_URI_TYPE 33 + +/** + * XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED: + * + * The transform requires the input document to be the same as context. + */ +#define XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED 34 + +/** + * XMLSEC_ERRORS_R_TRANSFORM_DISABLED: + * + * The transform is disabled. + */ +#define XMLSEC_ERRORS_R_TRANSFORM_DISABLED 35 + +/** + * XMLSEC_ERRORS_R_INVALID_KEY_DATA: + * + * Key data is invalid. + */ +#define XMLSEC_ERRORS_R_INVALID_KEY_DATA 41 + +/** + * XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND: + * + * Data is not found (error subject is the data name). + */ +#define XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND 42 + +/** + * XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST: + * + * The key data is already exist. + */ +#define XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST 43 + +/** + * XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE: + * + * Invalid key size. + */ +#define XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE 44 + +/** + * XMLSEC_ERRORS_R_KEY_NOT_FOUND: + * + * Key not found. + */ +#define XMLSEC_ERRORS_R_KEY_NOT_FOUND 45 + +/** + * XMLSEC_ERRORS_R_KEYDATA_DISABLED: + * + * The key data type disabled. + */ +#define XMLSEC_ERRORS_R_KEYDATA_DISABLED 46 + +/** + * XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL: + * + * Max allowed retrievals level reached. + */ +#define XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL 51 + +/** + * XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH: + * + * The retrieved key data type does not match the one specified + * in the <dsig:RetrievalMethod/> node. + */ +#define XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH 52 + +/** + * XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL: + * + * Max EncryptedKey level reached. + */ +#define XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL 61 + +/** + * XMLSEC_ERRORS_R_CERT_VERIFY_FAILED: + * + * Certificate verification failed. + */ +#define XMLSEC_ERRORS_R_CERT_VERIFY_FAILED 71 + +/** + * XMLSEC_ERRORS_R_CERT_NOT_FOUND: + * + * Requested certificate is not found. + */ +#define XMLSEC_ERRORS_R_CERT_NOT_FOUND 72 + +/** + * XMLSEC_ERRORS_R_CERT_REVOKED: + * + * The certificate is revoked. + */ +#define XMLSEC_ERRORS_R_CERT_REVOKED 73 + +/** + * XMLSEC_ERRORS_R_CERT_ISSUER_FAILED: + * + * Failed to get certificate issuer. + */ +#define XMLSEC_ERRORS_R_CERT_ISSUER_FAILED 74 + +/** + * XMLSEC_ERRORS_R_CERT_NOT_YET_VALID: + * + * "Not valid before" verification failed. + */ +#define XMLSEC_ERRORS_R_CERT_NOT_YET_VALID 75 + +/** + * XMLSEC_ERRORS_R_CERT_HAS_EXPIRED: + * + * "Not valid after" verification failed. + */ +#define XMLSEC_ERRORS_R_CERT_HAS_EXPIRED 76 + +/** + * XMLSEC_ERRORS_R_DSIG_NO_REFERENCES: + * + * The <dsig:Reference> nodes not found. + */ +#define XMLSEC_ERRORS_R_DSIG_NO_REFERENCES 81 + +/** + * XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE: + * + * The <dsig:Reference> validation failed. + */ +#define XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE 82 + +/** + * XMLSEC_ERRORS_R_ASSERTION: + * + * Invalid assertion. + */ +#define XMLSEC_ERRORS_R_ASSERTION 100 + +/** + * XMLSEC_ERRORS_MAX_NUMBER: + * + * The maximum xmlsec errors number. + */ +#define XMLSEC_ERRORS_MAX_NUMBER 256 + + + +/******************************************************************* + * + * Error functions + * + *******************************************************************/ +/** + * xmlSecErrorsCallback: + * @file: the error location file name (__FILE__ macro). + * @line: the error location line number (__LINE__ macro). + * @func: the error location function name (__FUNCTION__ macro). + * @errorObject: the error specific error object + * @errorSubject: the error specific error subject. + * @reason: the error code. + * @msg: the additional error message. + * + * The errors reporting callback function. + */ +typedef void (*xmlSecErrorsCallback) (const char* file, + int line, + const char* func, + const char* errorObject, + const char* errorSubject, + int reason, + const char* msg); + + +XMLSEC_EXPORT void xmlSecErrorsInit (void); +XMLSEC_EXPORT void xmlSecErrorsShutdown (void); +XMLSEC_EXPORT void xmlSecErrorsSetCallback (xmlSecErrorsCallback callback); +XMLSEC_EXPORT void xmlSecErrorsDefaultCallback (const char* file, + int line, + const char* func, + const char* errorObject, + const char* errorSubject, + int reason, + const char* msg); +XMLSEC_EXPORT void xmlSecErrorsDefaultCallbackEnableOutput + (int enabled); + +XMLSEC_EXPORT int xmlSecErrorsGetCode (xmlSecSize pos); +XMLSEC_EXPORT const char* xmlSecErrorsGetMsg (xmlSecSize pos); + + + +/* __FUNCTION__ is defined for MSC compiler < MS VS .NET 2003 */ +#if defined(_MSC_VER) && (_MSC_VER >= 1300) +#define __XMLSEC_FUNCTION__ __FUNCTION__ +#endif /* _MSC_VER */ + +/* fallback for __FUNCTION__ */ +#if !defined(__XMLSEC_FUNCTION__) +#define __XMLSEC_FUNCTION__ "" +#endif /*!defined(__XMLSEC_FUNCTION__) */ + +/** + * XMLSEC_ERRORS_HERE: + * + * The macro that specifies the location (file, line and function) + * for the xmlSecError() function. + */ +#define XMLSEC_ERRORS_HERE __FILE__,__LINE__,__XMLSEC_FUNCTION__ +#ifdef __GNUC__ +#define XMLSEC_ERRORS_PRINTF_ATTRIBUTE __attribute__ ((format (printf, 7, 8))) +#else /* __GNUC__ */ +#define XMLSEC_ERRORS_PRINTF_ATTRIBUTE +#endif /* __GNUC__ */ + +/** + * xmlSecErrorsSafeString: + * @str: the string. + * + * Macro. Returns @str if it is not NULL or pointer to "NULL" otherwise. + */ +#define xmlSecErrorsSafeString(str) \ + (((str) != NULL) ? ((char*)(str)) : (char*)"NULL") + +/** + * XMLSEC_ERRORS_NO_MESSAGE: + * + * Empty error message " ". + */ +#define XMLSEC_ERRORS_NO_MESSAGE " " + + +XMLSEC_EXPORT void xmlSecError (const char* file, + int line, + const char* func, + const char* errorObject, + const char* errorSubject, + int reason, + const char* msg, ...) XMLSEC_ERRORS_PRINTF_ATTRIBUTE; + + + +/********************************************************************** + * + * Assertions + * + **********************************************************************/ +/** + * xmlSecAssert: + * @p: the expression. + * + * Macro. Verifies that @p is true and calls return() otherwise. + */ +#define xmlSecAssert( p ) \ + if(!( p ) ) { \ + xmlSecError(XMLSEC_ERRORS_HERE, \ + NULL, \ + #p, \ + XMLSEC_ERRORS_R_ASSERTION, \ + XMLSEC_ERRORS_NO_MESSAGE); \ + return; \ + } + +/** + * xmlSecAssert2: + * @p: the expression. + * @ret: the return value. + * + * Macro. Verifies that @p is true and calls return(@ret) otherwise. + */ +#define xmlSecAssert2( p, ret ) \ + if(!( p ) ) { \ + xmlSecError(XMLSEC_ERRORS_HERE, \ + NULL, \ + #p, \ + XMLSEC_ERRORS_R_ASSERTION, \ + XMLSEC_ERRORS_NO_MESSAGE); \ + return(ret); \ + } + + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __XMLSEC_ERRORS_H__ */ + + |