| Index: mozilla/security/nss/lib/libpkix/pkix/results/pkix_valresult.c | 
| =================================================================== | 
| --- mozilla/security/nss/lib/libpkix/pkix/results/pkix_valresult.c	(revision 191424) | 
| +++ mozilla/security/nss/lib/libpkix/pkix/results/pkix_valresult.c	(working copy) | 
| @@ -1,442 +0,0 @@ | 
| -/* 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_valresult.c | 
| - * | 
| - * ValidateResult Object Functions | 
| - * | 
| - */ | 
| - | 
| -#include "pkix_valresult.h" | 
| - | 
| -/* --Private-Functions-------------------------------------------- */ | 
| - | 
| -/* | 
| - * FUNCTION: pkix_ValidateResult_Destroy | 
| - * (see comments for PKIX_PL_DestructorCallback in pkix_pl_system.h) | 
| - */ | 
| -static PKIX_Error * | 
| -pkix_ValidateResult_Destroy( | 
| -        PKIX_PL_Object *object, | 
| -        void *plContext) | 
| -{ | 
| -        PKIX_ValidateResult *result = NULL; | 
| - | 
| -        PKIX_ENTER(VALIDATERESULT, "pkix_ValidateResult_Destroy"); | 
| -        PKIX_NULLCHECK_ONE(object); | 
| - | 
| -        /* Check that this object is a validate result object */ | 
| -        PKIX_CHECK(pkix_CheckType(object, PKIX_VALIDATERESULT_TYPE, plContext), | 
| -                PKIX_OBJECTNOTVALIDATERESULT); | 
| - | 
| -        result = (PKIX_ValidateResult *)object; | 
| - | 
| -        PKIX_DECREF(result->anchor); | 
| -        PKIX_DECREF(result->pubKey); | 
| -        PKIX_DECREF(result->policyTree); | 
| - | 
| -cleanup: | 
| - | 
| -        PKIX_RETURN(VALIDATERESULT); | 
| -} | 
| - | 
| -/* | 
| - * FUNCTION: pkix_ValidateResult_Equals | 
| - * (see comments for PKIX_PL_EqualsCallback in pkix_pl_system.h) | 
| - */ | 
| -static PKIX_Error * | 
| -pkix_ValidateResult_Equals( | 
| -        PKIX_PL_Object *first, | 
| -        PKIX_PL_Object *second, | 
| -        PKIX_Boolean *pResult, | 
| -        void *plContext) | 
| -{ | 
| -        PKIX_UInt32 secondType; | 
| -        PKIX_Boolean cmpResult; | 
| -        PKIX_ValidateResult *firstValResult = NULL; | 
| -        PKIX_ValidateResult *secondValResult = NULL; | 
| -        PKIX_TrustAnchor *firstAnchor = NULL; | 
| -        PKIX_TrustAnchor *secondAnchor = NULL; | 
| -        PKIX_PolicyNode *firstTree = NULL; | 
| -        PKIX_PolicyNode *secondTree = NULL; | 
| - | 
| -        PKIX_ENTER(VALIDATERESULT, "pkix_ValidateResult_Equals"); | 
| -        PKIX_NULLCHECK_THREE(first, second, pResult); | 
| - | 
| -        PKIX_CHECK(pkix_CheckType(first, PKIX_VALIDATERESULT_TYPE, plContext), | 
| -                PKIX_FIRSTOBJECTNOTVALIDATERESULT); | 
| - | 
| -        PKIX_CHECK(PKIX_PL_Object_GetType(second, &secondType, plContext), | 
| -                PKIX_COULDNOTGETTYPEOFSECONDARGUMENT); | 
| - | 
| -        *pResult = PKIX_FALSE; | 
| - | 
| -        if (secondType != PKIX_VALIDATERESULT_TYPE) goto cleanup; | 
| - | 
| -        firstValResult = (PKIX_ValidateResult *)first; | 
| -        secondValResult = (PKIX_ValidateResult *)second; | 
| - | 
| -        PKIX_CHECK(PKIX_PL_Object_Equals | 
| -                ((PKIX_PL_Object *)firstValResult->pubKey, | 
| -                (PKIX_PL_Object *)secondValResult->pubKey, | 
| -                &cmpResult, | 
| -                plContext), | 
| -                PKIX_OBJECTEQUALSFAILED); | 
| - | 
| -        if (!cmpResult) goto cleanup; | 
| - | 
| -        firstAnchor = firstValResult->anchor; | 
| -        secondAnchor = secondValResult->anchor; | 
| - | 
| -        if ((firstAnchor != NULL) && (secondAnchor != NULL)) { | 
| -                PKIX_CHECK(PKIX_PL_Object_Equals | 
| -                        ((PKIX_PL_Object *)firstAnchor, | 
| -                        (PKIX_PL_Object *)secondAnchor, | 
| -                        &cmpResult, | 
| -                        plContext), | 
| -                        PKIX_OBJECTEQUALSFAILED); | 
| -        } else { | 
| -                cmpResult = (firstAnchor == secondAnchor); | 
| -        } | 
| - | 
| -        if (!cmpResult) goto cleanup; | 
| - | 
| -        firstTree = firstValResult->policyTree; | 
| -        secondTree = secondValResult->policyTree; | 
| - | 
| -        if ((firstTree != NULL) && (secondTree != NULL)) { | 
| -                PKIX_CHECK(PKIX_PL_Object_Equals | 
| -                        ((PKIX_PL_Object *)firstTree, | 
| -                        (PKIX_PL_Object *)secondTree, | 
| -                        &cmpResult, | 
| -                        plContext), | 
| -                        PKIX_OBJECTEQUALSFAILED); | 
| -        } else { | 
| -                cmpResult = (firstTree == secondTree); | 
| -        } | 
| - | 
| -        *pResult = cmpResult; | 
| - | 
| -cleanup: | 
| - | 
| -        PKIX_RETURN(VALIDATERESULT); | 
| -} | 
| - | 
| -/* | 
| - * FUNCTION: pkix_ValidateResult_Hashcode | 
| - * (see comments for PKIX_PL_HashcodeCallback in pkix_pl_system.h) | 
| - */ | 
| -static PKIX_Error * | 
| -pkix_ValidateResult_Hashcode( | 
| -        PKIX_PL_Object *object, | 
| -        PKIX_UInt32 *pHashcode, | 
| -        void *plContext) | 
| -{ | 
| -        PKIX_ValidateResult *valResult = NULL; | 
| -        PKIX_UInt32 hash = 0; | 
| -        PKIX_UInt32 pubKeyHash = 0; | 
| -        PKIX_UInt32 anchorHash = 0; | 
| -        PKIX_UInt32 policyTreeHash = 0; | 
| - | 
| -        PKIX_ENTER(VALIDATERESULT, "pkix_ValidateResult_Hashcode"); | 
| -        PKIX_NULLCHECK_TWO(object, pHashcode); | 
| - | 
| -        PKIX_CHECK(pkix_CheckType(object, PKIX_VALIDATERESULT_TYPE, plContext), | 
| -                PKIX_OBJECTNOTVALIDATERESULT); | 
| - | 
| -        valResult = (PKIX_ValidateResult*)object; | 
| - | 
| -        PKIX_CHECK(PKIX_PL_Object_Hashcode | 
| -                ((PKIX_PL_Object *)valResult->pubKey, &pubKeyHash, plContext), | 
| -                PKIX_OBJECTHASHCODEFAILED); | 
| - | 
| -        if (valResult->anchor) { | 
| -                PKIX_CHECK(PKIX_PL_Object_Hashcode | 
| -                        ((PKIX_PL_Object *)valResult->anchor, | 
| -                        &anchorHash, | 
| -                        plContext), | 
| -                        PKIX_OBJECTHASHCODEFAILED); | 
| -        } | 
| - | 
| -        if (valResult->policyTree) { | 
| -                PKIX_CHECK(PKIX_PL_Object_Hashcode | 
| -                        ((PKIX_PL_Object *)valResult->policyTree, | 
| -                        &policyTreeHash, | 
| -                        plContext), | 
| -                        PKIX_OBJECTHASHCODEFAILED); | 
| -        } | 
| - | 
| -        hash = 31*(31 * pubKeyHash + anchorHash) + policyTreeHash; | 
| - | 
| -        *pHashcode = hash; | 
| - | 
| -cleanup: | 
| - | 
| -        PKIX_RETURN(VALIDATERESULT); | 
| -} | 
| - | 
| -/* | 
| - * FUNCTION: pkix_ValidateResult_ToString | 
| - * (see comments for PKIX_PL_ToStringCallback in pkix_pl_system.h) | 
| - */ | 
| -static PKIX_Error * | 
| -pkix_ValidateResult_ToString( | 
| -        PKIX_PL_Object *object, | 
| -        PKIX_PL_String **pString, | 
| -        void *plContext) | 
| -{ | 
| -        PKIX_ValidateResult *valResult = NULL; | 
| -        PKIX_PL_String *formatString = NULL; | 
| -        PKIX_PL_String *valResultString = NULL; | 
| - | 
| -        PKIX_TrustAnchor *anchor = NULL; | 
| -        PKIX_PL_PublicKey *pubKey = NULL; | 
| -        PKIX_PolicyNode *policyTree = NULL; | 
| - | 
| -        PKIX_PL_String *anchorString = NULL; | 
| -        PKIX_PL_String *pubKeyString = NULL; | 
| -        PKIX_PL_String *treeString = NULL; | 
| -        char *asciiNullString = "(null)"; | 
| -        char *asciiFormat = | 
| -                "[\n" | 
| -                "\tTrustAnchor: \t\t%s" | 
| -                "\tPubKey:    \t\t%s\n" | 
| -                "\tPolicyTree:  \t\t%s\n" | 
| -                "]\n"; | 
| - | 
| -        PKIX_ENTER(VALIDATERESULT, "pkix_ValidateResult_ToString"); | 
| -        PKIX_NULLCHECK_TWO(object, pString); | 
| - | 
| -        PKIX_CHECK(pkix_CheckType(object, PKIX_VALIDATERESULT_TYPE, plContext), | 
| -                PKIX_OBJECTNOTVALIDATERESULT); | 
| - | 
| -        PKIX_CHECK(PKIX_PL_String_Create | 
| -                (PKIX_ESCASCII, asciiFormat, 0, &formatString, plContext), | 
| -                PKIX_STRINGCREATEFAILED); | 
| - | 
| -        valResult = (PKIX_ValidateResult*)object; | 
| - | 
| -        anchor = valResult->anchor; | 
| - | 
| -        if (anchor) { | 
| -                PKIX_CHECK(PKIX_PL_Object_ToString | 
| -                        ((PKIX_PL_Object *)anchor, &anchorString, plContext), | 
| -                        PKIX_OBJECTTOSTRINGFAILED); | 
| -        } else { | 
| -                PKIX_CHECK(PKIX_PL_String_Create | 
| -                        (PKIX_ESCASCII, | 
| -                        asciiNullString, | 
| -                        0, | 
| -                        &anchorString, | 
| -                        plContext), | 
| -                        PKIX_STRINGCREATEFAILED); | 
| -        } | 
| - | 
| -        pubKey = valResult->pubKey; | 
| - | 
| -        PKIX_CHECK(PKIX_PL_Object_ToString | 
| -                ((PKIX_PL_Object *)pubKey, &pubKeyString, plContext), | 
| -                PKIX_OBJECTTOSTRINGFAILED); | 
| - | 
| -        policyTree = valResult->policyTree; | 
| - | 
| -        if (policyTree) { | 
| -                PKIX_CHECK(PKIX_PL_Object_ToString | 
| -                        ((PKIX_PL_Object *)policyTree, &treeString, plContext), | 
| -                        PKIX_OBJECTTOSTRINGFAILED); | 
| -        } else { | 
| -                PKIX_CHECK(PKIX_PL_String_Create | 
| -                        (PKIX_ESCASCII, | 
| -                        asciiNullString, | 
| -                        0, | 
| -                        &treeString, | 
| -                        plContext), | 
| -                        PKIX_STRINGCREATEFAILED); | 
| -        } | 
| - | 
| -        PKIX_CHECK(PKIX_PL_Sprintf | 
| -                (&valResultString, | 
| -                plContext, | 
| -                formatString, | 
| -                anchorString, | 
| -                pubKeyString, | 
| -                treeString), | 
| -                PKIX_SPRINTFFAILED); | 
| - | 
| -        *pString = valResultString; | 
| - | 
| -cleanup: | 
| - | 
| -        PKIX_DECREF(formatString); | 
| -        PKIX_DECREF(anchorString); | 
| -        PKIX_DECREF(pubKeyString); | 
| -        PKIX_DECREF(treeString); | 
| - | 
| -        PKIX_RETURN(VALIDATERESULT); | 
| -} | 
| - | 
| -/* | 
| - * FUNCTION: pkix_ValidateResult_RegisterSelf | 
| - * DESCRIPTION: | 
| - *  Registers PKIX_VALIDATERESULT_TYPE and its related functions with | 
| - *  systemClasses[] | 
| - * THREAD SAFETY: | 
| - *  Not Thread Safe - for performance and complexity reasons | 
| - * | 
| - *  Since this function is only called by PKIX_PL_Initialize, which should | 
| - *  only be called once, it is acceptable that this function is not | 
| - *  thread-safe. | 
| - */ | 
| -PKIX_Error * | 
| -pkix_ValidateResult_RegisterSelf(void *plContext) | 
| -{ | 
| - | 
| -        extern pkix_ClassTable_Entry systemClasses[PKIX_NUMTYPES]; | 
| -        pkix_ClassTable_Entry entry; | 
| - | 
| -        PKIX_ENTER(VALIDATERESULT, "pkix_ValidateResult_RegisterSelf"); | 
| - | 
| -        entry.description = "ValidateResult"; | 
| -        entry.objCounter = 0; | 
| -        entry.typeObjectSize = sizeof(PKIX_ValidateResult); | 
| -        entry.destructor = pkix_ValidateResult_Destroy; | 
| -        entry.equalsFunction = pkix_ValidateResult_Equals; | 
| -        entry.hashcodeFunction = pkix_ValidateResult_Hashcode; | 
| -        entry.toStringFunction = pkix_ValidateResult_ToString; | 
| -        entry.comparator = NULL; | 
| -        entry.duplicateFunction = pkix_duplicateImmutable; | 
| - | 
| -        systemClasses[PKIX_VALIDATERESULT_TYPE] = entry; | 
| - | 
| -        PKIX_RETURN(VALIDATERESULT); | 
| -} | 
| - | 
| -/* | 
| - * FUNCTION: pkix_ValidateResult_Create | 
| - * DESCRIPTION: | 
| - * | 
| - *  Creates a new ValidateResult Object using the PublicKey pointed to by | 
| - *  "pubKey", the TrustAnchor pointed to by "anchor", and the PolicyNode | 
| - *  pointed to by "policyTree", and stores it at "pResult". | 
| - * | 
| - * PARAMETERS | 
| - *  "pubKey" | 
| - *      PublicKey of the desired ValidateResult. Must be non-NULL. | 
| - *  "anchor" | 
| - *      TrustAnchor of the desired Validateresult. May be NULL. | 
| - *  "policyTree" | 
| - *      PolicyNode of the desired ValidateResult; may be NULL | 
| - *  "pResult" | 
| - *      Address where object pointer will be stored. Must be non-NULL. | 
| - *  "plContext" | 
| - *      Platform-specific context pointer. | 
| - * THREAD SAFETY: | 
| - *  Thread Safe (see Thread Safety Definitions in Programmer's Guide) | 
| - * RETURNS: | 
| - *  Returns NULL if the function succeeds. | 
| - *  Returns a Fatal Error if the function fails in an unrecoverable way. | 
| - */ | 
| -PKIX_Error * | 
| -pkix_ValidateResult_Create( | 
| -        PKIX_PL_PublicKey *pubKey, | 
| -        PKIX_TrustAnchor *anchor, | 
| -        PKIX_PolicyNode *policyTree, | 
| -        PKIX_ValidateResult **pResult, | 
| -        void *plContext) | 
| -{ | 
| -        PKIX_ValidateResult *result = NULL; | 
| - | 
| -        PKIX_ENTER(VALIDATERESULT, "pkix_ValidateResult_Create"); | 
| -        PKIX_NULLCHECK_TWO(pubKey, pResult); | 
| - | 
| -        PKIX_CHECK(PKIX_PL_Object_Alloc | 
| -                    (PKIX_VALIDATERESULT_TYPE, | 
| -                    sizeof (PKIX_ValidateResult), | 
| -                    (PKIX_PL_Object **)&result, | 
| -                    plContext), | 
| -                    PKIX_COULDNOTCREATEVALIDATERESULTOBJECT); | 
| - | 
| -        /* initialize fields */ | 
| - | 
| -        PKIX_INCREF(pubKey); | 
| -        result->pubKey = pubKey; | 
| - | 
| -        PKIX_INCREF(anchor); | 
| -        result->anchor = anchor; | 
| - | 
| -        PKIX_INCREF(policyTree); | 
| -        result->policyTree = policyTree; | 
| - | 
| -        *pResult = result; | 
| -        result = NULL; | 
| - | 
| -cleanup: | 
| - | 
| -        PKIX_DECREF(result); | 
| - | 
| -        PKIX_RETURN(VALIDATERESULT); | 
| - | 
| -} | 
| - | 
| -/* --Public-Functions--------------------------------------------- */ | 
| - | 
| -/* | 
| - * FUNCTION: PKIX_ValidateResult_GetPublicKey | 
| - *      (see comments in pkix_result.h) | 
| - */ | 
| -PKIX_Error * | 
| -PKIX_ValidateResult_GetPublicKey( | 
| -        PKIX_ValidateResult *result, | 
| -        PKIX_PL_PublicKey **pPublicKey, | 
| -        void *plContext) | 
| -{ | 
| -        PKIX_ENTER(VALIDATERESULT, "PKIX_ValidateResult_GetPublicKey"); | 
| -        PKIX_NULLCHECK_TWO(result, pPublicKey); | 
| - | 
| -        PKIX_INCREF(result->pubKey); | 
| -        *pPublicKey = result->pubKey; | 
| - | 
| -cleanup: | 
| -        PKIX_RETURN(VALIDATERESULT); | 
| -} | 
| - | 
| -/* | 
| - * FUNCTION: PKIX_ValidateResult_GetTrustAnchor | 
| - *      (see comments in pkix_result.h) | 
| - */ | 
| -PKIX_Error * | 
| -PKIX_ValidateResult_GetTrustAnchor( | 
| -        PKIX_ValidateResult *result, | 
| -        PKIX_TrustAnchor **pTrustAnchor, | 
| -        void *plContext) | 
| -{ | 
| -        PKIX_ENTER(VALIDATERESULT, "PKIX_ValidateResult_GetTrustAnchor"); | 
| -        PKIX_NULLCHECK_TWO(result, pTrustAnchor); | 
| - | 
| -        PKIX_INCREF(result->anchor); | 
| -        *pTrustAnchor = result->anchor; | 
| - | 
| -cleanup: | 
| -        PKIX_RETURN(VALIDATERESULT); | 
| -} | 
| - | 
| -/* | 
| - * FUNCTION: PKIX_ValidateResult_GetPolicyTree | 
| - *      (see comments in pkix_result.h) | 
| - */ | 
| -PKIX_Error * | 
| -PKIX_ValidateResult_GetPolicyTree( | 
| -        PKIX_ValidateResult *result, | 
| -        PKIX_PolicyNode **pPolicyTree, | 
| -        void *plContext) | 
| -{ | 
| -        PKIX_ENTER(VALIDATERESULT, "PKIX_ValidateResult_GetPolicyTree"); | 
| -        PKIX_NULLCHECK_TWO(result, pPolicyTree); | 
| - | 
| -        PKIX_INCREF(result->policyTree); | 
| -        (*pPolicyTree) = result->policyTree; | 
| - | 
| -cleanup: | 
| -        PKIX_RETURN(VALIDATERESULT); | 
| -} | 
|  |