Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

501 lines
18 KiB

//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: certcli.idl
//
// Contents: IDL source for certcli.dll
//
//---------------------------------------------------------------------------
// This file will be processed by the MIDL tool to produce the type library
// (certcli.tlb) and marshalling code.
import "wtypes.idl";
import "certif.idl";
import "oaidl.idl";
//+--------------------------------------------------------------------------
// ICertGetConfig -- local COM interface, local implementation
//+--------------------------------------------------------------------------
[
object,
uuid(c7ea09c0-ce17-11d0-8833-00a0c903b83c),
dual,
helpstring("ICertGetConfig Interface"),
pointer_default(unique)
]
interface ICertGetConfig: IDispatch
{
HRESULT GetConfig(
[in] LONG Flags,
[out, retval] BSTR *pstrOut);
};
//+--------------------------------------------------------------------------
// ICertConfig::GetField()
// strFieldName parameter values:
cpp_quote("#define wszCONFIG_COMMONNAME L\"CommonName\"")
cpp_quote("#define wszCONFIG_ORGUNIT L\"OrgUnit\"")
cpp_quote("#define wszCONFIG_ORGANIZATION L\"Organization\"")
cpp_quote("#define wszCONFIG_LOCALITY L\"Locality\"")
cpp_quote("#define wszCONFIG_STATE L\"State\"")
cpp_quote("#define wszCONFIG_COUNTRY L\"Country\"")
cpp_quote("#define wszCONFIG_CONFIG L\"Config\"")
cpp_quote("#define wszCONFIG_EXCHANGECERTIFICATE L\"ExchangeCertificate\"")
cpp_quote("#define wszCONFIG_SIGNATURECERTIFICATE L\"SignatureCertificate\"")
cpp_quote("#define wszCONFIG_DESCRIPTION L\"Description\"")
cpp_quote("#define wszCONFIG_COMMENT L\"Comment\" // obsolete: use Description")
cpp_quote("#define wszCONFIG_SERVER L\"Server\"")
cpp_quote("#define wszCONFIG_AUTHORITY L\"Authority\"")
cpp_quote("#define wszCONFIG_SANITIZEDNAME L\"SanitizedName\"")
cpp_quote("#define wszCONFIG_SHORTNAME L\"ShortName\"")
cpp_quote("#define wszCONFIG_SANITIZEDSHORTNAME L\"SanitizedShortName\"")
cpp_quote("#define wszCONFIG_FLAGS L\"Flags\"")
// Flags setting
const LONG CAIF_DSENTRY = 0x00000001; // bit set for CA from DS
const LONG CAIF_SHAREDFOLDERENTRY = 0x00000002; // CA from shared folder
const LONG CAIF_REGISTRY = 0x00000004; // CA from local registry
const LONG CAIF_LOCAL = 0x00000008; // local CA
const LONG CAIF_REGISTRYPARENT = 0x00000010; // CA parent from registry
//+--------------------------------------------------------------------------
// ICertConfig -- local COM interface, local implementation
//+--------------------------------------------------------------------------
[
object,
uuid(372fce34-4324-11d0-8810-00a0c903b83c),
dual,
helpstring("ICertConfig Interface"),
pointer_default(unique)
]
interface ICertConfig: IDispatch
{
HRESULT Reset(
[in] LONG Index,
[out, retval] LONG *pCount);
HRESULT Next(
[out, retval] LONG *pIndex);
HRESULT GetField(
[in] BSTR const strFieldName,
[out, retval] BSTR *pstrOut);
HRESULT GetConfig(
[in] LONG Flags,
[out, retval] BSTR *pstrOut);
};
//+--------------------------------------------------------------------------
// ICertConfig2 -- local COM interface, local implementation
//+--------------------------------------------------------------------------
[
object,
uuid(7a18edde-7e78-4163-8ded-78e2c9cee924),
dual,
helpstring("ICertConfig2 Interface"),
pointer_default(unique)
]
interface ICertConfig2: ICertConfig
{
HRESULT SetSharedFolder(
[in] BSTR const strSharedFolder);
};
//+--------------------------------------------------------------------------
// ICertRequest::Submit()
// Flags for request and attributes encoding and type:
const LONG CR_IN_BASE64HEADER = 0x00000000; // BASE64 with begin/end
const LONG CR_IN_BASE64 = 0x00000001; // BASE64 w/o begin/end
const LONG CR_IN_BINARY = 0x00000002; // binary request
const LONG CR_IN_ENCODEANY = 0x000000ff; // Could be any of the above
const LONG CR_IN_ENCODEMASK = 0x000000ff; // request encoding mask
const LONG CR_IN_FORMATANY = 0x00000000; // Could be any of the below
const LONG CR_IN_PKCS10 = 0x00000100; // PKCS 10 request
const LONG CR_IN_KEYGEN = 0x00000200; // Keygen request
const LONG CR_IN_PKCS7 = 0x00000300; // PKCS 7 renewal request
const LONG CR_IN_CMC = 0x00000400; // CMC request
const LONG CR_IN_FORMATMASK = 0x0000ff00; // request format mask
// Cert Server 1.0 obsolete encryption bits:
//const LONG CR_IN_ENCRYPTED_REQUEST = 0x00010000; // request encrypted
//const LONG CR_IN_ENCRYPTED_ATTRIBUTES = 0x00020000; // attributes encrypted
const LONG CR_IN_RPC = 0x00020000; // Use RPC instead of DCOM
const LONG CR_IN_FULLRESPONSE = 0x00040000; // Return CMC Full Response
const LONG CR_IN_CRLS = 0x00080000; // include current CRLs
// Flags for GetConfig flag
const LONG CC_DEFAULTCONFIG = 0x00000000; // ask to get 1st pingable CA
const LONG CC_UIPICKCONFIG = 0x00000001; // invoke UI to pick CA
const LONG CC_FIRSTCONFIG = 0x00000002; // pick first CA
const LONG CC_LOCALCONFIG = 0x00000003; // pick local CA
const LONG CC_LOCALACTIVECONFIG = 0x00000004; // pick local pingable CA
const LONG CC_UIPICKCONFIGSKIPLOCALCA = 0x00000005; // UI to pick non-local CA
//+--------------------------------------------------------------------------
// ICertRequest::Submit(), ICertRequest::RetrievePending() and
// returned Disposition:
const LONG CR_DISP_INCOMPLETE = 0x00000000; // request did not complete
const LONG CR_DISP_ERROR = 0x00000001; // request failed
const LONG CR_DISP_DENIED = 0x00000002; // request denied
const LONG CR_DISP_ISSUED = 0x00000003; // cert issued
const LONG CR_DISP_ISSUED_OUT_OF_BAND = 0x00000004; // cert issued separately
const LONG CR_DISP_UNDER_SUBMISSION = 0x00000005; // taken under submission
const LONG CR_DISP_REVOKED = 0x00000006; // issued and revoked
//+--------------------------------------------------------------------------
// ICertRequest::GetCACertificate(),
// ICertRequest::GetCertificate(),
// ICertAdmin::GetCRL(),
// ICertRequest2::GetCAProperty(),
// ICertAdmin2::GetCAProperty()
// ICertRequest2::GetFullResponseProperty(),
// Flags for certificate encoding:
const LONG CR_OUT_BASE64HEADER = 0x00000000; // BASE64 with begin/end
const LONG CR_OUT_BASE64 = 0x00000001; // BASE64 w/o begin/end
const LONG CR_OUT_BINARY = 0x00000002; // binary certificate
const LONG CR_OUT_ENCODEMASK = 0x000000ff; // certificate encoding mask
const LONG CR_OUT_CHAIN = 0x00000100; // return certificate chain
const LONG CR_OUT_CRLS = 0x00000200; // chain with current CRLs
//+--------------------------------------------------------------------------
// ICertRequest2::GetErrorMessageText() Flags
const LONG CR_GEMT_HRESULT_STRING = 0x00000001; // Append "0xXX (Win32: DD)"
//+--------------------------------------------------------------------------
// ICertRequest2::GetCAProperty(), ICertAdmin2::GetCAProperty() PropId
cpp_quote("#define CR_PROP_NONE 0 // Invalid")
cpp_quote("#define CR_PROP_FILEVERSION 1 // String")
cpp_quote("#define CR_PROP_PRODUCTVERSION 2 // String")
cpp_quote("#define CR_PROP_EXITCOUNT 3 // Long")
cpp_quote("")
cpp_quote("// CR_PROP_EXITCOUNT Elements:")
cpp_quote("#define CR_PROP_EXITDESCRIPTION 4 // String, Indexed")
cpp_quote("")
cpp_quote("#define CR_PROP_POLICYDESCRIPTION 5 // String")
cpp_quote("#define CR_PROP_CANAME 6 // String")
cpp_quote("#define CR_PROP_SANITIZEDCANAME 7 // String")
cpp_quote("#define CR_PROP_SHAREDFOLDER 8 // String")
cpp_quote("#define CR_PROP_PARENTCA 9 // String")
cpp_quote("#define CR_PROP_CATYPE 10 // Long")
cpp_quote("#define CR_PROP_CASIGCERTCOUNT 11 // Long")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CASIGCERT 12 // Binary, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CASIGCERTCHAIN 13 // Binary, Indexed")
cpp_quote("")
cpp_quote("#define CR_PROP_CAXCHGCERTCOUNT 14 // Long")
cpp_quote("")
cpp_quote("// CR_PROP_CAXCHGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CAXCHGCERT 15 // Binary, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CAXCHGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CAXCHGCERTCHAIN 16 // Binary, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("// Fetch only if CR_PROP_CRLSTATE[i] == CA_DISP_VALID")
cpp_quote("// May also be available if CR_PROP_CRLSTATE[i] == CA_DISP_INVALID")
cpp_quote("#define CR_PROP_BASECRL 17 // Binary, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("// Fetch only if Delta CRLs enabled && CR_PROP_CRLSTATE[i] == CA_DISP_VALID")
cpp_quote("// May also be available if CR_PROP_CRLSTATE[i] == CA_DISP_INVALID")
cpp_quote("#define CR_PROP_DELTACRL 18 // Binary, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CACERTSTATE 19 // Long, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CRLSTATE 20 // Long, Indexed")
cpp_quote("")
cpp_quote("#define CR_PROP_CAPROPIDMAX 21 // Long")
cpp_quote("#define CR_PROP_DNSNAME 22 // String")
cpp_quote("#define CR_PROP_ROLESEPARATIONENABLED 23 // Long")
cpp_quote("#define CR_PROP_KRACERTUSEDCOUNT 24 // Long")
cpp_quote("#define CR_PROP_KRACERTCOUNT 25 // Long")
cpp_quote("")
cpp_quote("// CR_PROP_KRACERTCOUNT Elements:")
cpp_quote("#define CR_PROP_KRACERT 26 // Binary, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_KRACERTCOUNT Elements:")
cpp_quote("#define CR_PROP_KRACERTSTATE 27 // Long, Indexed")
cpp_quote("")
cpp_quote("#define CR_PROP_ADVANCEDSERVER 28 // Long")
cpp_quote("#define CR_PROP_TEMPLATES 29 // String")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("// Fetch only if CR_PROP_CRLSTATE[i] == CA_DISP_VALID")
cpp_quote("#define CR_PROP_BASECRLPUBLISHSTATUS 30 // Long, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("// Fetch only if Delta CRLs enabled && CR_PROP_CRLSTATE[i] == CA_DISP_VALID")
cpp_quote("#define CR_PROP_DELTACRLPUBLISHSTATUS 31 // Long, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CASIGCERTCRLCHAIN 32 // Binary, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CAXCHGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CAXCHGCERTCRLCHAIN 33 // Binary, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CACERTSTATUSCODE 34 // Long, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CAFORWARDCROSSCERT 35 // Binary, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CABACKWARDCROSSCERT 36 // Binary, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CAFORWARDCROSSCERTSTATE 37 // Long, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CABACKWARDCROSSCERTSTATE 38 // Long, Indexed")
cpp_quote("")
cpp_quote("// CR_PROP_CASIGCERTCOUNT Elements:")
cpp_quote("#define CR_PROP_CACERTVERSION 39 // Long, Indexed")
cpp_quote("#define CR_PROP_SANITIZEDCASHORTNAME 40 // String")
//+--------------------------------------------------------------------------
// ICertRequest2::GetFullResponseProperty() PropId
cpp_quote("")
cpp_quote("")
cpp_quote("#define FR_PROP_NONE 0 // Invalid")
cpp_quote("#define FR_PROP_FULLRESPONSE 1 // Binary")
cpp_quote("#define FR_PROP_STATUSINFOCOUNT 2 // Long")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_BODYPARTSTRING 3 // String, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_STATUS 4 // Long, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_STATUSSTRING 5 // String, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_OTHERINFOCHOICE 6 // Long, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_FAILINFO 7 // Long, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_PENDINFOTOKEN 8 // Binary, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_PENDINFOTIME 9 // Date, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_ISSUEDCERTIFICATEHASH 10 // Binary, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_ISSUEDCERTIFICATE 11 // Binary, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_ISSUEDCERTIFICATECHAIN 12 // Binary, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_ISSUEDCERTIFICATECRLCHAIN 13 // Binary, Indexed")
cpp_quote("")
cpp_quote("// FR_PROP_STATUSINFOCOUNT Elements:")
cpp_quote("#define FR_PROP_ENCRYPTEDKEYHASH 14 // Binary, Indexed")
cpp_quote("")
cpp_quote("#define FR_PROP_FULLRESPONSENOPKCS7 15 // Binary")
//+--------------------------------------------------------------------------
// ICertRequest -- local COM interface, implementation uses DCOM
//+--------------------------------------------------------------------------
[
object,
uuid(014e4840-5523-11d0-8812-00a0c903b83c),
dual,
helpstring("ICertRequest Interface"),
pointer_default(unique)
]
interface ICertRequest: IDispatch
{
HRESULT Submit(
[in] LONG Flags,
[in] BSTR const strRequest,
[in] BSTR const strAttributes,
[in] BSTR const strConfig,
[out, retval] LONG *pDisposition);
HRESULT RetrievePending(
[in] LONG RequestId,
[in] BSTR const strConfig,
[out, retval] LONG *pDisposition);
HRESULT GetLastStatus(
[out, retval] LONG *pStatus);
HRESULT GetRequestId(
[out, retval] LONG *pRequestId);
HRESULT GetDispositionMessage(
[out, retval] BSTR *pstrDispositionMessage);
HRESULT GetCACertificate(
[in] LONG fExchangeCertificate,
[in] BSTR const strConfig,
[in] LONG Flags, // CR_OUT_*
[out, retval] BSTR *pstrCertificate);
HRESULT GetCertificate(
[in] LONG Flags, // CR_OUT_*
[out, retval] BSTR *pstrCertificate);
};
//+--------------------------------------------------------------------------
// ICertRequest2 -- local COM interface, implementation uses DCOM
//+--------------------------------------------------------------------------
[
object,
uuid(a4772988-4a85-4fa9-824e-b5cf5c16405a),
dual,
helpstring("ICertRequest2 Interface"),
pointer_default(unique)
]
interface ICertRequest2: ICertRequest
{
HRESULT GetIssuedCertificate(
[in] BSTR const strConfig,
[in] LONG RequestId, // -1: use strSerialNumber
[in] BSTR const strSerialNumber, // OPTIONAL
[out, retval] LONG *pDisposition);
HRESULT GetErrorMessageText(
[in] LONG hrMessage,
[in] LONG Flags,
[out, retval] BSTR *pstrErrorMessageText);
HRESULT GetCAProperty(
[in] BSTR const strConfig,
[in] LONG PropId, // CR_PROP_*
[in] LONG PropIndex,
[in] LONG PropType, // PROPTYPE_*
[in] LONG Flags, // CR_OUT_*
[out, retval] VARIANT *pvarPropertyValue);
HRESULT GetCAPropertyFlags(
[in] BSTR const strConfig,
[in] LONG PropId, // CR_PROP_*
[out, retval] LONG *pPropFlags); // PROPTYPE_* | PROPFLAGS_*
HRESULT GetCAPropertyDisplayName(
[in] BSTR const strConfig,
[in] LONG PropId, // CR_PROP_*
[out, retval] BSTR *pstrDisplayName);
HRESULT GetFullResponseProperty(
[in] LONG PropId, // FR_PROP_*
[in] LONG PropIndex,
[in] LONG PropType, // PROPTYPE_*
[in] LONG Flags, // CR_OUT_*
[out, retval] VARIANT *pvarPropertyValue);
};
//+--------------------------------------------------------------------------
// certcli Type library
//+--------------------------------------------------------------------------
[
uuid(372fce32-4324-11d0-8810-00a0c903b83c),
version(1.0),
helpstring("CertCli 1.0 Type Library")
]
library CERTCLIENTLib
{
importlib("stdole2.tlb");
//------------------------------------------------
// CCertGetConfig
[
uuid(c6cc49b0-ce17-11d0-8833-00a0c903b83c),
helpstring("CertGetConfig Class")
]
coclass CCertGetConfig
{
[default] interface ICertGetConfig;
};
//------------------------------------------------
// CCertConfig
[
uuid(372fce38-4324-11d0-8810-00a0c903b83c),
helpstring("CertConfig Class")
]
coclass CCertConfig
{
[default] interface ICertConfig2;
};
//------------------------------------------------
// CCertRequest
[
uuid(98aff3f0-5524-11d0-8812-00a0c903b83c),
helpstring("CertRequest Class")
]
coclass CCertRequest
{
[default] interface ICertRequest2;
};
//------------------------------------------------
// CCertServerPolicy
[
uuid(aa000926-ffbe-11cf-8800-00a0c903b83c),
helpstring("CertServerPolicy Class")
]
coclass CCertServerPolicy
{
[default] interface ICertServerPolicy;
};
//------------------------------------------------
// CCertServerExit
[
uuid(4c4a5e40-732c-11d0-8816-00a0c903b83c),
helpstring("CertServerExit Class")
]
coclass CCertServerExit
{
[default] interface ICertServerExit;
};
};