facho-signer: se usa autoconf
FossilOrigin-Name: 5a7e25376d54d22f8d955c9b6827785d2efd673fee9813b27f4ce39d4a3e8f7e
This commit is contained in:
		
							
								
								
									
										259
									
								
								experimental/facho-signer/src/xmlsec1/errors.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								experimental/facho-signer/src/xmlsec1/errors.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,259 @@ | ||||
| /* | ||||
|  * XML Security Library (http://www.aleksey.com/xmlsec). | ||||
|  * | ||||
|  * | ||||
|  * This is free software; see Copyright file in the source | ||||
|  * distribution for preciese wording. | ||||
|  * | ||||
|  * Copyright (C) 2002-2016 Aleksey Sanin <aleksey@aleksey.com>. All Rights Reserved. | ||||
|  */ | ||||
| /** | ||||
|  * SECTION:errors | ||||
|  * @Short_description: Error reporting and logging functions. | ||||
|  * @Stability: Stable | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #define XMLSEC_PRIVATE 1 | ||||
|  | ||||
| #include <stdlib.h> | ||||
| #include <stdio.h> | ||||
| #include <stdarg.h> | ||||
| #include <time.h> | ||||
| #include <string.h> | ||||
|  | ||||
| #include <libxml/tree.h> | ||||
|  | ||||
| #include <xmlsec/xmlsec.h> | ||||
| #include <xmlsec/xmltree.h> | ||||
| #include <xmlsec/private.h> | ||||
| #include <xmlsec/errors.h> | ||||
|  | ||||
| /* Must be bigger than fatal_error */ | ||||
| #define XMLSEC_ERRORS_BUFFER_SIZE       1024 | ||||
|  | ||||
| /* Must fit into xmlChar[XMLSEC_ERRORS_BUFFER_SIZE] */ | ||||
| static const xmlChar fatal_error[] = "Can not format error message"; | ||||
|  | ||||
| typedef struct _xmlSecErrorDescription                  xmlSecErrorDescription, *xmlSecErrorDescriptionPtr; | ||||
| struct _xmlSecErrorDescription { | ||||
|     int                 errorCode; | ||||
|     const char*         errorMsg; | ||||
| }; | ||||
|  | ||||
| static xmlSecErrorDescription xmlSecErrorsTable[XMLSEC_ERRORS_MAX_NUMBER + 1] = { | ||||
|   { XMLSEC_ERRORS_R_XMLSEC_FAILED,              "xmlsec library function failed" }, | ||||
|   { XMLSEC_ERRORS_R_MALLOC_FAILED,              "malloc function failed" }, | ||||
|   { XMLSEC_ERRORS_R_STRDUP_FAILED,              "strdup function failed" }, | ||||
|   { XMLSEC_ERRORS_R_CRYPTO_FAILED,              "crypto library function failed" }, | ||||
|   { XMLSEC_ERRORS_R_XML_FAILED,                 "libxml2 library function failed" }, | ||||
|   { XMLSEC_ERRORS_R_XSLT_FAILED,                "libxslt library function failed" }, | ||||
|   { XMLSEC_ERRORS_R_IO_FAILED,                  "io function failed" }, | ||||
|   { XMLSEC_ERRORS_R_DISABLED,                   "feature is disabled" }, | ||||
|   { XMLSEC_ERRORS_R_NOT_IMPLEMENTED,            "feature is not implemented" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_CONFIG,             "invalid configuration" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_SIZE,               "invalid size" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_DATA,               "invalid data" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_RESULT,             "invalid result" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_TYPE,               "invalid type" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_OPERATION,          "invalid operation" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_STATUS,             "invalid status" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_FORMAT,             "invalid format" }, | ||||
|   { XMLSEC_ERRORS_R_DATA_NOT_MATCH,             "data do not match" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_VERSION,            "invalid version" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_NODE,               "invalid node" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_NODE_CONTENT,       "invalid node content" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE,     "invalid node attribute" }, | ||||
|   { XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE,     "missing node attribute" }, | ||||
|   { XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT,       "node already present" }, | ||||
|   { XMLSEC_ERRORS_R_UNEXPECTED_NODE,            "unexpected node" }, | ||||
|   { XMLSEC_ERRORS_R_NODE_NOT_FOUND,             "node node found" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_TRANSFORM,          "invalid transform" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY,      "invalid transform key" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_URI_TYPE,           "invalid URI type" }, | ||||
|   { XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED,   "same document is required for transform" }, | ||||
|   { XMLSEC_ERRORS_R_TRANSFORM_DISABLED,         "transform is disabled" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_KEY_DATA,           "invalid key data" }, | ||||
|   { XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND,         "key data is not found" }, | ||||
|   { XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST,     "key data already exist" }, | ||||
|   { XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE,      "invalid key data size" }, | ||||
|   { XMLSEC_ERRORS_R_KEY_NOT_FOUND,              "key is not found" }, | ||||
|   { XMLSEC_ERRORS_R_KEYDATA_DISABLED,           "key data is disabled" }, | ||||
|   { XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL,       "maximum key retrieval level" }, | ||||
|   { XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH,"key retrieval type mismatch" }, | ||||
|   { XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL,           "maximum encrypted key level" }, | ||||
|   { XMLSEC_ERRORS_R_CERT_VERIFY_FAILED,         "certificate verification failed" }, | ||||
|   { XMLSEC_ERRORS_R_CERT_NOT_FOUND,             "certificate is not found" }, | ||||
|   { XMLSEC_ERRORS_R_CERT_REVOKED,               "certificate is revoked" }, | ||||
|   { XMLSEC_ERRORS_R_CERT_ISSUER_FAILED,         "certificate issuer check failed" }, | ||||
|   { XMLSEC_ERRORS_R_CERT_NOT_YET_VALID,         "certificate is not yet valid" }, | ||||
|   { XMLSEC_ERRORS_R_CERT_HAS_EXPIRED,           "certificate has expired" }, | ||||
|   { XMLSEC_ERRORS_R_DSIG_NO_REFERENCES,         "Reference nodes are not found" }, | ||||
|   { XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE,     "Reference verification failed" }, | ||||
|   { XMLSEC_ERRORS_R_ASSERTION,                  "assertion" }, | ||||
|   { 0,                                          NULL} | ||||
| }; | ||||
|  | ||||
| static xmlSecErrorsCallback xmlSecErrorsClbk = xmlSecErrorsDefaultCallback; | ||||
| static int  xmlSecPrintErrorMessages = 1;       /* whether the error messages will be printed immediately */ | ||||
|  | ||||
| /** | ||||
|  * xmlSecErrorsInit: | ||||
|  * | ||||
|  * Initializes the errors reporting. It is called from #xmlSecInit function. | ||||
|  * and applications must not call this function directly. | ||||
|  */ | ||||
| void | ||||
| xmlSecErrorsInit(void) { | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * xmlSecErrorsShutdown: | ||||
|  * | ||||
|  * Cleanups the errors reporting. It is called from #xmlSecShutdown function. | ||||
|  * and applications must not call this function directly. | ||||
|  */ | ||||
| void | ||||
| xmlSecErrorsShutdown(void) { | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * xmlSecErrorsSetCallback: | ||||
|  * @callback:           the new errors callback function. | ||||
|  * | ||||
|  * Sets the errors callback function to @callback that will be called | ||||
|  * every time an error occurs. | ||||
|  */ | ||||
| void | ||||
| xmlSecErrorsSetCallback(xmlSecErrorsCallback callback) { | ||||
|     xmlSecErrorsClbk = callback; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * xmlSecErrorsDefaultCallback: | ||||
|  * @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 default error reporting callback that utilizes LibXML | ||||
|  * error reporting #xmlGenericError function. | ||||
|  */ | ||||
| void | ||||
| xmlSecErrorsDefaultCallback(const char* file, int line, const char* func, | ||||
|                             const char* errorObject, const char* errorSubject, | ||||
|                             int reason, const char* msg) { | ||||
|     if(xmlSecPrintErrorMessages) { | ||||
|         const char* error_msg = NULL; | ||||
|         xmlSecSize i; | ||||
|  | ||||
|         for(i = 0; (i < XMLSEC_ERRORS_MAX_NUMBER) && (xmlSecErrorsGetMsg(i) != NULL); ++i) { | ||||
|             if(xmlSecErrorsGetCode(i) == reason) { | ||||
|                 error_msg = xmlSecErrorsGetMsg(i); | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         xmlGenericError(xmlGenericErrorContext, | ||||
|             "func=%s:file=%s:line=%d:obj=%s:subj=%s:error=%d:%s:%s\n", | ||||
|             (func != NULL) ? func : "unknown", | ||||
|             (file != NULL) ? file : "unknown", | ||||
|             line, | ||||
|             (errorObject != NULL) ? errorObject : "unknown", | ||||
|             (errorSubject != NULL) ? errorSubject : "unknown", | ||||
|             reason, | ||||
|             (error_msg != NULL) ? error_msg : "", | ||||
|             (msg != NULL) ? msg : ""); | ||||
|     } | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * xmlSecErrorsDefaultCallbackEnableOutput: | ||||
|  * @enabled:            the flag. | ||||
|  * | ||||
|  * Enables or disables calling LibXML2 callback from the default | ||||
|  * errors callback. | ||||
|  */ | ||||
| void | ||||
| xmlSecErrorsDefaultCallbackEnableOutput(int enabled) { | ||||
|     xmlSecPrintErrorMessages = enabled; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * xmlSecErrorsGetCode: | ||||
|  * @pos:                the error position. | ||||
|  * | ||||
|  * Gets the known error code at position @pos. | ||||
|  * | ||||
|  * Returns: the known error code or 0 if @pos is greater than | ||||
|  * total number of known error codes. | ||||
|  */ | ||||
| int | ||||
| xmlSecErrorsGetCode(xmlSecSize pos) { | ||||
|     /* could not use asserts here! */ | ||||
|     if(pos < sizeof(xmlSecErrorsTable) / sizeof(xmlSecErrorsTable[0])) { | ||||
|         return(xmlSecErrorsTable[pos].errorCode); | ||||
|     } | ||||
|     return(0); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * xmlSecErrorsGetMsg: | ||||
|  * @pos:                the error position. | ||||
|  * | ||||
|  * Gets the known error message at position @pos. | ||||
|  * | ||||
|  * Returns: the known error message or NULL if @pos is greater than | ||||
|  * total number of known error codes. | ||||
|  */ | ||||
| const char* | ||||
| xmlSecErrorsGetMsg(xmlSecSize pos) { | ||||
|     /* could not use asserts here! */ | ||||
|     if(pos < sizeof(xmlSecErrorsTable) / sizeof(xmlSecErrorsTable[0])) { | ||||
|         return(xmlSecErrorsTable[pos].errorMsg); | ||||
|     } | ||||
|     return(NULL); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * xmlSecError: | ||||
|  * @file:               the error location filename (__FILE__). | ||||
|  * @line:               the error location line number (__LINE__). | ||||
|  * @func:               the error location function (__FUNCTION__). | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @errorSubject:       the error specific error subject (e.g. failed function name). | ||||
|  * @reason:             the error code. | ||||
|  * @msg:                the error message in printf format. | ||||
|  * @...:                the parameters for the @msg. | ||||
|  * | ||||
|  * Reports an error to the default (#xmlSecErrorsDefaultCallback) or | ||||
|  * application specific callback installed using #xmlSecErrorsSetCallback | ||||
|  * function. | ||||
|  */ | ||||
| void | ||||
| xmlSecError(const char* file, int line, const char* func, | ||||
|             const char* errorObject, const char* errorSubject, | ||||
|             int reason, const char* msg, ...) { | ||||
|     if(xmlSecErrorsClbk != NULL) { | ||||
|         xmlChar error_msg[XMLSEC_ERRORS_BUFFER_SIZE]; | ||||
|         int ret; | ||||
|  | ||||
|         if(msg != NULL) { | ||||
|             va_list va; | ||||
|  | ||||
|             va_start(va, msg); | ||||
|             ret = xmlStrVPrintf(error_msg, sizeof(error_msg), msg, va); | ||||
|             if(ret < 0) { | ||||
|                 /* Can't really report an error from an error callback */ | ||||
|                 memcpy(error_msg, fatal_error, sizeof(fatal_error)); | ||||
|             } | ||||
|             error_msg[sizeof(error_msg) - 1] = '\0'; /* just in case */ | ||||
|             va_end(va); | ||||
|         } else { | ||||
|             error_msg[0] = '\0'; | ||||
|         } | ||||
|         xmlSecErrorsClbk(file, line, func, errorObject, errorSubject, reason, (char*)error_msg); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										869
									
								
								experimental/facho-signer/src/xmlsec1/errors_helpers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										869
									
								
								experimental/facho-signer/src/xmlsec1/errors_helpers.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,869 @@ | ||||
| /* | ||||
|  * XML Security Library (http://www.aleksey.com/xmlsec). | ||||
|  * | ||||
|  * Internal header only used during the compilation, | ||||
|  * | ||||
|  * This is free software; see Copyright file in the source | ||||
|  * distribution for preciese wording. | ||||
|  * | ||||
|  * Copyright (C) 2002-2016 Aleksey Sanin <aleksey@aleksey.com>. All Rights Reserved. | ||||
|  */ | ||||
|  | ||||
| #ifndef __XMLSEC_ERROR_HELPERS_H__ | ||||
| #define __XMLSEC_ERROR_HELPERS_H__ | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <xmlsec/errors.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif /* __cplusplus */ | ||||
|  | ||||
| /********************************************************************** | ||||
|  * | ||||
|  * Error handling macros. | ||||
|  * | ||||
|  **********************************************************************/ | ||||
|  | ||||
| /** | ||||
|  * xmlSecInternalError: | ||||
|  * @errorFunction:      the failed function name. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting internal XMLSec errors. | ||||
|  */ | ||||
| #define xmlSecInternalError(errorFunction, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     (errorFunction),                        \ | ||||
|                     XMLSEC_ERRORS_R_XMLSEC_FAILED,          \ | ||||
|                     XMLSEC_ERRORS_NO_MESSAGE                \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInternalError2: | ||||
|  * @errorFunction:      the failed function name. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @msg:                the extra message. | ||||
|  * @param:              the extra message param. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting internal XMLSec errors. | ||||
|  */ | ||||
| #define xmlSecInternalError2(errorFunction, errorObject, msg, param) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     (errorFunction),                        \ | ||||
|                     XMLSEC_ERRORS_R_XMLSEC_FAILED,          \ | ||||
|                     (msg), (param)                          \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInternalError3: | ||||
|  * @errorFunction:      the failed function name. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @msg:                the extra message. | ||||
|  * @param1:             the extra message param1. | ||||
|  * @param2:             the extra message param2. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting internal XMLSec errors. | ||||
|  */ | ||||
| #define xmlSecInternalError3(errorFunction, errorObject, msg, param1, param2) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     (errorFunction),                        \ | ||||
|                     XMLSEC_ERRORS_R_XMLSEC_FAILED,          \ | ||||
|                     (msg), (param1), (param2)               \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInternalError4: | ||||
|  * @errorFunction:      the failed function name. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @msg:                the extra message. | ||||
|  * @param1:             the extra message param1. | ||||
|  * @param2:             the extra message param2. | ||||
|  * @param3:             the extra message param3. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting internal XMLSec errors. | ||||
|  */ | ||||
| #define xmlSecInternalError4(errorFunction, errorObject, msg, param1, param2, param3) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     (errorFunction),                        \ | ||||
|                     XMLSEC_ERRORS_R_XMLSEC_FAILED,          \ | ||||
|                     (msg), (param1), (param2), (param3)     \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecMallocError: | ||||
|  * @allocSize:          the failed allocation size. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting xmlMalloc() errors. | ||||
|  */ | ||||
| #define xmlSecMallocError(allocSize, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     "xmlMalloc",                            \ | ||||
|                     XMLSEC_ERRORS_R_MALLOC_FAILED,          \ | ||||
|                     "size=%lu", (unsigned long)(allocSize)  \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecStrdupError: | ||||
|  * @str:                the failed string. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting xmlStrdup() errors. | ||||
|  */ | ||||
| #define xmlSecStrdupError(str, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     "xmlStrdup",                            \ | ||||
|                     XMLSEC_ERRORS_R_STRDUP_FAILED,          \ | ||||
|                     "size=%lu", (unsigned long)xmlStrlen(str) \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecXmlError: | ||||
|  * @errorFunction:      the failed function. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting generic XML errors. | ||||
|  */ | ||||
| #define xmlSecXmlError(errorFunction, errorObject) \ | ||||
|     {                                                 \ | ||||
|         xmlErrorPtr error = xmlGetLastError();        \ | ||||
|         int code = (error != NULL) ? error->code : 0; \ | ||||
|         const char* message = (error != NULL) ? error->message : NULL; \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    (errorFunction),                   \ | ||||
|                    XMLSEC_ERRORS_R_XML_FAILED,        \ | ||||
|                    "xml error: %lu: %s",              \ | ||||
|                    (unsigned long)code,               \ | ||||
|                    xmlSecErrorsSafeString(message)    \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecXmlError2: | ||||
|  * @errorFunction:      the failed function. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @msg:                the extra message. | ||||
|  * @param:              the extra message param. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting generic XML errors. | ||||
|  */ | ||||
| #define xmlSecXmlError2(errorFunction, errorObject, msg, param) \ | ||||
|     {                                                 \ | ||||
|         xmlErrorPtr error = xmlGetLastError();        \ | ||||
|         int code = (error != NULL) ? error->code : 0; \ | ||||
|         const char* message = (error != NULL) ? error->message : NULL; \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    (errorFunction),                   \ | ||||
|                    XMLSEC_ERRORS_R_XML_FAILED,        \ | ||||
|                    msg "; xml error: %lu: %s",        \ | ||||
|                    (param),                           \ | ||||
|                    (unsigned long)code,               \ | ||||
|                    xmlSecErrorsSafeString(message)    \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecXmlParserError: | ||||
|  * @errorFunction:      the failed function. | ||||
|  * @ctxt:               the parser context. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting XML parser errors. | ||||
|  */ | ||||
| #define xmlSecXmlParserError(errorFunction, ctxt, errorObject) \ | ||||
|     {                                                 \ | ||||
|         xmlErrorPtr error = xmlCtxtGetLastError(ctxt);\ | ||||
|         int code = (error != NULL) ? error->code : 0; \ | ||||
|         const char* message = (error != NULL) ? error->message : NULL; \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    (errorFunction),                   \ | ||||
|                    XMLSEC_ERRORS_R_XML_FAILED,        \ | ||||
|                    "xml error: %lu: %s",              \ | ||||
|                    (unsigned long)code,               \ | ||||
|                    xmlSecErrorsSafeString(message)    \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecXmlParserError2: | ||||
|  * @errorFunction:      the failed function. | ||||
|  * @ctxt:               the parser context. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @msg:                the extra message. | ||||
|  * @param:              the extra message param. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting XML parser errors. | ||||
|  */ | ||||
| #define xmlSecXmlParserError2(errorFunction, ctxt, errorObject, msg, param) \ | ||||
|     {                                                 \ | ||||
|         xmlErrorPtr error = xmlCtxtGetLastError(ctxt);\ | ||||
|         int code = (error != NULL) ? error->code : 0; \ | ||||
|         const char* message = (error != NULL) ? error->message : NULL; \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    (errorFunction),                   \ | ||||
|                    XMLSEC_ERRORS_R_XML_FAILED,        \ | ||||
|                    msg "; xml error: %lu: %s",        \ | ||||
|                    (param),                           \ | ||||
|                    (unsigned long)code,               \ | ||||
|                    xmlSecErrorsSafeString(message)    \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecXsltError: | ||||
|  * @errorFunction:      the failed function. | ||||
|  * @ctxt:               the parser context. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting XSLT errors. | ||||
|  */ | ||||
| #define xmlSecXsltError(errorFunction, ctxt, errorObject) \ | ||||
|     {                                                 \ | ||||
|         xmlErrorPtr error = xmlGetLastError();        \ | ||||
|         int code = (error != NULL) ? error->code : 0; \ | ||||
|         const char* message = (error != NULL) ? error->message : NULL; \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    (errorFunction),                   \ | ||||
|                    XMLSEC_ERRORS_R_XSLT_FAILED,       \ | ||||
|                    "xslt error: %lu: %s",             \ | ||||
|                    (unsigned long)code,               \ | ||||
|                    xmlSecErrorsSafeString(message)    \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecIOError: | ||||
|  * @errorFunction:      the failed function. | ||||
|  * @name:               the filename, function name, uri, etc. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting IO errors. | ||||
|  */ | ||||
| #define xmlSecIOError(errorFunction, name, errorObject) \ | ||||
|     {                                                 \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    (errorFunction),                   \ | ||||
|                    XMLSEC_ERRORS_R_IO_FAILED,         \ | ||||
|                    "name=\"%s\"; errno=%d",           \ | ||||
|                    xmlSecErrorsSafeString(name),      \ | ||||
|                    errno                              \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecNotImplementedError: | ||||
|  * @details:           the additional details. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "not implemented" errors. | ||||
|  */ | ||||
| #define xmlSecNotImplementedError(details) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     NULL,                                   \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_NOT_IMPLEMENTED,        \ | ||||
|                     "details=%s",                           \ | ||||
|                     xmlSecErrorsSafeString(details)         \ | ||||
|         ) | ||||
| /** | ||||
|  * xmlSecInvalidSizeError: | ||||
|  * @name:               the name of the variable, parameter, etc. | ||||
|  * @actual:             the actual value. | ||||
|  * @expected:           the expected value. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid size" errors when | ||||
|  * we expect exact match. | ||||
|  */ | ||||
| #define xmlSecInvalidSizeError(name, actual, expected, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_SIZE,           \ | ||||
|                     "invalid size for '%s': actual=%lu is not equal to expected=%lu", \ | ||||
|                     xmlSecErrorsSafeString(name),           \ | ||||
|                     (unsigned long)(actual),                \ | ||||
|                     (unsigned long)(expected)               \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidSizeLessThanError: | ||||
|  * @name:               the name of the variable, parameter, etc. | ||||
|  * @actual:             the actual value. | ||||
|  * @expected:           the expected value. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid size" errors when | ||||
|  * we expect at least the expected size. | ||||
|  */ | ||||
| #define xmlSecInvalidSizeLessThanError(name, actual, expected, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_SIZE,           \ | ||||
|                     "invalid size for '%s': actual=%lu is less than expected=%lu", \ | ||||
|                     xmlSecErrorsSafeString(name),           \ | ||||
|                     (unsigned long)(actual),                \ | ||||
|                     (unsigned long)(expected)               \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidSizeMoreThanError: | ||||
|  * @name:               the name of the variable, parameter, etc. | ||||
|  * @actual:             the actual value. | ||||
|  * @expected:           the expected value. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid size" errors when | ||||
|  * we expect at most the expected size. | ||||
|  */ | ||||
| #define xmlSecInvalidSizeMoreThanError(name, actual, expected, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_NOT_IMPLEMENTED,        \ | ||||
|                     "invalid size for '%s': actual=%lu is more than expected=%lu", \ | ||||
|                     xmlSecErrorsSafeString(name),           \ | ||||
|                     (unsigned long)(actual),                \ | ||||
|                     (unsigned long)(expected)               \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidSizeNotMultipleOfError: | ||||
|  * @name:               the name of the variable, parameter, etc. | ||||
|  * @actual:             the actual value. | ||||
|  * @divider:            the expected divider. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid size" errors when | ||||
|  * we expect the size to be a multiple of the divider. | ||||
|  */ | ||||
| #define xmlSecInvalidSizeNotMultipleOfError(name, actual, divider, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_NOT_IMPLEMENTED,        \ | ||||
|                     "invalid size for '%s': actual=%lu is not a multiple of %lu", \ | ||||
|                     xmlSecErrorsSafeString(name),           \ | ||||
|                     (unsigned long)(actual),                \ | ||||
|                     (unsigned long)(divider)               \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidSizeOtherError: | ||||
|  * @msg:                the message about the error. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid size" errors when | ||||
|  * we expect exact match. | ||||
|  */ | ||||
| #define xmlSecInvalidSizeOtherError(msg, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_SIZE,           \ | ||||
|                     "invalid size: %s",                     \ | ||||
|                     xmlSecErrorsSafeString(msg)             \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidDataError: | ||||
|  * @msg:                the msg with explanation. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid data" errors. | ||||
|  */ | ||||
| #define xmlSecInvalidDataError(msg, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_DATA,           \ | ||||
|                     "%s",                                   \ | ||||
|                     xmlSecErrorsSafeString(msg)             \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidStringDataError: | ||||
|  * @name:               the name of the variable, parameter, etc. | ||||
|  * @actual:             the actual value as a string. | ||||
|  * @expected:           the expected value(s) as a string. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid data" errors for string. | ||||
|  */ | ||||
| #define xmlSecInvalidStringDataError(name, actual, expected, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_DATA,           \ | ||||
|                     "invalid data for '%s': actual='%s' and expected %s", \ | ||||
|                     xmlSecErrorsSafeString(name),           \ | ||||
|                     xmlSecErrorsSafeString(actual),         \ | ||||
|                     (expected)                              \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidIntegerDataError: | ||||
|  * @name:               the name of the variable, parameter, etc. | ||||
|  * @actual:             the actual value as an integer. | ||||
|  * @expected:           the expected value(s) as a string. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid data" errors for integers. | ||||
|  */ | ||||
| #define xmlSecInvalidIntegerDataError(name, actual, expected, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_DATA,           \ | ||||
|                     "invalid data for '%s': actual=%ld and expected %s", \ | ||||
|                     xmlSecErrorsSafeString(name),           \ | ||||
|                     (unsigned long)(actual),                \ | ||||
|                     (expected)                              \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidIntegerDataError2: | ||||
|  * @name1:              the name of the first variable, parameter, etc. | ||||
|  * @actual1:            the actual first value as an integer. | ||||
|  * @name2:              the name of the second variable, parameter, etc. | ||||
|  * @actual2:            the actual second value as an integer. | ||||
|  * @expected:           the expected value(s) as a string. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid data" errors for integers. | ||||
|  */ | ||||
| #define xmlSecInvalidIntegerDataError2(name1, actual1, name2, actual2, expected, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_DATA,           \ | ||||
|                     "invalid data: actual value '%s'=%ld, actual value '%s'=%ld and expected %s", \ | ||||
|                     xmlSecErrorsSafeString(name1),          \ | ||||
|                     (unsigned long)(actual1),               \ | ||||
|                     xmlSecErrorsSafeString(name2),          \ | ||||
|                     (unsigned long)(actual2),               \ | ||||
|                     (expected)                              \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidTypeError: | ||||
|  * @msg:                the msg with explanation. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid type" errors. | ||||
|  */ | ||||
| #define xmlSecInvalidTypeError(msg, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_TYPE,           \ | ||||
|                     "%s",                                   \ | ||||
|                     xmlSecErrorsSafeString(msg)             \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidStringTypeError: | ||||
|  * @name:               the name of the variable, parameter, etc. | ||||
|  * @actual:             the actual value as a string. | ||||
|  * @expected:           the expected value(s) as a string. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid type" errors for string. | ||||
|  */ | ||||
| #define xmlSecInvalidStringTypeError(name, actual, expected, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_TYPE,           \ | ||||
|                     "invalid type for '%s': actual='%s' and expected %s", \ | ||||
|                     xmlSecErrorsSafeString(name),           \ | ||||
|                     xmlSecErrorsSafeString(actual),         \ | ||||
|                     (expected)                              \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidIntegerTypeError: | ||||
|  * @name:               the name of the variable, parameter, etc. | ||||
|  * @actual:             the actual value as an integer. | ||||
|  * @expected:           the expected value(s) as a string. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid type" errors for integers. | ||||
|  */ | ||||
| #define xmlSecInvalidIntegerTypeError(name, actual, expected, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_TYPE,           \ | ||||
|                     "invalid type for '%s': actual=%ld and expected %s", \ | ||||
|                     xmlSecErrorsSafeString(name),           \ | ||||
|                     (unsigned long)(actual),                \ | ||||
|                     (expected)                              \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidIntegerTypeError2: | ||||
|  * @name1:              the name of the first variable, parameter, etc. | ||||
|  * @actual1:            the actual first value as an integer. | ||||
|  * @name2:              the name of the second variable, parameter, etc. | ||||
|  * @actual2:            the actual second value as an integer. | ||||
|  * @expected:           the expected value(s) as a string. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid type" errors for integers. | ||||
|  */ | ||||
| #define xmlSecInvalidIntegerTypeError2(name1, actual1, name2, actual2, expected, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_TYPE,           \ | ||||
|                     "invalid type: actual value '%s'=%ld, actual value '%s'=%ld and expected %s", \ | ||||
|                     xmlSecErrorsSafeString(name1),          \ | ||||
|                     (unsigned long)(actual1),               \ | ||||
|                     xmlSecErrorsSafeString(name2),          \ | ||||
|                     (unsigned long)(actual2),               \ | ||||
|                     (expected)                              \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidNodeError: | ||||
|  * @actualNode:         the actual node. | ||||
|  * @expectedNodeName:   the expected node name. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting an invalid node errors. | ||||
|  */ | ||||
| #define xmlSecInvalidNodeError(actualNode, expectedNodeName, errorObject) \ | ||||
|     {                                                 \ | ||||
|         const char* actualNodeName = xmlSecNodeGetName(actualNode); \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    NULL,                              \ | ||||
|                    XMLSEC_ERRORS_R_INVALID_NODE,      \ | ||||
|                    "actual=%s; expected=%s",          \ | ||||
|                    xmlSecErrorsSafeString(actualNodeName),  \ | ||||
|                    xmlSecErrorsSafeString(expectedNodeName) \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidNodeContentError: | ||||
|  * @node:               the node. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @reason:             the reason why node content is invalid. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting an invalid node content errors. | ||||
|  */ | ||||
| #define xmlSecInvalidNodeContentError(node, errorObject, reason) \ | ||||
|     {                                                 \ | ||||
|         const char* nName = xmlSecNodeGetName(node);  \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    NULL,                              \ | ||||
|                    XMLSEC_ERRORS_R_INVALID_NODE_CONTENT, \ | ||||
|                    "node=%s; reason=%s",              \ | ||||
|                    xmlSecErrorsSafeString(nName),     \ | ||||
|                    xmlSecErrorsSafeString(reason)     \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidNodeAttributeError: | ||||
|  * @node:               the node. | ||||
|  * @attrName:           the attribute name. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @reason:             the reason why node content is invalid. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting an invalid node attribute errors. | ||||
|  */ | ||||
| #define xmlSecInvalidNodeAttributeError(node, attrName, errorObject, reason) \ | ||||
|     {                                                 \ | ||||
|         const char* nName = xmlSecNodeGetName(node);  \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    NULL,                              \ | ||||
|                    XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE, \ | ||||
|                    "node=%s; attribute=%s; reason=%s",\ | ||||
|                    xmlSecErrorsSafeString(nName),     \ | ||||
|                    xmlSecErrorsSafeString(attrName),  \ | ||||
|                    xmlSecErrorsSafeString(reason)     \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecNodeAlreadyPresentError: | ||||
|  * @parent:             the parent node. | ||||
|  * @nodeName:           the node name. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting node already present errors. | ||||
|  */ | ||||
| #define xmlSecNodeAlreadyPresentError(parent, nodeName, errorObject) \ | ||||
|     {                                                 \ | ||||
|         const char* pName = xmlSecNodeGetName(parent);\ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    NULL,                              \ | ||||
|                    XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT, \ | ||||
|                    "parent=%s; node=%s",              \ | ||||
|                    xmlSecErrorsSafeString(pName),     \ | ||||
|                    xmlSecErrorsSafeString(nodeName)   \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecUnexpectedNodeError: | ||||
|  * @node:               the node. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting an invalid node errors. | ||||
|  */ | ||||
| #define xmlSecUnexpectedNodeError(node, errorObject) \ | ||||
|     {                                                 \ | ||||
|         const char* nName = xmlSecNodeGetName(node);  \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    NULL,                              \ | ||||
|                    XMLSEC_ERRORS_R_UNEXPECTED_NODE,   \ | ||||
|                    "node=%s",                         \ | ||||
|                    xmlSecErrorsSafeString(nName)      \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecNodeNotFoundError: | ||||
|  * @errorFunction:      the failed function. | ||||
|  * @startNode:          the search start node. | ||||
|  * @targetNodeName:     the expected child node name. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting node not found errors. | ||||
|  */ | ||||
| #define xmlSecNodeNotFoundError(errorFunction, startNode, targetNodeName, errorObject) \ | ||||
|     {                                                 \ | ||||
|         const char* startNodeName = xmlSecNodeGetName(startNode); \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)(errorObject),        \ | ||||
|                    (errorFunction),                   \ | ||||
|                    XMLSEC_ERRORS_R_NODE_NOT_FOUND,    \ | ||||
|                    "startNode=%s; target=%s",         \ | ||||
|                    xmlSecErrorsSafeString(startNodeName), \ | ||||
|                    xmlSecErrorsSafeString(targetNodeName) \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidTransfromError: | ||||
|  * @transform:          the transform. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting an invalid transform errors. | ||||
|  */ | ||||
| #define xmlSecInvalidTransfromError(transform) \ | ||||
|     {                                                 \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)xmlSecTransformGetName(transform), \ | ||||
|                    NULL,                              \ | ||||
|                    XMLSEC_ERRORS_R_INVALID_TRANSFORM, \ | ||||
|                    XMLSEC_ERRORS_NO_MESSAGE           \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidTransfromError2: | ||||
|  * @transform:          the transform. | ||||
|  * @msg:                the extra message. | ||||
|  * @param:              the extra message param. | ||||
|  * | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting an invalid transform errors. | ||||
|  */ | ||||
| #define xmlSecInvalidTransfromError2(transform, msg, param) \ | ||||
|     {                                                 \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)xmlSecTransformGetName(transform), \ | ||||
|                    NULL,                              \ | ||||
|                    XMLSEC_ERRORS_R_INVALID_TRANSFORM, \ | ||||
|                    (msg), (param)                     \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidTransfromStatusError: | ||||
|  * @transform:          the transform. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting an invalid transform status errors. | ||||
|  */ | ||||
| #define xmlSecInvalidTransfromStatusError(transform) \ | ||||
|     {                                                 \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)xmlSecTransformGetName(transform), \ | ||||
|                    NULL,                              \ | ||||
|                    XMLSEC_ERRORS_R_INVALID_STATUS,    \ | ||||
|                    "transformStatus=%d",              \ | ||||
|                    (int)((transform)->status)         \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidTransfromStatusError2: | ||||
|  * @transform:          the transform. | ||||
|  * @msg:                the extra message. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting an invalid transform status errors. | ||||
|  */ | ||||
| #define xmlSecInvalidTransfromStatusError2(transform, msg) \ | ||||
|     {                                                 \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,               \ | ||||
|                    (const char*)xmlSecTransformGetName(transform), \ | ||||
|                    NULL,                              \ | ||||
|                    XMLSEC_ERRORS_R_INVALID_STATUS,    \ | ||||
|                    "transformStatus=%ld, msg=%s",     \ | ||||
|                    (long int)((transform)->status),   \ | ||||
|                    msg                                \ | ||||
|         );                                            \ | ||||
|     } | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidKeyDataSizeError: | ||||
|  * @name:               the name of the variable, parameter, etc. | ||||
|  * @actual:             the actual value. | ||||
|  * @expected:           the expected value(s). | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid keydata size" errors. | ||||
|  */ | ||||
| #define xmlSecInvalidKeyDataSizeError(actual, expected, errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE,  \ | ||||
|                     "invalid key data size: actual=%ld and expected=%ld", \ | ||||
|                     (unsigned long)(actual),                \ | ||||
|                     (unsigned long)(expected)               \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecInvalidZeroKeyDataSizeError: | ||||
|  * @name:               the name of the variable, parameter, etc. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting "invalid keydata size" errors. | ||||
|  */ | ||||
| #define xmlSecInvalidZeroKeyDataSizeError(errorObject) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE,  \ | ||||
|                     "invalid zero key data size"            \ | ||||
|         ) | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * xmlSecOtherError: | ||||
|  * @code:               the error code. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @details:            the error message. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting other XMLSec errors. | ||||
|  */ | ||||
| #define xmlSecOtherError(code, errorObject, details) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     (code),                                 \ | ||||
|                     "details=%s",                           \ | ||||
|                     xmlSecErrorsSafeString(details)         \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecOtherError2: | ||||
|  * @code:               the error code. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @msg:                the extra message. | ||||
|  * @param:              the extra message param. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting other XMLSec errors. | ||||
|  */ | ||||
| #define xmlSecOtherError2(code, errorObject, msg, param) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     (code),                                 \ | ||||
|                     (msg), (param)                          \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecOtherError3: | ||||
|  * @code:               the error code. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @msg:                the extra message. | ||||
|  * @param1:             the extra message param. | ||||
|  * @param2:             the extra message param. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting other XMLSec errors. | ||||
|  */ | ||||
| #define xmlSecOtherError3(code, errorObject, msg, param1, param2) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     (code),                                 \ | ||||
|                     (msg), (param1), (param2)               \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecOtherError4: | ||||
|  * @code:               the error code. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @msg:                the extra message. | ||||
|  * @param1:             the extra message param. | ||||
|  * @param2:             the extra message param. | ||||
|  * @param3:             the extra message param. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting other XMLSec errors. | ||||
|  */ | ||||
| #define xmlSecOtherError4(code, errorObject, msg, param1, param2, param3) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     (code),                                 \ | ||||
|                     (msg), (param1), (param2), (param3)     \ | ||||
|         ) | ||||
|  | ||||
| /** | ||||
|  * xmlSecOtherError5: | ||||
|  * @code:               the error code. | ||||
|  * @errorObject:        the error specific error object (e.g. transform, key data, etc). | ||||
|  * @msg:                the extra message. | ||||
|  * @param1:             the extra message param. | ||||
|  * @param2:             the extra message param. | ||||
|  * @param3:             the extra message param. | ||||
|  * @param4:             the extra message param. | ||||
|  * | ||||
|  * Macro. The XMLSec library macro for reporting other XMLSec errors. | ||||
|  */ | ||||
| #define xmlSecOtherError5(code, errorObject, msg, param1, param2, param3, param4) \ | ||||
|         xmlSecError(XMLSEC_ERRORS_HERE,                     \ | ||||
|                     (const char*)(errorObject),             \ | ||||
|                     NULL,                                   \ | ||||
|                     (code),                                 \ | ||||
|                     (msg), (param1), (param2), (param3), (param4) \ | ||||
|         ) | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif /* __cplusplus */ | ||||
|  | ||||
| #endif /* __XMLSEC_ERROR_HELPERS_H__ */ | ||||
							
								
								
									
										1950
									
								
								experimental/facho-signer/src/xmlsec1/xmltree.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1950
									
								
								experimental/facho-signer/src/xmlsec1/xmltree.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user