static void testGetSetRevocationCheckers( PKIX_ProcessingParams *goodObject, PKIX_ProcessingParams *equalObject){ PKIX_RevocationChecker *checker = NULL; PKIX_List *setCheckersList = NULL; PKIX_List *getCheckersList = NULL; PKIX_PL_Date *date = NULL; char *asciiDate = "040329134847Z"; PKIX_TEST_STD_VARS(); subTest("PKIX_ProcessingParams_Get/SetRevocationCheckers"); date = createDate(asciiDate, plContext); PKIX_TEST_EXPECT_NO_ERROR(PKIX_RevocationChecker_Create (userChecker2cb, (PKIX_PL_Object *) date, &checker, plContext)); PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create (&setCheckersList, plContext)); PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem (setCheckersList, (PKIX_PL_Object *) checker, plContext)); PKIX_TEST_DECREF_BC(checker); PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationCheckers (goodObject, setCheckersList, plContext)); PKIX_TEST_EXPECT_NO_ERROR(PKIX_RevocationChecker_Create (userChecker2cb, (PKIX_PL_Object *) date, &checker, plContext)); PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_AddRevocationChecker (goodObject, checker, plContext)); PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_GetRevocationCheckers (goodObject, &getCheckersList, plContext)); cleanup: PKIX_TEST_DECREF_AC(setCheckersList); PKIX_TEST_DECREF_AC(getCheckersList); PKIX_TEST_DECREF_AC(date); PKIX_TEST_DECREF_BC(checker); PKIX_TEST_RETURN(); }
PKIX_Error * PKIX_OcspChecker_Initialize( PKIX_PL_Date *validityTime, void *passwordInfo, void *responder, PKIX_RevocationChecker **pChecker, void *plContext) { PKIX_OcspChecker *oChecker = NULL; PKIX_ENTER(OCSPCHECKER, "PKIX_OcspChecker_Initialize"); PKIX_NULLCHECK_ONE(pChecker); PKIX_CHECK(pkix_OcspChecker_Create (validityTime, passwordInfo, responder, &oChecker, plContext), PKIX_OCSPCHECKERCREATEFAILED); PKIX_CHECK(PKIX_RevocationChecker_Create (pkix_OcspChecker_Check, (PKIX_PL_Object *)oChecker, pChecker, plContext), PKIX_REVOCATIONCHECKERCREATEFAILED); cleanup: PKIX_DECREF(oChecker); PKIX_RETURN(OCSPCHECKER); }
/* * FUNCTION: pkix_RevocationChecker_Duplicate * (see comments for PKIX_PL_DuplicateCallback in pkix_pl_system.h) */ static PKIX_Error * pkix_RevocationChecker_Duplicate( PKIX_PL_Object *object, PKIX_PL_Object **pNewObject, void *plContext) { PKIX_RevocationChecker *checker = NULL; PKIX_RevocationChecker *checkerDuplicate = NULL; PKIX_List *dupLeafList = NULL; PKIX_List *dupChainList = NULL; PKIX_ENTER(REVOCATIONCHECKER, "pkix_RevocationChecker_Duplicate"); PKIX_NULLCHECK_TWO(object, pNewObject); PKIX_CHECK(pkix_CheckType (object, PKIX_REVOCATIONCHECKER_TYPE, plContext), PKIX_OBJECTNOTCERTCHAINCHECKER); checker = (PKIX_RevocationChecker *)object; if (checker->leafMethodList){ PKIX_CHECK(PKIX_PL_Object_Duplicate ((PKIX_PL_Object *)checker->leafMethodList, (PKIX_PL_Object **)&dupLeafList, plContext), PKIX_OBJECTDUPLICATEFAILED); } if (checker->chainMethodList){ PKIX_CHECK(PKIX_PL_Object_Duplicate ((PKIX_PL_Object *)checker->chainMethodList, (PKIX_PL_Object **)&dupChainList, plContext), PKIX_OBJECTDUPLICATEFAILED); } PKIX_CHECK( PKIX_RevocationChecker_Create(checker->leafMethodListFlags, checker->chainMethodListFlags, &checkerDuplicate, plContext), PKIX_REVOCATIONCHECKERCREATEFAILED); checkerDuplicate->leafMethodList = dupLeafList; checkerDuplicate->chainMethodList = dupChainList; dupLeafList = NULL; dupChainList = NULL; *pNewObject = (PKIX_PL_Object *)checkerDuplicate; cleanup: PKIX_DECREF(dupLeafList); PKIX_DECREF(dupChainList); PKIX_RETURN(REVOCATIONCHECKER); }
/* * FUNCTION: pkix_RevocationChecker_Duplicate * (see comments for PKIX_PL_DuplicateCallback in pkix_pl_system.h) */ static PKIX_Error * pkix_RevocationChecker_Duplicate( PKIX_PL_Object *object, PKIX_PL_Object **pNewObject, void *plContext) { PKIX_RevocationChecker *checker = NULL; PKIX_RevocationChecker *checkerDuplicate = NULL; PKIX_PL_Object *contextDuplicate = NULL; PKIX_ENTER(REVOCATIONCHECKER, "pkix_RevocationChecker_Duplicate"); PKIX_NULLCHECK_TWO(object, pNewObject); PKIX_CHECK(pkix_CheckType (object, PKIX_REVOCATIONCHECKER_TYPE, plContext), PKIX_OBJECTNOTCERTCHAINCHECKER); checker = (PKIX_RevocationChecker *)object; if (checker->revCheckerContext){ PKIX_CHECK(PKIX_PL_Object_Duplicate ((PKIX_PL_Object *)checker->revCheckerContext, (PKIX_PL_Object **)&contextDuplicate, plContext), PKIX_OBJECTDUPLICATEFAILED); } PKIX_CHECK(PKIX_RevocationChecker_Create (checker->checkCallback, contextDuplicate, &checkerDuplicate, plContext), PKIX_REVOCATIONCHECKERCREATEFAILED); *pNewObject = (PKIX_PL_Object *)checkerDuplicate; cleanup: PKIX_DECREF(contextDuplicate); PKIX_RETURN(REVOCATIONCHECKER); }