blob: ee18ddef9516c112d0ab628b5def67965a1c6072 [file] [log] [blame]
/* 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_revocationmethod.c
*
* RevocationMethod Object Functions
*
*/
#include "pkix_revocationmethod.h"
#include "pkix_tools.h"
/* Constructor of revocation method object. Does not create an object,
* but just initializez PKIX_RevocationMethodStruct fields. Object
* suppose to be already created. */
PKIX_Error *
pkix_RevocationMethod_Init(
pkix_RevocationMethod *method,
PKIX_RevocationMethodType methodType,
PKIX_UInt32 flags,
PKIX_UInt32 priority,
pkix_LocalRevocationCheckFn localRevChecker,
pkix_ExternalRevocationCheckFn externalRevChecker,
void *plContext)
{
PKIX_ENTER(REVOCATIONMETHOD, "PKIX_RevocationMethod_Init");
method->methodType = methodType;
method->flags = flags;
method->priority = priority;
method->localRevChecker = localRevChecker;
method->externalRevChecker = externalRevChecker;
PKIX_RETURN(REVOCATIONMETHOD);
}
/* Data duplication data. Not create an object. Only initializes fields
* in the new object by data from "object". */
PKIX_Error *
pkix_RevocationMethod_Duplicate(
PKIX_PL_Object *object,
PKIX_PL_Object *newObject,
void *plContext)
{
pkix_RevocationMethod *method = NULL;
PKIX_ENTER(REVOCATIONMETHOD, "pkix_RevocationMethod_Duplicate");
PKIX_NULLCHECK_TWO(object, newObject);
method = (pkix_RevocationMethod *)object;
PKIX_CHECK(
pkix_RevocationMethod_Init((pkix_RevocationMethod*)newObject,
method->methodType,
method->flags,
method->priority,
method->localRevChecker,
method->externalRevChecker,
plContext),
PKIX_COULDNOTCREATEREVOCATIONMETHODOBJECT);
cleanup:
PKIX_RETURN(REVOCATIONMETHOD);
}