IX509ExtensionBasicConstraints::InitializeEncode method (certenroll.h)

The InitializeEncode method initializes the extension from a Boolean value that indicates whether the certificate subject is a certification authority (CA) and an integer that contains the depth of the subordinate CA chain.

Syntax

HRESULT InitializeEncode(
  [in] VARIANT_BOOL IsCA,
  [in] LONG         PathLenConstraint
);

Parameters

[in] IsCA

A VARIANT_BOOL variable that specifies whether the certificate subject is a CA.

[in] PathLenConstraint

A LONG variable that contains the maximum number of certificates in the chain.

Return value

If the function succeeds, the function returns S_OK.

If the function fails, it returns an HRESULT value that indicates the error. Possible values include, but are not limited to, those in the following table. For a list of common error codes, see Common HRESULT Values.

Return code/value Description
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
The object is already initialized.

Remarks

The method associates the name collection with the XCN_OID_BASIC_CONSTRAINTS2 (2.5.29.19) object identifier (OID) and encodes it by using Distinguished Encoding Rules (DER).

You must call either InitializeEncode or InitializeDecode before you can use an IX509ExtensionBasicConstraints object. The two methods complement each other. The InitializeEncode method enables you to construct a DER-encoded Abstract Syntax Notation One (ASN.1) extension object from raw data, and the InitializeDecode method enables you to initialize the raw data from an encoded object.

You can retrieve the following properties for this extension:

  • The Critical property identifies whether the extension is critical. You can also specify this property.
  • The ObjectId property retrieves the OID.
  • The IsCA property identifies whether the certificate subject can be a certification authority.
  • The PathLenConstraint property identifies the depth of the subordinate certification authority chain.

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header certenroll.h
DLL CertEnroll.dll

See also

IX509ExtensionBasicConstraints