Platform SDK: Certificate Enrollment Control

ICEnroll3

[Visual Basic] The ICEnroll3 interface is an interface of the CEnroll object. This interface is primarily of interest if you are not using Automation. If, on the other hand, you are programming in Visual Basic or another Automation language, see the CEnroll object for a complete listing of the methods and properties available.

The ICEnroll3 interface is one of three interfaces currently exposed by the CEnroll object, which provides the entire functionality for the Certificate Enrollment Control. Before Microsoft® Windows® 2000 Beta 3, the CEnroll object exposed two interfaces, ICEnroll and ICEnroll2. However, beginning with Windows 2000 Beta 3, the CEnroll object also supports ICEnroll3.

Because ICEnroll3 inherits all members of the earlier ICEnroll and ICEnroll2 interfaces, the following tables include those members as well as the additional methods and properties that ICEnroll3 supports.

Method Description
acceptFilePKCS7 Accepts and processes a PKCS #7 containing a certificate. The PKCS #7 is stored in a file.

Implemented as ICEnroll::acceptFilePKCS7.

acceptPKCS7 Accepts and processes a PKCS #7 containing a certificate. The PKCS #7 is input as a parameter.

Implemented as ICEnroll::acceptPKCS7.

addCertTypeToRequest Adds a certificate template to a request (used to support the enterprise certification authority (CA)).

Implemented as ICEnroll2::addCertTypeToRequest.

addNameValuePairToSignature Adds a name/value pair to an attribute (the name/value pair is interpreted by the CA).

Implemented as ICEnroll2::addNameValuePairToSignature.

createFilePKCS10 Creates a PKCS #10 reqesting a certificate for the person or entity whose information is supplied in the PKCS #10. This PKCS #10 is saved to a file.

Implemented as ICEnroll::createFilePKCS10.

createPKCS10 Creates a PKCS #10 reqesting a certificate for the person or entity whose information is supplied in the PKCS #10. This PKCS #10 is a return or output parameter.

Implemented as ICEnroll::createPKCS10.

EnumAlgs Enumerates IDs of algorithms supported by the cryptographic service provider (CSP).
enumContainers Enumerates all the containers for the provider specified in the ProviderName property.

Implemented as ICEnroll::enumContainers.

enumProviders Enumerates all the providers available on the computer for the specified ProviderType property.

Implemented as ICEnroll::enumProviders.

freeRequestInfo Cleans up the stores if an error occurs or if a PKCS #7 is not to be accepted for some reason. Currently not implemented.

Implemented as ICEnroll::freeRequestInfo.

GetAlgName Retrieves the name corresponding to an algorithm ID.
getCertFromPKCS7 Retrieves from a PKCS #7 the single certificate that was issued in response to a PKCS #10.

Implemented as ICEnroll::getCertFromPKCS7.

GetKeyLen Retrieves minimum and maximum key lengths.
GetSupportedKeySpec Retrieves information regarding the CSP's support for signature or exchange keys.
InstallPKCS7 Accepts and processes a PKCS #7 containing a certificate or chain of certificates. The PKCS #7 is input as a parameter. This differs from acceptPKCS7 because InstallPKCS7 doesn't receive a request certificate.
Reset Places the ICEnroll3 object into its initial state.

The following properties are provided for the ICEnroll3 interface. For information on using these properties, see Using the Certificate Enrollment Control Properties.

Property Description
CAStoreFlags

[C++] Access: Read/write
Data type: DWORD

[Visual Basic] Access: Read/write
Data type: Long

Passed directly to CertOpenStore, specifying characteristics when opening the certification authority (CA) store.

Implemented as ICEnroll::CAStoreFlags.

CAStoreName

[C++] Access: Read/write
Data type: BSTR

[Visual Basic] Access: Read/write
Data type: String

Specifies where all non-"ROOT" and non-"MY" certificates are kept.

Implemented as ICEnroll::CAStoreName.

CAStoreType

[C++] Access: Read/write
Data type: BSTR

[Visual Basic] Access: Read/write
Data type: String

Specifies the type of store to use for the store specified by the CAStoreName property.

Implemented as ICEnroll::CAStoreType.

ContainerName

[C++] Access: Read/write
Data type: BSTR

[Visual Basic] Access: Read/write
Data type: String

Specifies the name of the key container to use.

Implemented as ICEnroll::ContainerName.

DeleteRequestCert

[C++] Access: Read/write
Data type: BOOL

[Visual Basic] Access: Read/write
Data type: Boolean

Controls whether a dummy certificate is deleted — a dummy certificate created to persist the keys generated while the PKCS #10 certificate request is being issued.

Implemented as ICEnroll::DeleteRequestCert.

EnableT61DNEncoding

[C++] Access: Read/write
Data type: BOOL

[Visual Basic] Access: Read/write
Data type: Boolean

Controls whether the certificate's distinguished name is encoded as a T61 string instead of as a UNICODE string.

Implemented as ICEnroll2::EnableT61DNEncoding.

EnableSMIMECapabilities

[C++] Access: Read/write
Data type: BOOL

[Visual Basic] Access: Read/write
Data type: Boolean

Controls whether the PKCS10 will contain a signed attribute for S/MIME capabilities.
GenKeyFlags

[C++] Access: Read\write
Data type: DWORD

[Visual Basic] Access: Read\write
Data type: Long

Passed directly to CryptGenKey, specifying characteristics of the key being created.

Implemented as ICEnroll::GenKeyFlags.

HashAlgID

[C++] Access: Read\write
Data type: DWORD

[Visual Basic] Access: Read\write
Data type: Long

Specifies the preferred hash algorithm for signing the PKCS #10.
HashAlgorithm

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Specifies the preferred hash algorithm for signing the PKCS #10.

Implemented as ICEnroll::HashAlgorithm.

KeySpec

[C++] Access: Read\write
Data type: DWORD

[Visual Basic] Access: Read\write
Data type: Long

Specifies the key type to be generated.

Implemented as ICEnroll::KeySpec.

LimitExchangeKeyToEncipherment

[C++] Access: Read/write
Data type: BOOL

[Visual Basic] Access: Read/write
Data type: Boolean

Controls whether the request will contain key usages for digital signature and non-repudiation (applies to AT_KEYEXCHANGE requests only).
MyStoreFlags

[C++] Access: Read\write
Data type: DWORD

[Visual Basic] Access: Read\write
Data type: Long

Passed directly to CertOpenStore, specifying characteristics when opening the MY store.

Implemented as ICEnroll::MyStoreFlags.

MyStoreName

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Specifies where certificates with linked private keys are kept.

Implemented as ICEnroll::MyStoreName.

MyStoreType

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Specifies the type of store to use for the store specified by the MyStoreName property.

Implemented as ICEnroll::MyStoreType.

ProviderFlags

[C++] Access: Read\write
Data type: DWORD

[Visual Basic] Access: Read\write
Data type: Long

Use depends on the provider in use.

Implemented as ICEnroll::ProviderFlags.

ProviderName

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Specifies the cryptographic service provider (CSP) to use.

Implemented as ICEnroll::ProviderName.

ProviderType

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Use depends on the provider in use.

Implemented as ICEnroll::ProviderType.

PVKFileName

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Secifies that the private keys be generated as exportable and written to the file specified by the PVKFileName property.

Implemented as ICEnroll::PVKFileName.

RequestStoreFlags

[C++] Access: Read\write
Data type: DWORD

[Visual Basic] Access: Read\write
Data type: Long

Passed directly to CertOpenStore, specifying characteristics when opening the REQUEST store.

Implemented as ICEnroll::RequestStoreFlags.

RequestStoreName

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Specifies the certificate store used to store the dummy certificate to which the private keys have been added, until a certification authority processes the request and responds with a PKCS #7.

Implemented as ICEnroll::RequestStoreName.

RequestStoreType

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Specifies the type of store to use for the store specified by the RequestStoreName property.

Implemented as ICEnroll::RequestStoreType.

ReuseHardwareKeyIfUnableToGenNew

[C++] Access: Read\write
Data type: BOOL

[Visual Basic] Access: Read\write
Data type: Boolean

For hardware CSPs only (such as smart card), determines if an existing key is reused when it is not possible to create a new key.
RootStoreFlags

[C++] Access: Read\write
Data type: DWORD

[Visual Basic] Access: Read\write
Data type: Long

Passed directly to CertOpenStore, specifying characteristics when opening the ROOT store.

Implemented as ICEnroll::RootStoreFlags.

RootStoreName

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Specifies where all intrinsically trusted, self-signed ROOT certificates are kept.

Implemented as ICEnroll::RootStoreName.

RootStoreType

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Specifies the type of store to use for the store specified by the RootStoreName property.

Implemented as ICEnroll::RootStoreName.

SPCFileName

[C++] Access: Read\write
Data type: BSTR

[Visual Basic] Access: Read\write
Data type: String

Specifies a file to which to write the PKCS #7 (in BSTR form) returned from the certification authority.

Implemented as ICEnroll::SPCFileName.

UseExistingKeySet

[C++] Access: Read\write
Data type: BOOL

[Visual Basic] Access: Read\write
Data type: Boolean

Specifies that an existing key set be used, instead of generating a new one (the default value is FALSE).

Implemented as ICEnroll::UseExistingKeySet.

WriteCertToCSP

[C++] Access: Read\write
Data type: BOOL

[Visual Basic] Access: Read\write
Data type: Boolean

Specifies whether a certificate should be written to the cryptographic service provider.

Implemented as ICEnroll::WriteCertToCSP.

WriteCertToUserDS

[C++] Access: Read\write
Data type: BOOL

[Visual Basic] Access: Read\write
Data type: Boolean

Specifies whether a certificate is written to the user's Directory Service.

Implemented as ICEnroll2::WriteCertToUserDS.


Requirements

  Windows NT/2000: Requires Windows 2000.
  Header: Declared in Xenroll.h.
  Library: Use Uuid.lib.

See Also

ICEnroll, ICEnroll2