2.2.2.4 CAINFO
The CAINFO structure defines a basic informational block that describes a CA.
-
typedef struct _CAINFO { DWORD cbSize; long CAType; DWORD cCASignatureCerts; DWORD cCAExchangeCerts; DWORD cExitAlgorithms; long lPropIDMax; long lRoleSeparationEnabled; DWORD cKRACertUsedCount; DWORD cKRACertCount; DWORD fAdvancedServer; } CAINFO;
cbSize: Unsigned integer value that MUST contain the size of this structure in bytes.
CAType: Integer value that SHOULD contain a constant describing the CA type. The value SHOULD be one of the values in the following table.
-
Note The value 0x00000002 MUST NOT be used for this parameter.
-
Value
Meaning
ENUM_ENTERPRISE_ROOTCA
0x00000000
The CA is an enterprise root (self-signed) CA. For more information, see [MSFT-PKI].
ENUM_ENTERPRISE_SUBCA
0x00000001
The CA is an enterprise subordinate CA. For more information, see [MSFT-PKI].
ENUM_STANDALONE_ROOTCA
0x00000003
The CA is a stand-alone root (self-signed) CA. For more information, see [MSFT-PKI].
ENUM_STANDALONE_SUBCA
0x00000004
The CA is a stand-alone subordinate CA. For more information, see [MSFT-PKI].
ENUM_UNKNOWN_CA
0x00000005
The CA type is unknown.
cCASignatureCerts: Unsigned integer value that SHOULD contain the count of CA signing certificates in the CA. A CA signing certificate contains a public key that is in turn associated with the private key used to sign certificates that are issued by the CA. For more information on CA signing certificates, see [MSFT-PKI].
cCAExchangeCerts: Unsigned integer value that SHOULD contain the count of CA exchange certificates in the CA. CA exchange certificates contain public keys that are used to encrypt requests sent to a CA. For more information, see [MSFT-ARCHIVE].
cExitAlgorithms: Unsigned integer value that SHOULD contain the number of exit algorithms that are installed and active for the CA.
lPropIDMax: Integer that SHOULD contain the maximum supported value for the PropID parameter in the ICertRequestD2::GetCAProperty method. For more information on CA properties, see section 3.2.1.4.3.2.
lRoleSeparationEnabled: Integer value that SHOULD indicate whether CA role separation is enabled on the CA. A value of 0 indicates that CA role separation is disabled; a value of 1 indicates that it is enabled.
cKRACertUsedCount: Unsigned integer value that SHOULD contain the number of key recovery agent (KRA) keys used to encrypt each archived private key.
cKRACertCount: Unsigned integer value that SHOULD contain the number of KRA keys available for the CA to encrypt archived private keys.
fAdvancedServer: Unsigned integer value that SHOULD be set to 0 for standard CA and 1 for advanced CA. This value is a Boolean value. The CA SHOULD return 0 or 1.