Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c

Issue 2078763002: Delete bundled copy of NSS and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/nss@master
Patch Set: Delete bundled copy of NSS and replace with README. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
diff --git a/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c b/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
deleted file mode 100644
index 171a3d2d97cde63d8bd1c49a3671653d86688e60..0000000000000000000000000000000000000000
--- a/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
+++ /dev/null
@@ -1,441 +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_pl_ocsprequest.c
- *
- */
-
-#include "pkix_pl_ocsprequest.h"
-
-/* --Private-OcspRequest-Functions------------------------------------- */
-
-/*
- * FUNCTION: pkix_pl_OcspRequest_Destroy
- * (see comments for PKIX_PL_DestructorCallback in pkix_pl_system.h)
- */
-static PKIX_Error *
-pkix_pl_OcspRequest_Destroy(
- PKIX_PL_Object *object,
- void *plContext)
-{
- PKIX_PL_OcspRequest *ocspReq = NULL;
-
- PKIX_ENTER(OCSPREQUEST, "pkix_pl_OcspRequest_Destroy");
- PKIX_NULLCHECK_ONE(object);
-
- PKIX_CHECK(pkix_CheckType(object, PKIX_OCSPREQUEST_TYPE, plContext),
- PKIX_OBJECTNOTOCSPREQUEST);
-
- ocspReq = (PKIX_PL_OcspRequest *)object;
-
- if (ocspReq->decoded != NULL) {
- CERT_DestroyOCSPRequest(ocspReq->decoded);
- }
-
- if (ocspReq->encoded != NULL) {
- SECITEM_FreeItem(ocspReq->encoded, PR_TRUE);
- }
-
- if (ocspReq->location != NULL) {
- PORT_Free(ocspReq->location);
- }
-
- PKIX_DECREF(ocspReq->cert);
- PKIX_DECREF(ocspReq->validity);
- PKIX_DECREF(ocspReq->signerCert);
-
-cleanup:
-
- PKIX_RETURN(OCSPREQUEST);
-}
-
-/*
- * FUNCTION: pkix_pl_OcspRequest_Hashcode
- * (see comments for PKIX_PL_HashcodeCallback in pkix_pl_system.h)
- */
-static PKIX_Error *
-pkix_pl_OcspRequest_Hashcode(
- PKIX_PL_Object *object,
- PKIX_UInt32 *pHashcode,
- void *plContext)
-{
- PKIX_UInt32 certHash = 0;
- PKIX_UInt32 dateHash = 0;
- PKIX_UInt32 extensionHash = 0;
- PKIX_UInt32 signerHash = 0;
- PKIX_PL_OcspRequest *ocspRq = NULL;
-
- PKIX_ENTER(OCSPREQUEST, "pkix_pl_OcspRequest_Hashcode");
- PKIX_NULLCHECK_TWO(object, pHashcode);
-
- PKIX_CHECK(pkix_CheckType(object, PKIX_OCSPREQUEST_TYPE, plContext),
- PKIX_OBJECTNOTOCSPREQUEST);
-
- ocspRq = (PKIX_PL_OcspRequest *)object;
-
- *pHashcode = 0;
-
- PKIX_HASHCODE(ocspRq->cert, &certHash, plContext,
- PKIX_CERTHASHCODEFAILED);
-
- PKIX_HASHCODE(ocspRq->validity, &dateHash, plContext,
- PKIX_DATEHASHCODEFAILED);
-
- if (ocspRq->addServiceLocator == PKIX_TRUE) {
- extensionHash = 0xff;
- }
-
- PKIX_HASHCODE(ocspRq->signerCert, &signerHash, plContext,
- PKIX_CERTHASHCODEFAILED);
-
- *pHashcode = (((((extensionHash << 8) || certHash) << 8) ||
- dateHash) << 8) || signerHash;
-
-cleanup:
-
- PKIX_RETURN(OCSPREQUEST);
-
-}
-
-/*
- * FUNCTION: pkix_pl_OcspRequest_Equals
- * (see comments for PKIX_PL_Equals_Callback in pkix_pl_system.h)
- */
-static PKIX_Error *
-pkix_pl_OcspRequest_Equals(
- PKIX_PL_Object *firstObj,
- PKIX_PL_Object *secondObj,
- PKIX_Boolean *pResult,
- void *plContext)
-{
- PKIX_Boolean match = PKIX_FALSE;
- PKIX_UInt32 secondType = 0;
- PKIX_PL_OcspRequest *firstReq = NULL;
- PKIX_PL_OcspRequest *secondReq = NULL;
-
- PKIX_ENTER(OCSPREQUEST, "pkix_pl_OcspRequest_Equals");
- PKIX_NULLCHECK_THREE(firstObj, secondObj, pResult);
-
- /* test that firstObj is a OcspRequest */
- PKIX_CHECK(pkix_CheckType(firstObj, PKIX_OCSPREQUEST_TYPE, plContext),
- PKIX_FIRSTOBJARGUMENTNOTOCSPREQUEST);
-
- /*
- * Since we know firstObj is a OcspRequest, if both references are
- * identical, they must be equal
- */
- if (firstObj == secondObj){
- match = PKIX_TRUE;
- goto cleanup;
- }
-
- /*
- * If secondObj isn't a OcspRequest, we don't throw an error.
- * We simply return a Boolean result of FALSE
- */
- PKIX_CHECK(PKIX_PL_Object_GetType
- (secondObj, &secondType, plContext),
- PKIX_COULDNOTGETTYPEOFSECONDARGUMENT);
- if (secondType != PKIX_OCSPREQUEST_TYPE) {
- goto cleanup;
- }
-
- firstReq = (PKIX_PL_OcspRequest *)firstObj;
- secondReq = (PKIX_PL_OcspRequest *)secondObj;
-
- if (firstReq->addServiceLocator != secondReq->addServiceLocator) {
- goto cleanup;
- }
-
- PKIX_EQUALS(firstReq->cert, secondReq->cert, &match, plContext,
- PKIX_CERTEQUALSFAILED);
-
- if (match == PKIX_FALSE) {
- goto cleanup;
- }
-
- PKIX_EQUALS(firstReq->validity, secondReq->validity, &match, plContext,
- PKIX_DATEEQUALSFAILED);
-
- if (match == PKIX_FALSE) {
- goto cleanup;
- }
-
- PKIX_EQUALS
- (firstReq->signerCert, secondReq->signerCert, &match, plContext,
- PKIX_CERTEQUALSFAILED);
-
-cleanup:
-
- *pResult = match;
-
- PKIX_RETURN(OCSPREQUEST);
-}
-
-/*
- * FUNCTION: pkix_pl_OcspRequest_RegisterSelf
- * DESCRIPTION:
- * Registers PKIX_OCSPREQUEST_TYPE and its related functions with
- * systemClasses[]
- * PARAMETERS:
- * "plContext"
- * Platform-specific context pointer.
- * 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_pl_OcspRequest_RegisterSelf(void *plContext)
-{
- extern pkix_ClassTable_Entry systemClasses[PKIX_NUMTYPES];
- pkix_ClassTable_Entry entry;
-
- PKIX_ENTER(OCSPREQUEST, "pkix_pl_OcspRequest_RegisterSelf");
-
- entry.description = "OcspRequest";
- entry.objCounter = 0;
- entry.typeObjectSize = sizeof(PKIX_PL_OcspRequest);
- entry.destructor = pkix_pl_OcspRequest_Destroy;
- entry.equalsFunction = pkix_pl_OcspRequest_Equals;
- entry.hashcodeFunction = pkix_pl_OcspRequest_Hashcode;
- entry.toStringFunction = NULL;
- entry.comparator = NULL;
- entry.duplicateFunction = pkix_duplicateImmutable;
-
- systemClasses[PKIX_OCSPREQUEST_TYPE] = entry;
-
- PKIX_RETURN(OCSPREQUEST);
-}
-
-/* --Public-Functions------------------------------------------------------- */
-
-/*
- * FUNCTION: pkix_pl_OcspRequest_Create
- * DESCRIPTION:
- *
- * This function creates an OcspRequest to be used in validating the Cert
- * pointed to by "cert" and storing the result at "pRequest". If a URI
- * is found for an OCSP responder, PKIX_TRUE is stored at "pURIFound". If no
- * URI is found, PKIX_FALSE is stored.
- *
- * If a Date is provided in "validity" it may be used in the search for the
- * issuer of "cert" but has no effect on the request itself. If
- * "addServiceLocator" is TRUE, the AddServiceLocator extension will be
- * included in the Request. If "signerCert" is provided it will be used to sign
- * the Request. (Note: this signed request feature is not currently supported.)
- *
- * PARAMETERS:
- * "cert"
- * Address of the Cert for which an OcspRequest is to be created. Must be
- * non-NULL.
- * "validity"
- * Address of the Date for which the Cert's validity is to be determined.
- * May be NULL.
- * "signerCert"
- * Address of the Cert to be used, if present, in signing the request.
- * May be NULL.
- * "pRequest"
- * Address at which the result is 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 an OcspRequest Error if the function fails in a non-fatal way.
- * Returns a Fatal Error if the function fails in an unrecoverable way.
- */
-PKIX_Error *
-pkix_pl_OcspRequest_Create(
- PKIX_PL_Cert *cert,
- PKIX_PL_OcspCertID *cid,
- PKIX_PL_Date *validity,
- PKIX_PL_Cert *signerCert,
- PKIX_UInt32 methodFlags,
- PKIX_Boolean *pURIFound,
- PKIX_PL_OcspRequest **pRequest,
- void *plContext)
-{
- PKIX_PL_OcspRequest *ocspRequest = NULL;
-
- CERTCertDBHandle *handle = NULL;
- SECStatus rv = SECFailure;
- SECItem *encoding = NULL;
- CERTOCSPRequest *certRequest = NULL;
- PRTime time = 0;
- PRBool addServiceLocatorExtension = PR_FALSE;
- CERTCertificate *nssCert = NULL;
- CERTCertificate *nssSignerCert = NULL;
- char *location = NULL;
- PRErrorCode locError = 0;
- PKIX_Boolean canUseDefaultSource = PKIX_FALSE;
-
- PKIX_ENTER(OCSPREQUEST, "pkix_pl_OcspRequest_Create");
- PKIX_NULLCHECK_TWO(cert, pRequest);
-
- /* create a PKIX_PL_OcspRequest object */
- PKIX_CHECK(PKIX_PL_Object_Alloc
- (PKIX_OCSPREQUEST_TYPE,
- sizeof (PKIX_PL_OcspRequest),
- (PKIX_PL_Object **)&ocspRequest,
- plContext),
- PKIX_COULDNOTCREATEOBJECT);
-
- PKIX_INCREF(cert);
- ocspRequest->cert = cert;
-
- PKIX_INCREF(validity);
- ocspRequest->validity = validity;
-
- PKIX_INCREF(signerCert);
- ocspRequest->signerCert = signerCert;
-
- ocspRequest->decoded = NULL;
- ocspRequest->encoded = NULL;
-
- ocspRequest->location = NULL;
-
- nssCert = cert->nssCert;
-
- /*
- * Does this Cert have an Authority Information Access extension with
- * the URI of an OCSP responder?
- */
- handle = CERT_GetDefaultCertDB();
-
- if (!(methodFlags & PKIX_REV_M_IGNORE_IMPLICIT_DEFAULT_SOURCE)) {
- canUseDefaultSource = PKIX_TRUE;
- }
- location = ocsp_GetResponderLocation(handle, nssCert,
- canUseDefaultSource,
- &addServiceLocatorExtension);
- if (location == NULL) {
- locError = PORT_GetError();
- if (locError == SEC_ERROR_EXTENSION_NOT_FOUND ||
- locError == SEC_ERROR_CERT_BAD_ACCESS_LOCATION) {
- PORT_SetError(0);
- *pURIFound = PKIX_FALSE;
- goto cleanup;
- }
- PKIX_ERROR(PKIX_ERRORFINDINGORPROCESSINGURI);
- }
-
- ocspRequest->location = location;
- *pURIFound = PKIX_TRUE;
-
- if (signerCert != NULL) {
- nssSignerCert = signerCert->nssCert;
- }
-
- if (validity != NULL) {
- PKIX_CHECK(pkix_pl_Date_GetPRTime(validity, &time, plContext),
- PKIX_DATEGETPRTIMEFAILED);
- } else {
- time = PR_Now();
- }
-
- certRequest = cert_CreateSingleCertOCSPRequest(
- cid->certID, cert->nssCert, time,
- addServiceLocatorExtension, nssSignerCert);
-
- ocspRequest->decoded = certRequest;
-
- if (certRequest == NULL) {
- PKIX_ERROR(PKIX_UNABLETOCREATECERTOCSPREQUEST);
- }
-
- rv = CERT_AddOCSPAcceptableResponses(
- certRequest, SEC_OID_PKIX_OCSP_BASIC_RESPONSE);
-
- if (rv == SECFailure) {
- PKIX_ERROR(PKIX_UNABLETOADDACCEPTABLERESPONSESTOREQUEST);
- }
-
- encoding = CERT_EncodeOCSPRequest(NULL, certRequest, NULL);
-
- ocspRequest->encoded = encoding;
-
- *pRequest = ocspRequest;
- ocspRequest = NULL;
-
-cleanup:
- PKIX_DECREF(ocspRequest);
-
- PKIX_RETURN(OCSPREQUEST);
-}
-
-/*
- * FUNCTION: pkix_pl_OcspRequest_GetEncoded
- * DESCRIPTION:
- *
- * This function obtains the encoded message from the OcspRequest pointed to
- * by "request", storing the result at "pRequest".
- *
- * PARAMETERS
- * "request"
- * The address of the OcspRequest whose encoded message is to be
- * retrieved. Must be non-NULL.
- * "pRequest"
- * The address at which is stored the address of the encoded message. 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_pl_OcspRequest_GetEncoded(
- PKIX_PL_OcspRequest *request,
- SECItem **pRequest,
- void *plContext)
-{
- PKIX_ENTER(OCSPREQUEST, "pkix_pl_OcspRequest_GetEncoded");
- PKIX_NULLCHECK_TWO(request, pRequest);
-
- *pRequest = request->encoded;
-
- PKIX_RETURN(OCSPREQUEST);
-}
-
-/*
- * FUNCTION: pkix_pl_OcspRequest_GetLocation
- * DESCRIPTION:
- *
- * This function obtains the location from the OcspRequest pointed to
- * by "request", storing the result at "pLocation".
- *
- * PARAMETERS
- * "request"
- * The address of the OcspRequest whose encoded message is to be
- * retrieved. Must be non-NULL.
- * "pLocation"
- * The address at which is stored the address of the location. 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_pl_OcspRequest_GetLocation(
- PKIX_PL_OcspRequest *request,
- char **pLocation,
- void *plContext)
-{
- PKIX_ENTER(OCSPREQUEST, "pkix_pl_OcspRequest_GetLocation");
- PKIX_NULLCHECK_TWO(request, pLocation);
-
- *pLocation = request->location;
-
- PKIX_RETURN(OCSPREQUEST);
-}
« no previous file with comments | « nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.h ('k') | nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698