security/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rwxr-xr-x

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     4 /*
     5  * pkix_comcrlselparams.c
     6  *
     7  * ComCRLSelParams Function Definitions
     8  *
     9  */
    11 #include "pkix_comcrlselparams.h"
    13 /* --ComCRLSelParams-Private-Functions------------------------------------ */
    15 /*
    16  * FUNCTION: pkix_ComCrlSelParams_Destroy
    17  * (see comments for PKIX_PL_DestructorCallback in pkix_pl_system.h)
    18  */
    19 static PKIX_Error *
    20 pkix_ComCRLSelParams_Destroy(
    21         PKIX_PL_Object *object,
    22         void *plContext)
    23 {
    24         PKIX_ComCRLSelParams *params = NULL;
    26         PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_Destroy");
    27         PKIX_NULLCHECK_ONE(object);
    29         PKIX_CHECK(pkix_CheckType
    30                     (object, PKIX_COMCRLSELPARAMS_TYPE, plContext),
    31                     PKIX_OBJECTNOTCOMCRLSELPARAMS);
    33         params = (PKIX_ComCRLSelParams *)object;
    35         PKIX_DECREF(params->issuerNames);
    36         PKIX_DECREF(params->cert);
    37         PKIX_DECREF(params->date);
    38         PKIX_DECREF(params->maxCRLNumber);
    39         PKIX_DECREF(params->minCRLNumber);
    40         PKIX_DECREF(params->crldpList);
    42 cleanup:
    44         PKIX_RETURN(COMCRLSELPARAMS);
    45 }
    47 /*
    48  * FUNCTION: pkix_ComCRLSelParams_ToString_Helper
    49  * DESCRIPTION:
    50  *
    51  *  Helper function that creates a string representation of ComCRLSelParams
    52  *  pointed to by "crlParams" and stores the result at "pString".
    53  *
    54  * PARAMETERS
    55  *  "crlParams"
    56  *      Address of ComCRLSelParams whose string representation is desired.
    57  *      Must be non-NULL.
    58  *  "pString"
    59  *      Address of object pointer's destination. Must be non-NULL.
    60  *  "plContext" - Platform-specific context pointer.
    61  *
    62  * THREAD SAFETY:
    63  *  Conditionally Thread Safe
    64  *      (see Thread Safety Definitions in Programmer's Guide)
    65  *
    66  * RETURNS:
    67  *  Returns NULL if the function succeeds.
    68  *  Returns a CRLEntry Error if the function fails in a non-fatal way.
    69  *  Returns a Fatal Error if the function fails in an unrecoverable way.
    70  */
    71 static PKIX_Error *
    72 pkix_ComCRLSelParams_ToString_Helper(
    73         PKIX_ComCRLSelParams *crlParams,
    74         PKIX_PL_String **pString,
    75         void *plContext)
    76 {
    77         PKIX_PL_String *crlIssuerNamesString = NULL;
    78         PKIX_PL_String *crlDateString = NULL;
    79         PKIX_PL_String *crlMaxCRLNumberString = NULL;
    80         PKIX_PL_String *crlMinCRLNumberString = NULL;
    81         PKIX_PL_String *crlCertString = NULL;
    82         PKIX_PL_String *crlParamsString = NULL;
    83         char *asciiFormat = NULL;
    84         PKIX_PL_String *formatString = NULL;
    86         PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_ToString_Helper");
    87         PKIX_NULLCHECK_TWO(crlParams, pString);
    89         asciiFormat =
    90                 "\n\t[\n"
    91                 "\tIssuerNames:     %s\n"
    92                 "\tDate:            %s\n"
    93                 "\tmaxCRLNumber:    %s\n"
    94                 "\tminCRLNumber:    %s\n"
    95                 "\tCertificate:     %s\n"
    96                 "\t]\n";
    98         PKIX_CHECK(PKIX_PL_String_Create
    99                     (PKIX_ESCASCII,
   100                     asciiFormat,
   101                     0,
   102                     &formatString,
   103                     plContext),
   104                     PKIX_STRINGCREATEFAILED);
   106         PKIX_TOSTRING
   107                 (crlParams->issuerNames, &crlIssuerNamesString, plContext,
   108                 PKIX_LISTTOSTRINGFAILED);
   110         PKIX_TOSTRING(crlParams->date, &crlDateString, plContext,
   111                 PKIX_DATETOSTRINGFAILED);
   113         PKIX_TOSTRING
   114                 (crlParams->maxCRLNumber, &crlMaxCRLNumberString, plContext,
   115                 PKIX_BIGINTTOSTRINGFAILED);
   117         PKIX_TOSTRING
   118                 (crlParams->minCRLNumber, &crlMinCRLNumberString, plContext,
   119                 PKIX_BIGINTTOSTRINGFAILED);
   121         PKIX_TOSTRING(crlParams->cert, &crlCertString, plContext,
   122                 PKIX_CERTTOSTRINGFAILED);
   124         PKIX_CHECK(PKIX_PL_Sprintf
   125                     (&crlParamsString,
   126                     plContext,
   127                     formatString,
   128                     crlIssuerNamesString,
   129                     crlDateString,
   130                     crlMaxCRLNumberString,
   131                     crlMinCRLNumberString,
   132                     crlCertString),
   133                     PKIX_SPRINTFFAILED);
   135         *pString = crlParamsString;
   137 cleanup:
   139         PKIX_DECREF(crlIssuerNamesString);
   140         PKIX_DECREF(crlDateString);
   141         PKIX_DECREF(crlMaxCRLNumberString);
   142         PKIX_DECREF(crlMinCRLNumberString);
   143         PKIX_DECREF(crlCertString);
   144         PKIX_DECREF(formatString);
   146         PKIX_RETURN(COMCRLSELPARAMS);
   147 }
   149 /*
   150  * FUNCTION: pkix_ComCRLSelParams_ToString
   151  * (see comments for PKIX_PL_ToStringCallback in pkix_pl_system.h)
   152  */
   153 static PKIX_Error *
   154 pkix_ComCRLSelParams_ToString(
   155         PKIX_PL_Object *object,
   156         PKIX_PL_String **pString,
   157         void *plContext)
   158 {
   159         PKIX_PL_String *crlParamsString = NULL;
   160         PKIX_ComCRLSelParams *crlParams = NULL;
   162         PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_ToString");
   163         PKIX_NULLCHECK_TWO(object, pString);
   165         PKIX_CHECK(pkix_CheckType(object, PKIX_COMCRLSELPARAMS_TYPE, plContext),
   166                     PKIX_OBJECTNOTCOMCRLSELPARAMS);
   168         crlParams = (PKIX_ComCRLSelParams *) object;
   170         PKIX_CHECK(pkix_ComCRLSelParams_ToString_Helper
   171                     (crlParams, &crlParamsString, plContext),
   172                     PKIX_COMCRLSELPARAMSTOSTRINGHELPERFAILED);
   174         *pString = crlParamsString;
   176 cleanup:
   178         PKIX_RETURN(COMCRLSELPARAMS);
   179 }
   181 /*
   182  * FUNCTION: pkix_ComCRLSelParams_Hashcode
   183  * (see comments for PKIX_PL_HashcodeCallback in pkix_pl_system.h)
   184  */
   185 static PKIX_Error *
   186 pkix_ComCRLSelParams_Hashcode(
   187         PKIX_PL_Object *object,
   188         PKIX_UInt32 *pHashcode,
   189         void *plContext)
   190 {
   191         PKIX_ComCRLSelParams *crlParams = NULL;
   192         PKIX_UInt32 namesHash = 0;
   193         PKIX_UInt32 certHash = 0;
   194         PKIX_UInt32 dateHash = 0;
   195         PKIX_UInt32 maxCRLNumberHash = 0;
   196         PKIX_UInt32 minCRLNumberHash = 0;
   197         PKIX_UInt32 hash = 0;
   199         PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_Hashcode");
   200         PKIX_NULLCHECK_TWO(object, pHashcode);
   202         PKIX_CHECK(pkix_CheckType(object, PKIX_COMCRLSELPARAMS_TYPE, plContext),
   203                     PKIX_OBJECTNOTCOMCRLSELPARAMS);
   205         crlParams = (PKIX_ComCRLSelParams *)object;
   207         PKIX_HASHCODE(crlParams->issuerNames, &namesHash, plContext,
   208                     PKIX_OBJECTHASHCODEFAILED);
   210         PKIX_HASHCODE(crlParams->cert, &certHash, plContext,
   211                     PKIX_OBJECTHASHCODEFAILED);
   213         PKIX_HASHCODE(crlParams->date, &dateHash, plContext,
   214                     PKIX_OBJECTHASHCODEFAILED);
   216         PKIX_HASHCODE(crlParams->maxCRLNumber, &maxCRLNumberHash, plContext,
   217                     PKIX_OBJECTHASHCODEFAILED);
   219         PKIX_HASHCODE(crlParams->minCRLNumber, &minCRLNumberHash, plContext,
   220                     PKIX_OBJECTHASHCODEFAILED);
   223         hash = (((namesHash << 3) + certHash) << 3) + dateHash;
   224         hash = (hash << 3) + maxCRLNumberHash + minCRLNumberHash;
   226         *pHashcode = hash;
   228 cleanup:
   230         PKIX_RETURN(COMCRLSELPARAMS);
   231 }
   233 /*
   234  * FUNCTION: pkix_ComCRLSelParams_Equals
   235  * (see comments for PKIX_PL_Equals_Callback in pkix_pl_system.h)
   236  */
   237 static PKIX_Error *
   238 pkix_ComCRLSelParams_Equals(
   239         PKIX_PL_Object *firstObject,
   240         PKIX_PL_Object *secondObject,
   241         PKIX_Boolean *pResult,
   242         void *plContext)
   243 {
   244         PKIX_ComCRLSelParams *firstCrlParams = NULL;
   245         PKIX_ComCRLSelParams *secondCrlParams = NULL;
   246         PKIX_UInt32 secondType;
   247         PKIX_Boolean cmpResult = PKIX_FALSE;
   249         PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_Equals");
   250         PKIX_NULLCHECK_THREE(firstObject, secondObject, pResult);
   252         /* test that firstObject is a ComCRLSelParams */
   253         PKIX_CHECK(pkix_CheckType
   254                     (firstObject, PKIX_COMCRLSELPARAMS_TYPE, plContext),
   255                     PKIX_FIRSTOBJECTNOTCOMCRLSELPARAMS);
   257         firstCrlParams = (PKIX_ComCRLSelParams *)firstObject;
   258         secondCrlParams = (PKIX_ComCRLSelParams *)secondObject;
   260         /*
   261          * Since we know firstObject is a ComCRLSelParams, if both references
   262          * are identical, they must be equal
   263          */
   264         if (firstCrlParams == secondCrlParams){
   265                 *pResult = PKIX_TRUE;
   266                 goto cleanup;
   267         }
   269         /*
   270          * If secondComCRLSelParams isn't a ComCRLSelParams, we don't
   271          * throw an error. We simply return a Boolean result of FALSE
   272          */
   273         *pResult = PKIX_FALSE;
   274         PKIX_CHECK(PKIX_PL_Object_GetType
   275                     ((PKIX_PL_Object *)secondCrlParams, &secondType, plContext),
   276                     PKIX_COULDNOTGETTYPEOFSECONDARGUMENT);
   278         if (secondType != PKIX_COMCRLSELPARAMS_TYPE) {
   279                 goto cleanup;
   280         }
   282         /* Compare Issuer Names */
   283         PKIX_EQUALS
   284                     (firstCrlParams->issuerNames,
   285                     secondCrlParams->issuerNames,
   286                     &cmpResult,
   287                     plContext,
   288                     PKIX_LISTEQUALSFAILED);
   290         if (cmpResult != PKIX_TRUE) {
   291                 goto cleanup;
   292         }
   294         /* Compare Date */
   295         PKIX_EQUALS
   296                     (firstCrlParams->date,
   297                     secondCrlParams->date,
   298                     &cmpResult,
   299                     plContext,
   300                     PKIX_DATEEQUALSFAILED);
   302         if (cmpResult != PKIX_TRUE) {
   303                 goto cleanup;
   304         }
   306         /* Compare Max CRL Number */
   307         PKIX_EQUALS
   308                     (firstCrlParams->maxCRLNumber,
   309                     secondCrlParams->maxCRLNumber,
   310                     &cmpResult,
   311                     plContext,
   312                     PKIX_BIGINTEQUALSFAILED);
   314         if (cmpResult != PKIX_TRUE) {
   315                 goto cleanup;
   316         }
   318         /* Compare Min CRL Number */
   319         PKIX_EQUALS
   320                     (firstCrlParams->minCRLNumber,
   321                     secondCrlParams->minCRLNumber,
   322                     &cmpResult,
   323                     plContext,
   324                     PKIX_BIGINTEQUALSFAILED);
   326         if (cmpResult != PKIX_TRUE) {
   327                 goto cleanup;
   328         }
   330         /* Compare Cert */
   331         PKIX_EQUALS
   332                     (firstCrlParams->cert,
   333                     secondCrlParams->cert,
   334                     &cmpResult,
   335                     plContext,
   336                     PKIX_CERTEQUALSFAILED);
   338         *pResult = cmpResult;
   340 cleanup:
   342         PKIX_RETURN(COMCRLSELPARAMS);
   343 }
   345 /*
   346  * FUNCTION: pkix_ComCRLSelParams_Duplicate
   347  * (see comments for PKIX_PL_Duplicate_Callback in pkix_pl_system.h)
   348  */
   349 static PKIX_Error *
   350 pkix_ComCRLSelParams_Duplicate(
   351         PKIX_PL_Object *object,
   352         PKIX_PL_Object **pNewObject,
   353         void *plContext)
   354 {
   355         PKIX_ComCRLSelParams *old;
   356         PKIX_ComCRLSelParams *new = NULL;
   358         PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_Duplicate");
   359         PKIX_NULLCHECK_TWO(object, pNewObject);
   361         PKIX_CHECK(pkix_CheckType(object, PKIX_COMCRLSELPARAMS_TYPE, plContext),
   362                     PKIX_OBJECTNOTCOMCRLSELPARAMS);
   364         old = (PKIX_ComCRLSelParams *)object;
   366         PKIX_CHECK(PKIX_PL_Object_Alloc
   367                     (PKIX_COMCRLSELPARAMS_TYPE,
   368                     (PKIX_UInt32)(sizeof (PKIX_ComCRLSelParams)),
   369                     (PKIX_PL_Object **)&new,
   370                     plContext),
   371                     PKIX_OBJECTALLOCFAILED);
   373         PKIX_DUPLICATE(old->cert, &new->cert, plContext,
   374                     PKIX_OBJECTDUPLICATECERTFAILED);
   376         PKIX_DUPLICATE(old->crldpList, &new->crldpList, plContext,
   377                     PKIX_OBJECTDUPLICATECERTFAILED);
   379         PKIX_DUPLICATE(old->issuerNames, &new->issuerNames, plContext,
   380                     PKIX_OBJECTDUPLICATEISSUERNAMESFAILED);
   382         PKIX_DUPLICATE(old->date, &new->date, plContext,
   383                     PKIX_OBJECTDUPLICATEDATEFAILED);
   385         PKIX_DUPLICATE(old->maxCRLNumber, &new->maxCRLNumber, plContext,
   386                     PKIX_OBJECTDUPLICATEMAXCRLNUMBERFAILED);
   388         PKIX_DUPLICATE(old->minCRLNumber, &new->minCRLNumber, plContext,
   389                     PKIX_OBJECTDUPLICATEMINCRLNUMBERFAILED);
   391         *pNewObject = (PKIX_PL_Object *)new;
   393 cleanup:
   395         if (PKIX_ERROR_RECEIVED){
   396                 PKIX_DECREF(new);
   397         }
   399         PKIX_RETURN(COMCRLSELPARAMS);
   400 }
   402 /*
   403  * FUNCTION: pkix_ComCrlSelParams_RegisterSelf
   404  * DESCRIPTION:
   405  *  Registers PKIX_COMCRLSELPARAMS_TYPE and its related functions with
   406  *  systemClasses[]
   407  * THREAD SAFETY:
   408  *  Not Thread Safe - for performance and complexity reasons
   409  *
   410  *  Since this function is only called by PKIX_PL_Initialize, which should
   411  *  only be called once, it is acceptable that this function is not
   412  *  thread-safe.
   413  */
   414 PKIX_Error *
   415 pkix_ComCRLSelParams_RegisterSelf(void *plContext)
   416 {
   417         extern pkix_ClassTable_Entry systemClasses[PKIX_NUMTYPES];
   418         pkix_ClassTable_Entry entry;
   420         PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_RegisterSelf");
   422         entry.description = "ComCRLSelParams";
   423         entry.objCounter = 0;
   424         entry.typeObjectSize = sizeof(PKIX_ComCRLSelParams);
   425         entry.destructor = pkix_ComCRLSelParams_Destroy;
   426         entry.equalsFunction = pkix_ComCRLSelParams_Equals;
   427         entry.hashcodeFunction = pkix_ComCRLSelParams_Hashcode;
   428         entry.toStringFunction = pkix_ComCRLSelParams_ToString;
   429         entry.comparator = NULL;
   430         entry.duplicateFunction = pkix_ComCRLSelParams_Duplicate;
   432         systemClasses[PKIX_COMCRLSELPARAMS_TYPE] = entry;
   434         PKIX_RETURN(COMCRLSELPARAMS);
   435 }
   437 /* --ComCRLSelParams-Public-Functions------------------------------------- */
   439 /*
   440  * FUNCTION: PKIX_ComCRLSelParams_Create (see comments in pkix_crlsel.h)
   441  */
   442 PKIX_Error *
   443 PKIX_ComCRLSelParams_Create(
   444         PKIX_ComCRLSelParams **pParams,
   445         void *plContext)
   446 {
   447         PKIX_ComCRLSelParams *params = NULL;
   449         PKIX_ENTER(COMCRLSELPARAMS, "PKIX_ComCRLSelParams_Create");
   450         PKIX_NULLCHECK_ONE(pParams);
   452         PKIX_CHECK(PKIX_PL_Object_Alloc
   453                     (PKIX_COMCRLSELPARAMS_TYPE,
   454                     sizeof (PKIX_ComCRLSelParams),
   455                     (PKIX_PL_Object **)&params,
   456                     plContext),
   457                     PKIX_COULDNOTCREATECOMMONCRLSELECTORPARAMSOBJECT);
   459         /* initialize fields */
   460         params->issuerNames = NULL;
   461         params->cert = NULL;
   462         params->crldpList = NULL;
   463         params->date = NULL;
   464         params->nistPolicyEnabled = PKIX_TRUE;
   465         params->maxCRLNumber = NULL;
   466         params->minCRLNumber = NULL;
   468         *pParams = params;
   470 cleanup:
   472         PKIX_RETURN(COMCRLSELPARAMS);
   473 }
   475 /*
   476  * FUNCTION: PKIX_ComCRLSelParams_GetIssuerNames (see comments in pkix_crlsel.h)
   477  */
   478 PKIX_Error *
   479 PKIX_ComCRLSelParams_GetIssuerNames(
   480         PKIX_ComCRLSelParams *params,
   481         PKIX_List **pIssuerNames,
   482         void *plContext)
   483 {
   484         PKIX_ENTER(COMCRLSELPARAMS, "PKIX_ComCRLSelParams_GetIssuerNames");
   485         PKIX_NULLCHECK_TWO(params, pIssuerNames);
   487         PKIX_INCREF(params->issuerNames);
   489         *pIssuerNames = params->issuerNames;
   491 cleanup:
   492         PKIX_RETURN(COMCRLSELPARAMS);
   493 }
   495 /*
   496  * FUNCTION: PKIX_ComCRLSelParams_SetIssuerNames (see comments in pkix_crlsel.h)
   497  */
   498 PKIX_Error *
   499 PKIX_ComCRLSelParams_SetIssuerNames(
   500         PKIX_ComCRLSelParams *params,
   501         PKIX_List *names,
   502         void *plContext)
   503 {
   504         PKIX_ENTER(COMCRLSELPARAMS, "PKIX_ComCRLSelParams_SetIssuerNames");
   505         PKIX_NULLCHECK_ONE(params); /* allows null for names from spec */
   507         PKIX_DECREF(params->issuerNames);
   509         PKIX_INCREF(names); /* if NULL, allows to reset for no action */
   511         params->issuerNames = names;
   513         PKIX_CHECK(PKIX_PL_Object_InvalidateCache
   514                     ((PKIX_PL_Object *)params, plContext),
   515                     PKIX_OBJECTINVALIDATECACHEFAILED);
   517 cleanup:
   519         PKIX_RETURN(COMCRLSELPARAMS);
   520 }
   522 /*
   523  * FUNCTION: PKIX_ComCRLSelParams_AddIssuerName (see comments in pkix_crlsel.h)
   524  */
   525 PKIX_Error *
   526 PKIX_ComCRLSelParams_AddIssuerName(
   527         PKIX_ComCRLSelParams *params,
   528         PKIX_PL_X500Name *name,
   529         void *plContext)
   530 {
   531         PKIX_List *list = NULL;
   533         PKIX_ENTER(COMCRLSELPARAMS, "PKIX_ComCRLSelParams_AddIssuerName");
   534         PKIX_NULLCHECK_ONE(params);
   536         if (name != NULL) {
   538                 if (params->issuerNames == NULL) {
   540                     PKIX_CHECK(PKIX_List_Create(&list, plContext),
   541                         PKIX_LISTCREATEFAILED);
   542                         params->issuerNames = list;
   543                 }
   545                 PKIX_CHECK(PKIX_List_AppendItem
   546                     (params->issuerNames, (PKIX_PL_Object *)name, plContext),
   547                     PKIX_LISTAPPENDITEMFAILED);
   549                 PKIX_CHECK(PKIX_PL_Object_InvalidateCache
   550                     ((PKIX_PL_Object *)params, plContext),
   551                     PKIX_OBJECTINVALIDATECACHEFAILED);
   553         }
   555 cleanup:
   557         PKIX_RETURN(COMCRLSELPARAMS);
   558 }
   561 /*
   562  * FUNCTION: PKIX_ComCRLSelParams_GetCertificateChecking
   563  * (see comments in pkix_crlsel.h)
   564  */
   565 PKIX_Error *
   566 PKIX_ComCRLSelParams_GetCertificateChecking(
   567         PKIX_ComCRLSelParams *params,
   568         PKIX_PL_Cert **pCert,
   569         void *plContext)
   570 {
   571         PKIX_ENTER(COMCRLSELPARAMS,
   572                     "PKIX_ComCRLSelParams_GetCertificateChecking");
   573         PKIX_NULLCHECK_TWO(params, pCert);
   575         PKIX_INCREF(params->cert);
   577         *pCert = params->cert;
   579 cleanup:
   580         PKIX_RETURN(COMCRLSELPARAMS);
   581 }
   583 /*
   584  * FUNCTION: PKIX_ComCRLSelParams_SetCertificateChecking
   585  * (see comments in pkix_crlsel.h)
   586  */
   587 PKIX_Error *
   588 PKIX_ComCRLSelParams_SetCertificateChecking(
   589         PKIX_ComCRLSelParams *params,
   590         PKIX_PL_Cert *cert,
   591         void *plContext)
   592 {
   593         PKIX_ENTER(COMCRLSELPARAMS,
   594                     "PKIX_ComCRLSelParams_SetCertificateChecking");
   595         PKIX_NULLCHECK_ONE(params); /* allows cert to be NULL from spec */
   597         PKIX_DECREF(params->cert);
   599         PKIX_INCREF(cert);
   601         params->cert = cert;
   603         PKIX_CHECK(PKIX_PL_Object_InvalidateCache
   604                     ((PKIX_PL_Object *)params, plContext),
   605                     PKIX_OBJECTINVALIDATECACHEFAILED);
   607 cleanup:
   609         PKIX_RETURN(COMCRLSELPARAMS);
   610 }
   613 /*
   614  * FUNCTION: PKIX_ComCRLSelParams_GetDateAndTime (see comments in pkix_crlsel.h)
   615  */
   616 PKIX_Error *
   617 PKIX_ComCRLSelParams_GetDateAndTime(
   618         PKIX_ComCRLSelParams *params,
   619         PKIX_PL_Date **pDate,
   620         void *plContext)
   621 {
   622         PKIX_ENTER(COMCRLSELPARAMS,
   623                     "PKIX_ComCRLSelParams_GetDateAndTime");
   624         PKIX_NULLCHECK_TWO(params, pDate);
   626         PKIX_INCREF(params->date);
   628         *pDate = params->date;
   630 cleanup:
   631         PKIX_RETURN(COMCRLSELPARAMS);
   632 }
   634 /*
   635  * FUNCTION: PKIX_ComCRLSelParams_SetDateAndTime (see comments in pkix_crlsel.h)
   636  */
   637 PKIX_Error *
   638 PKIX_ComCRLSelParams_SetDateAndTime(
   639         PKIX_ComCRLSelParams *params,
   640         PKIX_PL_Date *date,
   641         void *plContext)
   642 {
   643         PKIX_ENTER(COMCRLSELPARAMS,
   644                     "PKIX_ComCRLSelParams_SetDateAndTime");
   645         PKIX_NULLCHECK_ONE(params); /* allows date to be NULL from spec */
   647         PKIX_DECREF (params->date);
   649         PKIX_INCREF(date);
   651         params->date = date;
   653         PKIX_CHECK(PKIX_PL_Object_InvalidateCache
   654                     ((PKIX_PL_Object *)params, plContext),
   655                     PKIX_OBJECTINVALIDATECACHEFAILED);
   657 cleanup:
   659         PKIX_RETURN(COMCRLSELPARAMS);
   660 }
   662 /*
   663  * FUNCTION: PKIX_ComCRLSelParams_GetDateAndTime (see comments in pkix_crlsel.h)
   664  */
   665 PKIX_Error *
   666 PKIX_ComCRLSelParams_GetNISTPolicyEnabled(
   667         PKIX_ComCRLSelParams *params,
   668         PKIX_Boolean *pEnabled,
   669         void *plContext)
   670 {
   671         PKIX_ENTER(COMCRLSELPARAMS,
   672                     "PKIX_ComCRLSelParams_GetNISTPolicyEnabled");
   673         PKIX_NULLCHECK_TWO(params, pEnabled);
   675         *pEnabled = params->nistPolicyEnabled;
   677         PKIX_RETURN(COMCRLSELPARAMS);
   678 }
   680 /*
   681  * FUNCTION: PKIX_ComCRLSelParams_SetDateAndTime (see comments in pkix_crlsel.h)
   682  */
   683 PKIX_Error *
   684 PKIX_ComCRLSelParams_SetNISTPolicyEnabled(
   685         PKIX_ComCRLSelParams *params,
   686         PKIX_Boolean enabled,
   687         void *plContext)
   688 {
   689         PKIX_ENTER(COMCRLSELPARAMS,
   690                     "PKIX_ComCRLSelParams_SetNISTPolicyEnabled");
   691         PKIX_NULLCHECK_ONE(params); /* allows date to be NULL from spec */
   693         params->nistPolicyEnabled = enabled;
   695         PKIX_CHECK(PKIX_PL_Object_InvalidateCache
   696                     ((PKIX_PL_Object *)params, plContext),
   697                     PKIX_OBJECTINVALIDATECACHEFAILED);
   699 cleanup:
   701         PKIX_RETURN(COMCRLSELPARAMS);
   702 }
   704 /*
   705  * FUNCTION: PKIX_ComCRLSelParams_GetMaxCRLNumber
   706  * (see comments in pkix_crlsel.h)
   707  */
   708 PKIX_Error *
   709 PKIX_ComCRLSelParams_GetMaxCRLNumber(
   710         PKIX_ComCRLSelParams *params,
   711         PKIX_PL_BigInt **pMaxCRLNumber,
   712         void *plContext)
   713 {
   714         PKIX_ENTER(COMCRLSELPARAMS,
   715                     "PKIX_ComCRLSelParams_GetMaxCRLNumber");
   716         PKIX_NULLCHECK_TWO(params, pMaxCRLNumber);
   718         PKIX_INCREF(params->maxCRLNumber);
   720         *pMaxCRLNumber = params->maxCRLNumber;
   722 cleanup:
   723         PKIX_RETURN(COMCRLSELPARAMS);
   724 }
   726 /*
   727  * FUNCTION: PKIX_ComCRLSelParams_SetMaxCRLNumber
   728  * (see comments in pkix_crlsel.h)
   729  */
   730 PKIX_Error *
   731 PKIX_ComCRLSelParams_SetMaxCRLNumber(
   732         PKIX_ComCRLSelParams *params,
   733         PKIX_PL_BigInt *maxCRLNumber,
   734         void *plContext)
   735 {
   736         PKIX_ENTER(COMCRLSELPARAMS,
   737                     "PKIX_ComCRLSelParams_SetMaxCRLNumber");
   738         PKIX_NULLCHECK_ONE(params); /* maxCRLNumber can be NULL - from spec */
   740         PKIX_DECREF(params->maxCRLNumber);
   742         PKIX_INCREF(maxCRLNumber);
   744         params->maxCRLNumber = maxCRLNumber;
   746         PKIX_CHECK(PKIX_PL_Object_InvalidateCache
   747                     ((PKIX_PL_Object *)params, plContext),
   748                     PKIX_OBJECTINVALIDATECACHEFAILED);
   750 cleanup:
   752         PKIX_RETURN(COMCRLSELPARAMS);
   753 }
   756 /*
   757  * FUNCTION: PKIX_ComCRLSelParams_GetMinCRLNumber
   758  * (see comments in pkix_crlsel.h)
   759  */
   760 PKIX_Error *
   761 PKIX_ComCRLSelParams_GetMinCRLNumber(
   762         PKIX_ComCRLSelParams *params,
   763         PKIX_PL_BigInt **pMinCRLNumber,
   764         void *plContext)
   765 {
   766         PKIX_ENTER(COMCRLSELPARAMS,
   767                     "PKIX_ComCRLSelParams_GetMinCRLNumber");
   768         PKIX_NULLCHECK_TWO(params, pMinCRLNumber);
   770         PKIX_INCREF(params->minCRLNumber);
   772         *pMinCRLNumber = params->minCRLNumber;
   774 cleanup:
   775         PKIX_RETURN(COMCRLSELPARAMS);
   776 }
   778 /*
   779  * FUNCTION: PKIX_ComCRLSelParams_SetMinCRLNumber
   780  * (see comments in pkix_crlsel.h)
   781  */
   782 PKIX_Error *
   783 PKIX_ComCRLSelParams_SetMinCRLNumber(
   784         PKIX_ComCRLSelParams *params,
   785         PKIX_PL_BigInt *minCRLNumber,
   786         void *plContext)
   787 {
   788         PKIX_ENTER(COMCRLSELPARAMS,
   789                     "PKIX_ComCRLSelParams_SetMinCRLNumber");
   790         PKIX_NULLCHECK_ONE(params); /* minCRLNumber can be NULL - from spec */
   792         PKIX_DECREF(params->minCRLNumber);
   794         PKIX_INCREF(minCRLNumber);
   796         params->minCRLNumber = minCRLNumber;
   798         PKIX_CHECK(PKIX_PL_Object_InvalidateCache
   799                     ((PKIX_PL_Object *)params, plContext),
   800                     PKIX_OBJECTINVALIDATECACHEFAILED);
   802 cleanup:
   804         PKIX_RETURN(COMCRLSELPARAMS);
   805 }
   808 PKIX_Error*
   809 PKIX_ComCRLSelParams_SetCrlDp(
   810          PKIX_ComCRLSelParams *params,
   811          PKIX_List *crldpList,
   812          void *plContext)
   813 {
   814     PKIX_ENTER(COMCRLSELPARAMS, "PKIX_ComCRLSelParams_SetCrlDp");
   815     PKIX_NULLCHECK_ONE(params); /* minCRLNumber can be NULL - from spec */
   817     PKIX_INCREF(crldpList);
   818     params->crldpList = crldpList;
   820     PKIX_CHECK(PKIX_PL_Object_InvalidateCache
   821                ((PKIX_PL_Object *)params, plContext),
   822                PKIX_OBJECTINVALIDATECACHEFAILED);
   823 cleanup:
   825         PKIX_RETURN(COMCRLSELPARAMS);
   826 }

mercurial