ICertServerPolicy Interface

The ICertServerPolicy interface is exported by the Server Engine and is called by the policy module. It allows the policy module to get and enumerate elements of requests and certificates, to get and set certificate extensions, and to set certain certificate properties.

From the time the VerifyRequest method is called until it returns, the unresolved request and certificate under construction can be accessed through a Context data object. Because the policy module can add to or override request properties by calling SetCertificateProperty, certificate properties can differ from request properties.

The strPropertyName parameter used by all of these methods must be a property name string as described in the following section on property names.

Only those properties passed to ICertRequest as part of the named attribute string parameter or the PKCS #10 certificate request can be accessed through this method. Examples of named attributes include "RequestAttributes.Type", "RequestAttributes.Version", or other arbitrarily named properties created by a site administrator to communicate site-specific information from the request generator to the policy module. Examples of PKCS #10 property names include those beginning with the Subject, PublicKey, and Signature prefixes.

The following methods are provided by the ICertServerPolicy interface.

Method Description
EnumerateAttributes Returns the OID of the current attribute within the certificate to be published.
EnumerateAttributesClose Frees any resources connected with attribute enumeration.
EnumerateAttributesSetup Initializes the internal enumeration pointer to the first attribute within the certificate to be issued.
EnumerateExtensions Returns the OID of the current extension within the certificate to be published.
EnumerateExtensionsClose Frees any resources connected with extension enumeration.
EnumerateExtensionsSetup Initializes the internal enumeration pointer to the first extension within the certificate to be issued.
GetCertificateExtension Gets a specified certificate extension.
GetCertificateExtensionFlags Gets the flags from the extension acquired by the most recent call to GetCertificateExtension.
GetCertificateProperty Returns a named property from a certificate.
GetRequestAttribute Returns a named attribute from a request.
GetRequestProperty Returns a named property from a request.
SetCertificateExtension Adds a new extension to the certificate to be issued.
SetCertificateProperty Causes the Server Engine to add a named property to a certificate.
SetContext Sets the current instantiation of the interface to operate on the specified request.