The SetCertificateExtension method adds a new extension to the certificate to be issued.
[VB] void SetCertificateExtension(
BSTR strConfig,
long RequestId,
BSTR strExtensionName,
long Type,
long Flags,
VARIANT pvarValue
);
[JAVA] void SetCertificateExtension(
java.lang.String strConfig,
int RequestId,
java.lang.String strExtensionName,
int Type,
int Flags,
com.ms.Variant pvarValue
);
[C++] HRESULT SetCertificateExtension(
BSTR const strConfig, // in
LONG RequestId, // in
BSTR const strExtensionName, // in
LONG Type, // in
LONG Flags, // in
VARIANT const *pvarValue // in
);
Type | Description |
---|---|
PROPTYPE_LONG | Signed long data |
PROPTYPE_DATE | Date / Time |
PROPTYPE_BINARY | Binary data |
PROPTYPE_STRING | String data |
Flag Value | Explanation |
---|---|
EXTENSION_CRITICAL_FLAG | This is a critical extension |
EXTENSION_DISABLE_FLAG | Extension will not be used |
Note When ExtFlags is set to EXTENSION_DISABLE_FLAG, the extension will be disabled in the Server Log but will not be added to the certificate.
This method does not return a value.
The following C++ code sets a revocation URL string and extension critical flag into the certificate:
HRESULT hr;
BSTR strExtensionName = SysAllocString("2.29.38.4");
VARIANT varExt;
varExt.vt = VT_BSTR; // initialize type tag field
varExt.bstrVal = SysAllocString("http://UrlTest.htm");
hr = pICertServerPolicy->SetCertificateExtension(
strConfig, // assume previously set
RequestId, // assume previously set
strExtensionName, // extension name
PROPTYPE_STRING,
EXTENSION_CRITICAL_FLAG,
&varExt);
// Use the strAttributeValue ...
// free it when done
if (NULL != strExtensionName)
{
SysFreeString(strExtensionName);
}
VariantClear(&varExt);
Windows NT: Requires version 5.0 or later (or version 4.0 with the Windows NT 4.0 Option Pack).
Windows: Unsupported.
Windows CE: Unsupported.
Header: Declared in certadm.h.
Import Library: Use certidl.lib.