mirror of
https://github.com/rn10950/RetroZilla.git
synced 2024-11-15 04:00:12 +01:00
44b7f056d9
bug1001332, 56b691c003ad, bug1086145, bug1054069, bug1155922, bug991783, bug1125025, bug1162521, bug1162644, bug1132941, bug1164364, bug1166205, bug1166163, bug1166515, bug1138554, bug1167046, bug1167043, bug1169451, bug1172128, bug1170322, bug102794, bug1128184, bug557830, bug1174648, bug1180244, bug1177784, bug1173413, bug1169174, bug1084669, bug951455, bug1183395, bug1177430, bug1183827, bug1160139, bug1154106, bug1142209, bug1185033, bug1193467, bug1182667(with sha512 changes backed out, which breaks VC6 compilation), bug1158489, bug337796
1589 lines
46 KiB
C
1589 lines
46 KiB
C
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
/*
|
|
* pkix_tools.h
|
|
*
|
|
* Header for Utility Functions and Macros
|
|
*
|
|
*/
|
|
|
|
#ifndef _PKIX_TOOLS_H
|
|
#define _PKIX_TOOLS_H
|
|
|
|
#include "pkix.h"
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
#include "secport.h"
|
|
#include "prlong.h"
|
|
|
|
/* private PKIX system headers */
|
|
#include "pkix_basicconstraintschecker.h"
|
|
#include "pkix_buildresult.h"
|
|
#include "pkix_certchainchecker.h"
|
|
#include "pkix_certselector.h"
|
|
#include "pkix_comcertselparams.h"
|
|
#include "pkix_comcrlselparams.h"
|
|
#include "pkix_crlselector.h"
|
|
#include "pkix_error.h"
|
|
#include "pkix_expirationchecker.h"
|
|
#include "pkix_list.h"
|
|
#include "pkix_logger.h"
|
|
#include "pkix_namechainingchecker.h"
|
|
#include "pkix_nameconstraintschecker.h"
|
|
#include "pkix_policychecker.h"
|
|
#include "pkix_policynode.h"
|
|
#include "pkix_procparams.h"
|
|
#include "pkix_resourcelimits.h"
|
|
#include "pkix_revocationmethod.h"
|
|
#include "pkix_revocationchecker.h"
|
|
#include "pkix_crlchecker.h"
|
|
#include "pkix_ocspchecker.h"
|
|
#include "pkix_signaturechecker.h"
|
|
#include "pkix_store.h"
|
|
#include "pkix_targetcertchecker.h"
|
|
#include "pkix_validate.h"
|
|
#include "pkix_valresult.h"
|
|
#include "pkix_verifynode.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct pkixStdVarsStr {
|
|
const char *aMyFuncName;
|
|
PKIX_Error *aPkixErrorResult;
|
|
PKIX_Error *aPkixTempResult;
|
|
PKIX_Error *aPkixReturnResult;
|
|
PKIX_ERRORCODE aPkixErrorCode;
|
|
PKIX_Boolean aPkixErrorReceived;
|
|
PKIX_Boolean aPkixTempErrorReceived;
|
|
PKIX_ERRORCLASS aPkixErrorClass;
|
|
PKIX_UInt32 aPkixType;
|
|
PKIX_PL_Object *aLockedObject;
|
|
PKIX_List *aPkixErrorList;
|
|
} PKIX_StdVars;
|
|
|
|
#ifdef PKIX_STDVARS_POINTER
|
|
#define myFuncName stdVars->aMyFuncName
|
|
#define pkixErrorResult stdVars->aPkixErrorResult
|
|
#define pkixTempResult stdVars->aPkixTempResult
|
|
#define pkixReturnResult stdVars->aPkixReturnResult
|
|
#define pkixErrorCode stdVars->aPkixErrorCode
|
|
#define pkixErrorReceived stdVars->aPkixErrorReceived
|
|
#define pkixTempErrorReceived stdVars->aPkixTempErrorReceived
|
|
#define pkixErrorClass stdVars->aPkixErrorClass
|
|
#define pkixType stdVars->aPkixType
|
|
#define lockedObject stdVars->aLockedObject
|
|
#define pkixErrorList stdVars->aPkixErrorList
|
|
#define stdVarsPtr stdVars
|
|
#else
|
|
#define myFuncName stdVars.aMyFuncName
|
|
#define pkixErrorResult stdVars.aPkixErrorResult
|
|
#define pkixTempResult stdVars.aPkixTempResult
|
|
#define pkixReturnResult stdVars.aPkixReturnResult
|
|
#define pkixErrorCode stdVars.aPkixErrorCode
|
|
#define pkixErrorReceived stdVars.aPkixErrorReceived
|
|
#define pkixTempErrorReceived stdVars.aPkixTempErrorReceived
|
|
#define pkixErrorClass stdVars.aPkixErrorClass
|
|
#define pkixType stdVars.aPkixType
|
|
#define lockedObject stdVars.aLockedObject
|
|
#define pkixErrorList stdVars.aPkixErrorList
|
|
#define stdVarsPtr &stdVars
|
|
#endif
|
|
|
|
extern PKIX_Error * PKIX_DoReturn(PKIX_StdVars * stdVars,
|
|
PKIX_ERRORCLASS errClass,
|
|
PKIX_Boolean doLogger,
|
|
void * plContext);
|
|
|
|
extern PKIX_Error * PKIX_DoThrow(PKIX_StdVars * stdVars,
|
|
PKIX_ERRORCLASS errClass,
|
|
PKIX_ERRORCODE errCode,
|
|
PKIX_ERRORCLASS overrideClass,
|
|
void * plContext);
|
|
|
|
extern void PKIX_DoAddError(PKIX_StdVars * stdVars,
|
|
PKIX_Error * error,
|
|
void * plContext);
|
|
|
|
#ifdef PKIX_OBJECT_LEAK_TEST
|
|
extern PKIX_Error * pkix_CheckForGeneratedError(PKIX_StdVars * stdVars,
|
|
PKIX_ERRORCLASS errClass,
|
|
char * fnName,
|
|
PKIX_Boolean *errorStateSet,
|
|
void * plContext);
|
|
#endif /* PKIX_OBJECT_LEAK_TEST */
|
|
|
|
extern const PKIX_StdVars zeroStdVars;
|
|
|
|
extern PRLogModuleInfo *pkixLog;
|
|
|
|
/*
|
|
* UTILITY MACROS
|
|
* Documentation for these common utility macros can be found in the
|
|
* Implementation Guidelines document (Section 4.3)
|
|
*
|
|
* In general, macros with multiple statements (or a single "if" statement)
|
|
* use the "do {<body>} while (0)" technique in order to convert the multiple
|
|
* statements into one statement, thus avoiding the dangling else problem.
|
|
* For macros which ALWAYS exit with a "return" or "goto", there is no
|
|
* need to use this technique (and it yields compiler warnings of "statement
|
|
* not reached"), so we just use "{<body>}" to group the statements together.
|
|
*/
|
|
|
|
#if !defined (PKIX_OBJECT_LEAK_TEST)
|
|
|
|
#define PKIX_STD_VARS(funcName) \
|
|
static const char cMyFuncName[] = {funcName}; \
|
|
PKIX_StdVars stdVars = zeroStdVars; \
|
|
myFuncName = cMyFuncName
|
|
|
|
|
|
#else /* PKIX_OBJECT_LEAK_TEST */
|
|
|
|
extern char **fnStackNameArr;
|
|
extern PKIX_UInt32 *fnStackInvCountArr;
|
|
extern PKIX_UInt32 stackPosition;
|
|
extern PKIX_Boolean noErrorState;
|
|
extern PKIX_Boolean errorGenerated;
|
|
extern PKIX_Boolean runningLeakTest;
|
|
extern PLHashTable *fnInvTable;
|
|
extern PKIX_UInt32 testStartFnStackPosition;
|
|
extern char *errorFnStackString;
|
|
|
|
extern PLHashNumber PR_CALLBACK pkix_ErrorGen_Hash (const void *key);
|
|
|
|
#define PKIX_STD_VARS(funcName) \
|
|
static const char cMyFuncName[] = {funcName}; \
|
|
PKIX_StdVars stdVars = zeroStdVars; \
|
|
PKIX_Boolean errorSetFlag = PKIX_FALSE; \
|
|
myFuncName = cMyFuncName; \
|
|
if (runningLeakTest) { \
|
|
if (fnStackNameArr) { \
|
|
fnStackInvCountArr[stackPosition] += 1; \
|
|
stackPosition += 1; \
|
|
fnStackInvCountArr[stackPosition] = 0; \
|
|
fnStackNameArr[stackPosition] = (char*)myFuncName; \
|
|
fnStackNameArr[stackPosition + 1] = NULL; \
|
|
PR_LOG(pkixLog, 5, \
|
|
("%s%*s+> %s(%d) - %s\n", (errorGenerated ? "*" : " "), \
|
|
stackPosition, " ", fnStackNameArr[stackPosition], \
|
|
stackPosition, myFuncName)); \
|
|
} \
|
|
do { \
|
|
pkixErrorResult = pkix_CheckForGeneratedError(&stdVars, PKIX_MEM_ERROR, \
|
|
funcName, &errorSetFlag, \
|
|
plContext); \
|
|
if (pkixErrorResult) { \
|
|
PR_LOG(pkixLog, 5, \
|
|
("%s%*s<- %s(%d) - %s\n", (errorGenerated ? "*" : " "), \
|
|
stackPosition, " ", fnStackNameArr[stackPosition], \
|
|
stackPosition, myFuncName)); \
|
|
fnStackNameArr[stackPosition--] = NULL; \
|
|
if (errorSetFlag) { \
|
|
noErrorState = (noErrorState) ? PKIX_FALSE : PKIX_TRUE; \
|
|
} \
|
|
return pkixErrorResult; \
|
|
} \
|
|
} while (0); \
|
|
}
|
|
#endif /* PKIX_OBJECT_LEAK_TEST */
|
|
|
|
#ifdef DEBUG
|
|
#define _PKIX_DEBUG_TRACE(cond, prefix, level) \
|
|
do { \
|
|
if (cond) { \
|
|
pkix_Logger_Check(pkixLoggersDebugTrace, myFuncName, \
|
|
prefix, pkixType, level, plContext); \
|
|
} \
|
|
} while (0)
|
|
#else
|
|
#define _PKIX_DEBUG_TRACE(cond, prefix, level)
|
|
#endif
|
|
|
|
#define _PKIX_LOG_ERROR(code, level) \
|
|
{ \
|
|
if (pkixLoggersErrors) { \
|
|
pkix_Logger_CheckWithCode(pkixLoggersErrors, code, \
|
|
NULL, pkixType, level, plContext); \
|
|
} \
|
|
}
|
|
|
|
#define PKIX_ENTER(type, funcName) \
|
|
PKIX_STD_VARS(funcName); \
|
|
pkixType = PKIX_ ## type ## _ERROR; \
|
|
PKIX_DEBUG_ENTER(type); \
|
|
_PKIX_DEBUG_TRACE(pkixLoggersDebugTrace, ">>>", PKIX_LOGGER_LEVEL_TRACE);
|
|
|
|
#define PKIX_ENTER_NO_LOGGER(type, funcName) \
|
|
PKIX_STD_VARS(funcName); \
|
|
pkixType = PKIX_ ## type ## _ERROR; \
|
|
PKIX_DEBUG_ENTER(type);
|
|
|
|
#define PKIX_DEBUG_ENTER(type) \
|
|
PKIX_ ## type ## _DEBUG_ARG("( Entering %s).\n", myFuncName)
|
|
|
|
#define PKIX_DEBUG_EXIT(type) \
|
|
PKIX_ ## type ## _DEBUG_ARG("( Exiting %s).\n", myFuncName)
|
|
|
|
#define PKIX_OBJECT_UNLOCK(obj) \
|
|
do { \
|
|
if (obj && lockedObject == (PKIX_PL_Object *)(obj)){ \
|
|
pkixTempResult = \
|
|
PKIX_PL_Object_Unlock \
|
|
((PKIX_PL_Object *)(obj), plContext); \
|
|
if (pkixTempResult) { \
|
|
PKIX_DoAddError(stdVarsPtr, pkixTempResult, plContext); \
|
|
pkixTempResult = NULL; \
|
|
} \
|
|
lockedObject = NULL; \
|
|
} else { \
|
|
PORT_Assert(lockedObject == NULL); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_DECREF(obj) \
|
|
do { \
|
|
if (obj){ \
|
|
pkixTempResult = PKIX_PL_Object_DecRef \
|
|
((PKIX_PL_Object *)(obj), plContext); \
|
|
if (pkixTempResult) { \
|
|
PKIX_DoAddError(stdVarsPtr, pkixTempResult, plContext); \
|
|
pkixTempResult = NULL; \
|
|
} \
|
|
obj = NULL; \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_THROW(type, descNum) \
|
|
return PKIX_DoThrow(&stdVars, (PKIX_ ## type ## _ERROR), descNum, \
|
|
pkixErrorClass, plContext);
|
|
|
|
#ifdef PKIX_OBJECT_LEAK_TEST
|
|
#define PKIX_RETURN(type) \
|
|
if (runningLeakTest && fnStackNameArr) { \
|
|
PR_LOG(pkixLog, 5, \
|
|
("%s%*s<- %s(%d) - %s\n", (errorGenerated ? "*" : " "), \
|
|
stackPosition, " ", fnStackNameArr[stackPosition], \
|
|
stackPosition, myFuncName)); \
|
|
fnStackNameArr[stackPosition--] = NULL; \
|
|
if (errorSetFlag) noErrorState = (noErrorState) ? PKIX_FALSE : PKIX_TRUE; \
|
|
} \
|
|
return PKIX_DoReturn(&stdVars, (PKIX_ ## type ## _ERROR), PKIX_TRUE, plContext);
|
|
#else
|
|
#define PKIX_RETURN(type) \
|
|
return PKIX_DoReturn(&stdVars, (PKIX_ ## type ## _ERROR), PKIX_TRUE, plContext);
|
|
#endif /* PKIX_OBJECT_LEAK_TEST */
|
|
|
|
|
|
#if defined(DEBUG) && !defined(DEBUG_nb95248)
|
|
#define PKIX_RETURN_NO_LOGGER(type) \
|
|
{ \
|
|
PKIX_OBJECT_UNLOCK(lockedObject); \
|
|
if ((pkixErrorReceived) || (pkixErrorResult) || pkixErrorList) \
|
|
PKIX_THROW(type, pkixErrorCode); \
|
|
PKIX_DEBUG_EXIT(type); \
|
|
return NULL; \
|
|
}
|
|
#else
|
|
#define PKIX_RETURN_NO_LOGGER(type) \
|
|
return PKIX_DoReturn(&stdVars, (PKIX_ ## type ## _ERROR), PKIX_FALSE, plContext);
|
|
#endif
|
|
|
|
/* disable to disable ;-) */
|
|
/* #define WANT_TRACE_CHECK_FAILURES */
|
|
|
|
#ifdef WANT_TRACE_CHECK_FAILURES
|
|
#define TRACE_CHECK_FAILURE(what, errorstring) \
|
|
if (pkixLog) { \
|
|
PR_LOG(pkixLog, PR_LOG_DEBUG, \
|
|
("====> [%s] failed: %s\n", #what, errorstring)); \
|
|
}
|
|
#else
|
|
#define TRACE_CHECK_FAILURE(what, errorstring)
|
|
#endif
|
|
|
|
#define PKIX_CHECK(func, descNum) \
|
|
do { \
|
|
pkixErrorResult = (func); \
|
|
if (pkixErrorResult) { \
|
|
TRACE_CHECK_FAILURE((func), PKIX_ErrorText[descNum]) \
|
|
pkixErrorClass = pkixErrorResult->errClass; \
|
|
pkixErrorCode = descNum; \
|
|
goto cleanup; \
|
|
} \
|
|
} while (0)
|
|
|
|
/* like PKIX_CHECK but without goto cleanup */
|
|
#define PKIX_CHECK_NO_GOTO(func, descNum) \
|
|
do { \
|
|
pkixErrorResult = (func); \
|
|
if (pkixErrorResult) { \
|
|
TRACE_CHECK_FAILURE((func), PKIX_ErrorText[descNum]) \
|
|
pkixErrorClass = pkixErrorResult->errClass; \
|
|
pkixErrorCode = descNum; \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_CHECK_ONLY_FATAL(func, descNum) \
|
|
do { \
|
|
pkixTempErrorReceived = PKIX_FALSE; \
|
|
pkixErrorResult = (func); \
|
|
if (pkixErrorResult) { \
|
|
TRACE_CHECK_FAILURE((func), PKIX_ErrorText[descNum]) \
|
|
pkixTempErrorReceived = PKIX_TRUE; \
|
|
pkixErrorClass = pkixErrorResult->errClass; \
|
|
if (pkixErrorClass == PKIX_FATAL_ERROR) { \
|
|
goto cleanup; \
|
|
} \
|
|
PKIX_DECREF(pkixErrorResult); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_LOG_ERROR(descNum) \
|
|
_PKIX_LOG_ERROR(descNum, PKIX_LOGGER_LEVEL_ERROR)
|
|
|
|
#define PKIX_ERROR(descNum) \
|
|
{ \
|
|
PKIX_LOG_ERROR(descNum) \
|
|
pkixErrorReceived = PKIX_TRUE; \
|
|
pkixErrorCode = descNum; \
|
|
goto cleanup; \
|
|
}
|
|
|
|
#define PKIX_ERROR_ALLOC_ERROR() \
|
|
{ \
|
|
PKIX_LOG_ERROR(PKIX_ALLOCERROR) \
|
|
pkixErrorReceived = PKIX_TRUE; \
|
|
pkixErrorResult = PKIX_ALLOC_ERROR(); \
|
|
goto cleanup; \
|
|
}
|
|
|
|
#define PKIX_ERROR_FATAL(descNum) \
|
|
{ \
|
|
pkixErrorReceived = PKIX_TRUE; \
|
|
pkixErrorCode = descNum; \
|
|
pkixErrorClass = PKIX_FATAL_ERROR; \
|
|
_PKIX_LOG_ERROR(pkixErrorCode, PKIX_LOGGER_LEVEL_FATALERROR); \
|
|
goto cleanup; \
|
|
}
|
|
|
|
#define PKIX_CHECK_FATAL(func, descNum) \
|
|
do { \
|
|
pkixErrorResult = (func); \
|
|
if (pkixErrorResult) { \
|
|
TRACE_CHECK_FAILURE((func), PKIX_ErrorText[descNum]) \
|
|
pkixErrorReceived = PKIX_TRUE; \
|
|
pkixErrorCode = descNum; \
|
|
pkixErrorClass = PKIX_FATAL_ERROR; \
|
|
_PKIX_LOG_ERROR(pkixErrorCode, PKIX_LOGGER_LEVEL_FATALERROR); \
|
|
goto fatal; \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_NULLCHECK_ONE(a) \
|
|
do { \
|
|
if ((a) == NULL){ \
|
|
pkixErrorReceived = PKIX_TRUE; \
|
|
pkixErrorCode = PKIX_NULLARGUMENT; \
|
|
PKIX_RETURN(FATAL); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_NULLCHECK_TWO(a, b) \
|
|
do { \
|
|
if (((a) == NULL) || ((b) == NULL)){ \
|
|
pkixErrorReceived = PKIX_TRUE; \
|
|
pkixErrorCode = PKIX_NULLARGUMENT; \
|
|
PKIX_RETURN(FATAL); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_NULLCHECK_THREE(a, b, c) \
|
|
do { \
|
|
if (((a) == NULL) || ((b) == NULL) || ((c) == NULL)){ \
|
|
pkixErrorReceived = PKIX_TRUE; \
|
|
pkixErrorCode = PKIX_NULLARGUMENT; \
|
|
PKIX_RETURN(FATAL); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_NULLCHECK_FOUR(a, b, c, d) \
|
|
do { \
|
|
if (((a) == NULL) || ((b) == NULL) || \
|
|
((c) == NULL) || ((d) == NULL)){ \
|
|
pkixErrorReceived = PKIX_TRUE; \
|
|
pkixErrorCode = PKIX_NULLARGUMENT; \
|
|
PKIX_RETURN(FATAL); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_OBJECT_LOCK(obj) \
|
|
do { \
|
|
if (obj) { \
|
|
pkixTempResult = \
|
|
PKIX_PL_Object_Lock((PKIX_PL_Object*)(obj), plContext); \
|
|
if (pkixTempResult) { \
|
|
PKIX_DoAddError(stdVarsPtr, pkixTempResult, plContext); \
|
|
pkixTempResult = NULL; \
|
|
pkixErrorCode = PKIX_OBJECTLOCKFAILED; \
|
|
goto cleanup; \
|
|
} \
|
|
lockedObject = (PKIX_PL_Object *)(obj); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_ERROR_CREATE(type, descNum, error) \
|
|
{ \
|
|
pkixTempResult = (PKIX_Error*)pkix_Throw \
|
|
(PKIX_ ## type ## _ERROR, myFuncName, \
|
|
descNum, PKIX_ ## type ## _ERROR, pkixErrorResult, \
|
|
&error, plContext); \
|
|
if (pkixTempResult) { \
|
|
error = pkixTempResult; \
|
|
pkixTempResult = NULL; \
|
|
} \
|
|
}
|
|
|
|
|
|
#define PKIX_ERROR_RECEIVED \
|
|
(pkixErrorReceived || pkixErrorResult || pkixTempErrorReceived || \
|
|
pkixErrorList)
|
|
|
|
#define PKIX_INCREF(obj) \
|
|
do { \
|
|
if (obj){ \
|
|
pkixTempResult = PKIX_PL_Object_IncRef \
|
|
((PKIX_PL_Object *)(obj), plContext); \
|
|
if (pkixTempResult) { \
|
|
PKIX_DoAddError(&stdVars, pkixTempResult, plContext); \
|
|
pkixTempResult = NULL; \
|
|
goto cleanup; \
|
|
} \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_FREE(obj) \
|
|
do { \
|
|
if (obj) { \
|
|
pkixTempResult = PKIX_PL_Free((obj), plContext); \
|
|
if (pkixTempResult) { \
|
|
PKIX_DoAddError(&stdVars, pkixTempResult, plContext); \
|
|
pkixTempResult = NULL; \
|
|
} \
|
|
obj = NULL; \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_EXACTLY_ONE_NULL(a, b) (((a) && !(b)) || ((b) && !(a)))
|
|
|
|
/* DIGIT MACROS */
|
|
|
|
#define PKIX_ISDIGIT(c) (((c) >= '0') && ((c) <= '9'))
|
|
|
|
#define PKIX_ISXDIGIT(c) \
|
|
(PKIX_ISDIGIT(c) || ( (((c)|0x20) >= 'a') && (((c)|0x20) <= 'f') ))
|
|
|
|
#define PKIX_TOSTRING(a, b, c, d) \
|
|
do { \
|
|
int descNum; \
|
|
if ((a) != NULL) { \
|
|
pkixErrorResult = \
|
|
PKIX_PL_Object_ToString((PKIX_PL_Object *)(a), (b), (c)); \
|
|
descNum = (d); \
|
|
} else { \
|
|
pkixErrorResult = \
|
|
PKIX_PL_String_Create(PKIX_ESCASCII, "(null)", 0, (b), (c)); \
|
|
descNum = PKIX_STRINGCREATEFAILED; \
|
|
} \
|
|
PKIX_CHECK(pkixErrorResult, descNum); \
|
|
} while (0)
|
|
|
|
#define PKIX_EQUALS(a, b, c, d, e) \
|
|
do { \
|
|
if ((a) != NULL && (b) != NULL) { \
|
|
PKIX_CHECK(PKIX_PL_Object_Equals\
|
|
((PKIX_PL_Object *)(a), \
|
|
(PKIX_PL_Object*)(b), \
|
|
(c), \
|
|
(d)), \
|
|
(e)); \
|
|
} else if ((a) == NULL && (b) == NULL) { \
|
|
*(c) = PKIX_TRUE; \
|
|
} else { \
|
|
*(c) = PKIX_FALSE; \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_HASHCODE(a, b, c, d) \
|
|
do { \
|
|
if ((a) != NULL) { \
|
|
PKIX_CHECK(PKIX_PL_Object_Hashcode\
|
|
((PKIX_PL_Object *)(a), (b), (c)), (d)); \
|
|
} else { \
|
|
*(b) = 0; \
|
|
} \
|
|
} while (0)
|
|
|
|
#define PKIX_DUPLICATE(a, b, c, d) \
|
|
do { \
|
|
if ((a) != NULL) { \
|
|
PKIX_CHECK(PKIX_PL_Object_Duplicate\
|
|
((PKIX_PL_Object *)(a), \
|
|
(PKIX_PL_Object **)(b), \
|
|
(c)), \
|
|
(d)); \
|
|
} else { \
|
|
*(b) = (a); \
|
|
} \
|
|
} while (0)
|
|
|
|
/*
|
|
* DEBUG MACROS
|
|
*
|
|
* Each type has an associated debug flag, which can
|
|
* be set on the compiler line using "-D<debugflag>". For convenience,
|
|
* "-DPKIX_DEBUGALL" turns on debug for all the components.
|
|
*
|
|
* If a type's debug flag is defined, then its two associated macros
|
|
* are defined: PKIX_type_DEBUG(expr) and PKIX_type_DEBUG_ARG(expr, arg),
|
|
* which call PKIX_DEBUG(expr) and PKIX_DEBUG_ARG(expr, arg) respectively,
|
|
* which, in turn, enable standard and consistently formatted output.
|
|
*
|
|
* If a type's debug flag is not defined, the two associated macros
|
|
* are defined as a NO-OP. As such, any PKIX_type_DEBUG or PKIX_type_DEBUG_ARG
|
|
* macros for an undefined type will be stripped from the code during
|
|
* pre-processing, thereby reducing code size.
|
|
*/
|
|
|
|
#ifdef PKIX_DEBUGALL
|
|
#define PKIX_REFCOUNTDEBUG 1
|
|
#define PKIX_MEMDEBUG 1
|
|
#define PKIX_MUTEXDEBUG 1
|
|
#define PKIX_OBJECTDEBUG 1
|
|
#define PKIX_STRINGDEBUG 1
|
|
#define PKIX_OIDDEBUG 1
|
|
#define PKIX_LISTDEBUG 1
|
|
#define PKIX_ERRORDEBUG 1
|
|
#define PKIX_BYTEARRAYDEBUG 1
|
|
#define PKIX_RWLOCKDEBUG 1
|
|
#define PKIX_BIGINTDEBUG 1
|
|
#define PKIX_HASHTABLEDEBUG 1
|
|
#define PKIX_X500NAMEDEBUG 1
|
|
#define PKIX_GENERALNAMEDEBUG 1
|
|
#define PKIX_PUBLICKEYDEBUG 1
|
|
#define PKIX_CERTDEBUG 1
|
|
#define PKIX_HTTPCLIENTDEBUG 1
|
|
#define PKIX_DATEDEBUG 1
|
|
#define PKIX_TRUSTANCHORDEBUG 1
|
|
#define PKIX_PROCESSINGPARAMSDEBUG 1
|
|
#define PKIX_VALIDATEPARAMSDEBUG 1
|
|
#define PKIX_VALIDATERESULTDEBUG 1
|
|
#define PKIX_VALIDATEDEBUG 1
|
|
#define PKIX_CERTCHAINCHECKERDEBUG 1
|
|
#define PKIX_REVOCATIONCHECKERDEBUG 1
|
|
#define PKIX_CERTSELECTORDEBUG 1
|
|
#define PKIX_COMCERTSELPARAMSDEBUG 1
|
|
#define PKIX_TARGETCERTCHECKERSTATEDEBUG 1
|
|
#define PKIX_INITIALIZEPARAMSDEBUG 1
|
|
#define PKIX_CERTBASICCONSTRAINTSDEBUG 1
|
|
#define PKIX_CERTNAMECONSTRAINTSDEBUG 1
|
|
#define PKIX_CERTNAMECONSTRAINTSCHECKERSTATEDEBUG 1
|
|
#define PKIX_SUBJALTNAMECHECKERSTATEDEBUG 1
|
|
|
|
#define PKIX_CERTPOLICYQUALIFIERDEBUG 1
|
|
#define PKIX_CERTPOLICYINFODEBUG 1
|
|
#define PKIX_CERTPOLICYNODEDEBUG 1
|
|
#define PKIX_CERTPOLICYCHECKERSTATEDEBUG 1
|
|
#define PKIX_LIFECYCLEDEBUG 1
|
|
#define PKIX_BASICCONSTRAINTSCHECKERSTATEDEBUG 1
|
|
#define PKIX_CRLDEBUG 1
|
|
#define PKIX_CRLENTRYDEBUG 1
|
|
#define PKIX_CRLSELECTORDEBUG 1
|
|
#define PKIX_COMCRLSELPARAMSDEBUG 1
|
|
#define PKIX_CERTSTOREDEBUG 1
|
|
#define PKIX_COLLECTIONCERTSTORECONTEXTDEBUG 1
|
|
#define PKIX_DEFAULTCRLCHECKERSTATEDEBUG 1
|
|
#define PKIX_CERTPOLICYMAPDEBUG 1
|
|
#define PKIX_BUILDDEBUG 1
|
|
#define PKIX_BUILDRESULTDEBUG 1
|
|
#define PKIX_FORWARDBUILDERSTATEDEBUG 1
|
|
#define PKIX_SIGNATURECHECKERSTATEDEBUG 1
|
|
#define PKIX_USERDEFINEDMODULESDEBUG 1
|
|
#define PKIX_CONTEXTDEBUG 1
|
|
#define PKIX_DEFAULTREVOCATIONCHECKERDEBUG 1
|
|
#define PKIX_LDAPREQUESTDEBUG 1
|
|
#define PKIX_LDAPRESPONSEDEBUG 1
|
|
#define PKIX_LDAPCLIENTDEBUG 1
|
|
#define PKIX_LDAPDEFAULTCLIENTDEBUG 1
|
|
#define PKIX_SOCKETDEBUG 1
|
|
#define PKIX_RESOURCELIMITSDEBUG 1
|
|
#define PKIX_LOGGERDEBUG 1
|
|
#define PKIX_MONITORLOCKDEBUG 1
|
|
#define PKIX_INFOACCESSDEBUG 1
|
|
#define PKIX_AIAMGRDEBUG 1
|
|
#define PKIX_OCSPCHECKERDEBUG 1
|
|
#define PKIX_OCSPREQUESTDEBUG 1
|
|
#define PKIX_OCSPRESPONSEDEBUG 1
|
|
#define PKIX_HTTPDEFAULTCLIENTDEBUG 1
|
|
#define PKIX_HTTPCERTSTORECONTEXTDEBUG 1
|
|
#define PKIX_VERIFYNODEDEBUG 1
|
|
#endif
|
|
|
|
/*
|
|
* XXX Both PKIX_DEBUG and PKIX_DEBUG_ARG currently use printf.
|
|
* This needs to be replaced with Loggers.
|
|
*/
|
|
|
|
#ifdef DEBUG
|
|
#define PKIX_DEBUG(expr) \
|
|
do { \
|
|
_PKIX_DEBUG_TRACE(pkixLoggersErrors, expr, PKIX_LOGGER_LEVEL_DEBUG); \
|
|
(void) fprintf(stderr, "(%s: ", myFuncName); \
|
|
(void) fprintf(stderr, expr); \
|
|
} while (0)
|
|
#else
|
|
#define PKIX_DEBUG(expr)
|
|
#endif
|
|
|
|
/* Logging doesn't support DEBUG with ARG: cannot convert control and arg */
|
|
#define PKIX_DEBUG_ARG(expr, arg) \
|
|
do { \
|
|
(void) printf("(%s: ", myFuncName); \
|
|
(void) printf(expr, arg); \
|
|
} while (0)
|
|
|
|
#if PKIX_FATALDEBUG
|
|
#define PKIX_FATAL_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_FATAL_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_FATAL_DEBUG(expr)
|
|
#define PKIX_FATAL_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_REFCOUNTDEBUG
|
|
#define PKIX_REF_COUNT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_REF_COUNT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_REF_COUNT_DEBUG(expr)
|
|
#define PKIX_REF_COUNT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_MEMDEBUG
|
|
#define PKIX_MEM_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_MEM_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_MEM_DEBUG(expr)
|
|
#define PKIX_MEM_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_MUTEXDEBUG
|
|
#define PKIX_MUTEX_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_MUTEX_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_MUTEX_DEBUG(expr)
|
|
#define PKIX_MUTEX_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_OBJECTDEBUG
|
|
#define PKIX_OBJECT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_OBJECT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_OBJECT_DEBUG(expr)
|
|
#define PKIX_OBJECT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_ERRORDEBUG
|
|
#define PKIX_ERROR_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_ERROR_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_ERROR_DEBUG(expr)
|
|
#define PKIX_ERROR_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_STRINGDEBUG
|
|
#define PKIX_STRING_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_STRING_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_STRING_DEBUG(expr)
|
|
#define PKIX_STRING_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_OIDDEBUG
|
|
#define PKIX_OID_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_OID_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_OID_DEBUG(expr)
|
|
#define PKIX_OID_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_LISTDEBUG
|
|
#define PKIX_LIST_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_LIST_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_LIST_DEBUG(expr)
|
|
#define PKIX_LIST_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_RWLOCKDEBUG
|
|
#define PKIX_RWLOCK_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_RWLOCK_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_RWLOCK_DEBUG(expr)
|
|
#define PKIX_RWLOCK_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_BYTEARRAYDEBUG
|
|
#define PKIX_BYTEARRAY_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_BYTEARRAY_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_BYTEARRAY_DEBUG(expr)
|
|
#define PKIX_BYTEARRAY_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_HASHTABLEDEBUG
|
|
#define PKIX_HASHTABLE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_HASHTABLE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_HASHTABLE_DEBUG(expr)
|
|
#define PKIX_HASHTABLE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_X500NAMEDEBUG
|
|
#define PKIX_X500NAME_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_X500NAME_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_X500NAME_DEBUG(expr)
|
|
#define PKIX_X500NAME_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_GENERALNAMEDEBUG
|
|
#define PKIX_GENERALNAME_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_GENERALNAME_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_GENERALNAME_DEBUG(expr)
|
|
#define PKIX_GENERALNAME_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_PUBLICKEYDEBUG
|
|
#define PKIX_PUBLICKEY_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_PUBLICKEY_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_PUBLICKEY_DEBUG(expr)
|
|
#define PKIX_PUBLICKEY_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTDEBUG
|
|
#define PKIX_CERT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERT_DEBUG(expr)
|
|
#define PKIX_CERT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CRLDPDEBUG
|
|
#define PKIX_CRLDP_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CRLDP_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CRLDP_DEBUG(expr)
|
|
#define PKIX_CRLDP_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_HTTPCLIENTDEBUG
|
|
#define PKIX_HTTPCLIENT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_HTTPCLIENT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_HTTPCLIENT_DEBUG(expr)
|
|
#define PKIX_HTTPCLIENT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_BIGINTDEBUG
|
|
#define PKIX_BIGINT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_BIGINT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_BIGINT_DEBUG(expr)
|
|
#define PKIX_BIGINT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_DATEDEBUG
|
|
#define PKIX_DATE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_DATE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_DATE_DEBUG(expr)
|
|
#define PKIX_DATE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_TRUSTANCHORDEBUG
|
|
#define PKIX_TRUSTANCHOR_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_TRUSTANCHOR_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_TRUSTANCHOR_DEBUG(expr)
|
|
#define PKIX_TRUSTANCHOR_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_PROCESSINGPARAMSDEBUG
|
|
#define PKIX_PROCESSINGPARAMS_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_PROCESSINGPARAMS_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_PROCESSINGPARAMS_DEBUG(expr)
|
|
#define PKIX_PROCESSINGPARAMS_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_VALIDATEPARAMSDEBUG
|
|
#define PKIX_VALIDATEPARAMS_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_VALIDATEPARAMS_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_VALIDATEPARAMS_DEBUG(expr)
|
|
#define PKIX_VALIDATEPARAMS_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_VALIDATERESULTDEBUG
|
|
#define PKIX_VALIDATERESULT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_VALIDATERESULT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_VALIDATERESULT_DEBUG(expr)
|
|
#define PKIX_VALIDATERESULT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_VALIDATEDEBUG
|
|
#define PKIX_VALIDATE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_VALIDATE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_VALIDATE_DEBUG(expr)
|
|
#define PKIX_VALIDATE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_BUILDDEBUG
|
|
#define PKIX_BUILD_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_BUILD_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_BUILD_DEBUG(expr)
|
|
#define PKIX_BUILD_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTCHAINCHECKERDEBUG
|
|
#define PKIX_CERTCHAINCHECKER_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTCHAINCHECKER_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTCHAINCHECKER_DEBUG(expr)
|
|
#define PKIX_CERTCHAINCHECKER_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_REVOCATIONCHECKERDEBUG
|
|
#define PKIX_REVOCATIONCHECKER_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_REVOCATIONCHECKER_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_REVOCATIONCHECKER_DEBUG(expr)
|
|
#define PKIX_REVOCATIONCHECKER_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_REVOCATIONMETHODDEBUG
|
|
#define PKIX_REVOCATIONMETHOD_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_REVOCATIONMETHOD_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_REVOCATIONMETHOD_DEBUG(expr)
|
|
#define PKIX_REVOCATIONMETHOD_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTSELECTORDEBUG
|
|
#define PKIX_CERTSELECTOR_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTSELECTOR_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTSELECTOR_DEBUG(expr)
|
|
#define PKIX_CERTSELECTOR_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_COMCERTSELPARAMSDEBUG
|
|
#define PKIX_COMCERTSELPARAMS_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_COMCERTSELPARAMS_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_COMCERTSELPARAMS_DEBUG(expr)
|
|
#define PKIX_COMCERTSELPARAMS_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_TARGETCERTCHECKERSTATEDEBUG
|
|
#define PKIX_TARGETCERTCHECKERSTATE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_TARGETCERTCHECKERSTATE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_TARGETCERTCHECKERSTATE_DEBUG(expr)
|
|
#define PKIX_TARGETCERTCHECKERSTATE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_BASICCONSTRAINTSCHECKERSTATEDEBUG
|
|
#define PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG(expr)
|
|
#define PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_INITIALIZEPARAMSDEBUG
|
|
#define PKIX_INITIALIZEPARAMS_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_INITIALIZEPARAMS_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_INITIALIZEPARAMS_DEBUG(expr)
|
|
#define PKIX_INITIALIZEPARAMS_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTBASICCONSTRAINTSDEBUG
|
|
#define PKIX_CERTBASICCONSTRAINTS_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTBASICCONSTRAINTS_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTBASICCONSTRAINTS_DEBUG(expr)
|
|
#define PKIX_CERTBASICCONSTRAINTS_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTNAMECONSTRAINTSDEBUG
|
|
#define PKIX_CERTNAMECONSTRAINTS_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTNAMECONSTRAINTS_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTNAMECONSTRAINTS_DEBUG(expr)
|
|
#define PKIX_CERTNAMECONSTRAINTS_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTNAMECONSTRAINTSCHECKERSTATEDEBUG
|
|
#define PKIX_CERTNAMECONSTRAINTSCHECKERSTATE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTNAMECONSTRAINTSCHECKERSTATE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTNAMECONSTRAINTSCHECKERSTATE_DEBUG(expr)
|
|
#define PKIX_CERTNAMECONSTRAINTSCHECKERSTATE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_SUBJALTNAMECHECKERSTATEDEBUG
|
|
#define PKIX_SUBJALTNAMECHECKERSTATE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_SUBJALTNAMECHECKERSTATE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_SUBJALTNAMECHECKERSTATE_DEBUG(expr)
|
|
#define PKIX_SUBJALTNAMECHECKERSTATE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTPOLICYQUALIFIERDEBUG
|
|
#define PKIX_CERTPOLICYQUALIFIER_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTPOLICYQUALIFIER_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTPOLICYQUALIFIER_DEBUG(expr)
|
|
#define PKIX_CERTPOLICYQUALIFIER_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTPOLICYINFODEBUG
|
|
#define PKIX_CERTPOLICYINFO_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTPOLICYINFO_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTPOLICYINFO_DEBUG(expr)
|
|
#define PKIX_CERTPOLICYINFO_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTPOLICYNODEDEBUG
|
|
#define PKIX_CERTPOLICYNODE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTPOLICYNODE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTPOLICYNODE_DEBUG(expr)
|
|
#define PKIX_CERTPOLICYNODE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTPOLICYCHECKERSTATEDEBUG
|
|
#define PKIX_CERTPOLICYCHECKERSTATE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTPOLICYCHECKERSTATE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTPOLICYCHECKERSTATE_DEBUG(expr)
|
|
#define PKIX_CERTPOLICYCHECKERSTATE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_LIFECYCLEDEBUG
|
|
#define PKIX_LIFECYCLE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_LIFECYCLE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_LIFECYCLE_DEBUG(expr)
|
|
#define PKIX_LIFECYCLE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_BASICCONSTRAINTSCHECKERSTATEDEBUG
|
|
#define PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG(expr)
|
|
#define PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CRLDEBUG
|
|
#define PKIX_CRL_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CRL_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CRL_DEBUG(expr)
|
|
#define PKIX_CRL_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CRLENTRYDEBUG
|
|
#define PKIX_CRLENTRY_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CRLENTRY_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CRLENTRY_DEBUG(expr)
|
|
#define PKIX_CRLENTRY_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CRLSELECTORDEBUG
|
|
#define PKIX_CRLSELECTOR_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CRLSELECTOR_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CRLSELECTOR_DEBUG(expr)
|
|
#define PKIX_CRLSELECTOR_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_COMCRLSELPARAMSDEBUG
|
|
#define PKIX_COMCRLSELPARAMS_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_COMCRLSELPARAMS_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_COMCRLSELPARAMS_DEBUG(expr)
|
|
#define PKIX_COMCRLSELPARAMS_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTSTOREDEBUG
|
|
#define PKIX_CERTSTORE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTSTORE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTSTORE_DEBUG(expr)
|
|
#define PKIX_CERTSTORE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_COLLECTIONCERTSTORECONTEXTDEBUG
|
|
#define PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG(expr)
|
|
#define PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CRLCHECKERDEBUG
|
|
#define PKIX_CRLCHECKER_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CRLCHECKER_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CRLCHECKER_DEBUG(expr)
|
|
#define PKIX_CRLCHECKER_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTPOLICYMAPDEBUG
|
|
#define PKIX_CERTPOLICYMAP_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTPOLICYMAP_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTPOLICYMAP_DEBUG(expr)
|
|
#define PKIX_CERTPOLICYMAP_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_BUILDRESULTDEBUG
|
|
#define PKIX_BUILDRESULT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_BUILDRESULT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_BUILDRESULT_DEBUG(expr)
|
|
#define PKIX_BUILDRESULT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_FORWARDBUILDERSTATEDEBUG
|
|
#define PKIX_FORWARDBUILDERSTATE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_FORWARDBUILDERSTATE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_FORWARDBUILDERSTATE_DEBUG(expr)
|
|
#define PKIX_FORWARDBUILDERSTATE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_SIGNATURECHECKERSTATEDEBUG
|
|
#define PKIX_SIGNATURECHECKERSTATE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_SIGNATURECHECKERSTATE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_SIGNATURECHECKERSTATE_DEBUG(expr)
|
|
#define PKIX_SIGNATURECHECKERSTATE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_USERDEFINEDMODULESDEBUG
|
|
#define PKIX_USERDEFINEDMODULES_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_USERDEFINEDMODULES_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_USERDEFINEDMODULES_DEBUG(expr)
|
|
#define PKIX_USERDEFINEDMODULES_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CONTEXTDEBUG
|
|
#define PKIX_CONTEXT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CONTEXT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CONTEXT_DEBUG(expr)
|
|
#define PKIX_CONTEXT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_REVOCATIONCHECKERDEBUG
|
|
#define PKIX_REVOCATIONCHECKER_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_REVOCATIONCHECKER_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_REVOCATIONCHECKER_DEBUG(expr)
|
|
#define PKIX_REVOCATIONCHECKER_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_LDAPREQUESTDEBUG
|
|
#define PKIX_LDAPREQUEST_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_LDAPREQUEST_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_LDAPREQUEST_DEBUG(expr)
|
|
#define PKIX_LDAPREQUEST_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_LDAPRESPONSEDEBUG
|
|
#define PKIX_LDAPRESPONSE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_LDAPRESPONSE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_LDAPRESPONSE_DEBUG(expr)
|
|
#define PKIX_LDAPRESPONSE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_LDAPCLIENTDEBUG
|
|
#define PKIX_LDAPCLIENT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_LDAPCLIENT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_LDAPCLIENT_DEBUG(expr)
|
|
#define PKIX_LDAPCLIENT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_LDAPDEFAULTCLIENTDEBUG
|
|
#define PKIX_LDAPDEFAULTCLIENT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_LDAPDEFAULTCLIENT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_LDAPDEFAULTCLIENT_DEBUG(expr)
|
|
#define PKIX_LDAPDEFAULTCLIENT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_SOCKETDEBUG
|
|
#define PKIX_SOCKET_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_SOCKET_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_SOCKET_DEBUG(expr)
|
|
#define PKIX_SOCKET_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_RESOURCELIMITSDEBUG
|
|
#define PKIX_RESOURCELIMITS_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_RESOURCELIMITS_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_RESOURCELIMITS_DEBUG(expr)
|
|
#define PKIX_RESOURCELIMITS_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_LOGGERDEBUG
|
|
#define PKIX_LOGGER_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_LOGGER_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_LOGGER_DEBUG(expr)
|
|
#define PKIX_LOGGER_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_MONITORLOCKDEBUG
|
|
#define PKIX_MONITORLOCK_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_MONITORLOCK_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_MONITORLOCK_DEBUG(expr)
|
|
#define PKIX_MONITORLOCK_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_INFOACCESSDEBUG
|
|
#define PKIX_INFOACCESS_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_INFOACCESS_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_INFOACCESS_DEBUG(expr)
|
|
#define PKIX_INFOACCESS_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_AIAMGRDEBUG
|
|
#define PKIX_AIAMGR_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_AIAMGR_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_AIAMGR_DEBUG(expr)
|
|
#define PKIX_AIAMGR_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_OCSPCHECKERDEBUG
|
|
#define PKIX_OCSPCHECKER_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_OCSPCHECKER_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_OCSPCHECKER_DEBUG(expr)
|
|
#define PKIX_OCSPCHECKER_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_OCSPCERTIDDEBUG
|
|
#define PKIX_OCSPCERTID_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_OCSPCERTID_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_OCSPCERTID_DEBUG(expr)
|
|
#define PKIX_OCSPCERTID_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_OCSPREQUESTDEBUG
|
|
#define PKIX_OCSPREQUEST_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_OCSPREQUEST_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_OCSPREQUEST_DEBUG(expr)
|
|
#define PKIX_OCSPREQUEST_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_OCSPRESPONSEDEBUG
|
|
#define PKIX_OCSPRESPONSE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_OCSPRESPONSE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_OCSPRESPONSE_DEBUG(expr)
|
|
#define PKIX_OCSPRESPONSE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_HTTPDEFAULTCLIENTDEBUG
|
|
#define PKIX_HTTPDEFAULTCLIENT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_HTTPDEFAULTCLIENT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_HTTPDEFAULTCLIENT_DEBUG(expr)
|
|
#define PKIX_HTTPDEFAULTCLIENT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_HTTPCERTSTORECONTEXTDEBUG
|
|
#define PKIX_HTTPCERTSTORECONTEXT_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_HTTPCERTSTORECONTEXT_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_HTTPCERTSTORECONTEXT_DEBUG(expr)
|
|
#define PKIX_HTTPCERTSTORECONTEXT_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_VERIFYNODEDEBUG
|
|
#define PKIX_VERIFYNODE_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_VERIFYNODE_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_VERIFYNODE_DEBUG(expr)
|
|
#define PKIX_VERIFYNODE_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_EKUCHECKER
|
|
#define PKIX_EKUCHECKER_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_EKUCHECKER_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_EKUCHECKER_DEBUG(expr)
|
|
#define PKIX_EKUCHECKER_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
#if PKIX_CERTVFYPKIXDEBUG
|
|
#define PKIX_CERTVFYPKIX_DEBUG(expr) \
|
|
PKIX_DEBUG(expr)
|
|
#define PKIX_CERTVFYPKIX_DEBUG_ARG(expr, arg) \
|
|
PKIX_DEBUG_ARG(expr, arg)
|
|
#else
|
|
#define PKIX_CERTVFYPKIX_DEBUG(expr)
|
|
#define PKIX_CERTVFYPKIX_DEBUG_ARG(expr, arg)
|
|
#endif
|
|
|
|
/*
|
|
* All object types register themselves with the system using a
|
|
* pkix_ClassTable_Entry, which consists of a set of functions for that
|
|
* type and an ASCII string (char *) which is used by the default
|
|
* ToStringCallback (if necessary). System types register themselves directly
|
|
* when their respective PKIX_"type"_RegisterSelf functions are called.
|
|
* User-defined types can be registered using PKIX_PL_Object_RegisterType.
|
|
* (see comments in pkix_pl_system.h)
|
|
*/
|
|
|
|
typedef struct pkix_ClassTable_EntryStruct pkix_ClassTable_Entry;
|
|
struct pkix_ClassTable_EntryStruct {
|
|
char *description;
|
|
PKIX_UInt32 objCounter;
|
|
PKIX_UInt32 typeObjectSize;
|
|
PKIX_PL_DestructorCallback destructor;
|
|
PKIX_PL_EqualsCallback equalsFunction;
|
|
PKIX_PL_HashcodeCallback hashcodeFunction;
|
|
PKIX_PL_ToStringCallback toStringFunction;
|
|
PKIX_PL_ComparatorCallback comparator;
|
|
PKIX_PL_DuplicateCallback duplicateFunction;
|
|
};
|
|
|
|
/*
|
|
* PKIX_ERRORCLASSNAMES is an array of strings, with each string holding a
|
|
* descriptive name for an error code. This is used by the default
|
|
* PKIX_PL_Error_ToString function.
|
|
*/
|
|
extern const char *PKIX_ERRORCLASSNAMES[PKIX_NUMERRORCLASSES];
|
|
|
|
#define MAX_STACK_DEPTH 1000
|
|
|
|
extern PRLogModuleInfo *pkixLog;
|
|
|
|
#define PKIX_MAGIC_HEADER LL_INIT(0xFEEDC0FF, 0xEEFACADE)
|
|
#define PKIX_MAGIC_HEADER_DESTROYED LL_INIT(0xBAADF00D, 0xDEADBEEF)
|
|
|
|
/* see source file for function documentation */
|
|
|
|
PKIX_Error *
|
|
pkix_IsCertSelfIssued(
|
|
PKIX_PL_Cert *cert,
|
|
PKIX_Boolean *pSelfIssued,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_Throw(
|
|
PKIX_ERRORCLASS errClass,
|
|
const char *funcName,
|
|
PKIX_ERRORCODE errorTextCode,
|
|
PKIX_ERRORCLASS overrideClass,
|
|
PKIX_Error *cause,
|
|
PKIX_Error **pError,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_CheckTypes(
|
|
PKIX_PL_Object *first,
|
|
PKIX_PL_Object *second,
|
|
PKIX_UInt32 type,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_CheckType(
|
|
PKIX_PL_Object *object,
|
|
PKIX_UInt32 type,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_hash(
|
|
const unsigned char *bytes,
|
|
PKIX_UInt32 length,
|
|
PKIX_UInt32 *hash,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_duplicateImmutable(
|
|
PKIX_PL_Object *object,
|
|
PKIX_PL_Object **pNewObject,
|
|
void *plContext);
|
|
|
|
PKIX_UInt32
|
|
pkix_countArray(void **array);
|
|
|
|
PKIX_UInt32
|
|
pkix_hex2i(char c);
|
|
|
|
char
|
|
pkix_i2hex(char c);
|
|
|
|
PKIX_Boolean
|
|
pkix_isPlaintext(unsigned char c, PKIX_Boolean debug);
|
|
|
|
PKIX_Error *
|
|
pkix_CacheCertChain_Lookup(
|
|
PKIX_PL_Cert* targetCert,
|
|
PKIX_List* anchors,
|
|
PKIX_PL_Date *testDate,
|
|
PKIX_Boolean *pFound,
|
|
PKIX_BuildResult **pBuildResult,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_CacheCertChain_Remove(
|
|
PKIX_PL_Cert* targetCert,
|
|
PKIX_List* anchors,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_CacheCertChain_Add(
|
|
PKIX_PL_Cert* targetCert,
|
|
PKIX_List* anchors,
|
|
PKIX_PL_Date *validityDate,
|
|
PKIX_BuildResult *buildResult,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_CacheCert_Lookup(
|
|
PKIX_CertStore *store,
|
|
PKIX_ComCertSelParams *certSelParams,
|
|
PKIX_PL_Date *testDate,
|
|
PKIX_Boolean *pFound,
|
|
PKIX_List** pCerts,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_CacheCert_Add(
|
|
PKIX_CertStore *store,
|
|
PKIX_ComCertSelParams *certSelParams,
|
|
PKIX_List* certs,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_CacheCrlEntry_Lookup(
|
|
PKIX_CertStore *store,
|
|
PKIX_PL_X500Name *certIssuer,
|
|
PKIX_PL_BigInt *certSerialNumber,
|
|
PKIX_Boolean *pFound,
|
|
PKIX_List** pCrlEntryList,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_CacheCrlEntry_Add(
|
|
PKIX_CertStore *store,
|
|
PKIX_PL_X500Name *certIssuer,
|
|
PKIX_PL_BigInt *certSerialNumber,
|
|
PKIX_List* crlEntryList,
|
|
void *plContext);
|
|
|
|
#ifdef PR_LOGGING
|
|
void
|
|
pkix_trace_dump_cert(
|
|
const char *info,
|
|
PKIX_PL_Cert *cert,
|
|
void *plContext);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _PKIX_TOOLS_H */
|