Esempio n. 1
0
static void
createTrustAnchors(
    char *dirName,
    char *goodInput,
    PKIX_TrustAnchor **goodObject,
    PKIX_TrustAnchor **equalObject,
    PKIX_TrustAnchor **diffObject)
{
    subTest("PKIX_TrustAnchor_CreateWithNameKeyPair <goodObject>");
    *goodObject = createTrustAnchor(dirName, goodInput, PKIX_FALSE, plContext);

    subTest("PKIX_TrustAnchor_CreateWithNameKeyPair <equalObject>");
    *equalObject = createTrustAnchor(dirName, goodInput, PKIX_FALSE, plContext);

    subTest("PKIX_TrustAnchor_CreateWithCert <diffObject>");
    *diffObject = createTrustAnchor(dirName, goodInput, PKIX_TRUE, plContext);
}
PKIX_ValidateResult *
createValidateResult(
        char *dirName,
        char *anchorFileName,
        char *pubKeyCertFileName,
        void *plContext)
{

        PKIX_TrustAnchor *anchor = NULL;
        PKIX_ValidateResult *valResult = NULL;
        PKIX_PL_Cert *cert = NULL;
        PKIX_PL_PublicKey *pubKey = NULL;

        PKIX_TEST_STD_VARS();

        anchor = createTrustAnchor
                    (dirName, anchorFileName, PKIX_FALSE, plContext);
        cert = createCert(dirName, pubKeyCertFileName, plContext);

        PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey
                                    (cert, &pubKey, plContext));

        PKIX_TEST_EXPECT_NO_ERROR
                (pkix_ValidateResult_Create
                (pubKey, anchor, NULL, &valResult, plContext));

cleanup:

        if (PKIX_TEST_ERROR_RECEIVED){
                PKIX_TEST_DECREF_AC(valResult);
        }

        PKIX_TEST_DECREF_AC(anchor);
        PKIX_TEST_DECREF_AC(cert);
        PKIX_TEST_DECREF_AC(pubKey);

        PKIX_TEST_RETURN();

        return (valResult);
}
PKIX_ProcessingParams *
createProcessingParams(
        char *dirName,
        char *firstAnchorFileName,
        char *secondAnchorFileName,
        char *dateAscii,
        PKIX_List *initialPolicies, /* List of PKIX_PL_OID */
        PKIX_Boolean isCrlEnabled,
        void *plContext)
{

        PKIX_TrustAnchor *firstAnchor = NULL;
        PKIX_TrustAnchor *secondAnchor = NULL;
        PKIX_List *anchorsList = NULL;
        PKIX_ProcessingParams *procParams = NULL;
        PKIX_PL_String *dateString = NULL;
        PKIX_PL_Date *testDate = NULL;

        PKIX_TEST_STD_VARS();

        PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchorsList, plContext));

        firstAnchor = createTrustAnchor
                (dirName, firstAnchorFileName, PKIX_FALSE, plContext);

        PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem
                                    (anchorsList,
                                    (PKIX_PL_Object *)firstAnchor,
                                    plContext));

        if (secondAnchorFileName){
                secondAnchor =
                        createTrustAnchor
                        (dirName, secondAnchorFileName, PKIX_FALSE, plContext);

                PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem
                                            (anchorsList,
                                            (PKIX_PL_Object *)secondAnchor,
                                            plContext));
        }

        PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create
                                    (anchorsList, &procParams, plContext));

        if (dateAscii){
                PKIX_TEST_EXPECT_NO_ERROR
                        (PKIX_PL_String_Create
                        (PKIX_ESCASCII,
                        dateAscii,
                        0,
                        &dateString,
                        plContext));

                PKIX_TEST_EXPECT_NO_ERROR
                        (PKIX_PL_Date_Create_UTCTime
                        (dateString, &testDate, plContext));

                PKIX_TEST_EXPECT_NO_ERROR
                        (PKIX_ProcessingParams_SetDate
                        (procParams, testDate, plContext));
        }

        PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetInitialPolicies
                (procParams, initialPolicies, plContext));

        PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled
                                    (procParams, isCrlEnabled, plContext));

cleanup:

        if (PKIX_TEST_ERROR_RECEIVED){
                PKIX_TEST_DECREF_AC(procParams);
        }

        PKIX_TEST_DECREF_AC(dateString);
        PKIX_TEST_DECREF_AC(testDate);
        PKIX_TEST_DECREF_AC(anchorsList);
        PKIX_TEST_DECREF_AC(firstAnchor);
        PKIX_TEST_DECREF_AC(secondAnchor);

        PKIX_TEST_RETURN();

        return (procParams);
}