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.
 
 
 
 
 
 

257 lines
7.6 KiB

//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: certadm.idl
//
// Contents: IDL source for certadm.dll
//
//---------------------------------------------------------------------------
// This file will be processed by the MIDL tool to produce the type library
// (certadm.tlb) and marshalling code.
import "wtypes.idl";
import "certview.idl";
//+--------------------------------------------------------------------------
// ICertAdmin::IsValidCertificate() returned Disposition:
const LONG CA_DISP_INCOMPLETE = 0x00000000; // call did not complete
const LONG CA_DISP_ERROR = 0x00000001; // call failed
const LONG CA_DISP_REVOKED = 0x00000002; // cert revoked
const LONG CA_DISP_VALID = 0x00000003; // cert still valid
const LONG CA_DISP_INVALID = 0x00000004; // cert never issued
const LONG CA_DISP_UNDER_SUBMISSION = 0x00000005; // taken under submission
//+--------------------------------------------------------------------------
// ICertAdmin::GetCAProperty(CR_PROP_KRACERTSTATE) returned Disposition:
const LONG KRA_DISP_EXPIRED = 0x00000000; // cert expired
const LONG KRA_DISP_NOTFOUND = 0x00000001; // cert not found
const LONG KRA_DISP_REVOKED = 0x00000002; // cert revoked
const LONG KRA_DISP_VALID = 0x00000003; // cert valid
const LONG KRA_DISP_INVALID = 0x00000004; // cert invalid
const LONG KRA_DISP_UNTRUSTED = 0x00000005; // cert untrusted
const LONG KRA_DISP_NOTLOADED = 0x00000006; // cert not loaded
// Cert server roles
const LONG CA_ACCESS_ADMIN = 0x00000001; // CA administrator
const LONG CA_ACCESS_OFFICER = 0x00000002; // certificate officer
const LONG CA_ACCESS_AUDITOR = 0x00000004; // auditor
const LONG CA_ACCESS_OPERATOR = 0x00000008; // backup operator
const LONG CA_ACCESS_MASKROLES = 0x000000ff;
// Cert server read/enroll access
const LONG CA_ACCESS_READ = 0x00000100; // read only access to CA
const LONG CA_ACCESS_ENROLL = 0x00000200; // enroll access to CA
// do not publish this, reserved for internal use
// const LONG CA_ACCESS_LOCALADMIN = 0x00008000; // builtin administrator
// const LONG CA_ACCESS_DENIED = 0x00004000; // force an access denied
//+--------------------------------------------------------------------------
// ICertAdmin -- local COM interface, implementation uses DCOM
//+--------------------------------------------------------------------------
[
object,
uuid(34df6950-7fb6-11d0-8817-00a0c903b83c),
dual,
helpstring("ICertAdmin Interface"),
pointer_default(unique)
]
interface ICertAdmin: IDispatch
{
import "oaidl.idl";
HRESULT IsValidCertificate(
[in] BSTR const strConfig,
[in] BSTR const strSerialNumber,
[out, retval] LONG *pDisposition);
HRESULT GetRevocationReason(
[out, retval] LONG *pReason);
HRESULT RevokeCertificate(
[in] BSTR const strConfig,
[in] BSTR const strSerialNumber,
[in] LONG Reason,
[in] DATE Date);
HRESULT SetRequestAttributes(
[in] BSTR const strConfig,
[in] LONG RequestId,
[in] BSTR const strAttributes);
HRESULT SetCertificateExtension(
[in] BSTR const strConfig,
[in] LONG RequestId,
[in] BSTR const strExtensionName,
[in] LONG Type,
[in] LONG Flags,
[in] VARIANT const *pvarValue);
HRESULT DenyRequest(
[in] BSTR const strConfig,
[in] LONG RequestId);
HRESULT ResubmitRequest(
[in] BSTR const strConfig,
[in] LONG RequestId,
[out, retval] LONG *pDisposition);
HRESULT PublishCRL(
[in] BSTR const strConfig,
[in] DATE Date);
// See certcli.idl/certcli.h for CR_OUT_* Flags.
HRESULT GetCRL(
[in] BSTR const strConfig,
[in] LONG Flags, // CR_OUT_*
[out, retval] BSTR *pstrCRL);
HRESULT ImportCertificate(
[in] BSTR const strConfig,
[in] BSTR const strCertificate,
[in] LONG Flags, // ICF_* | (CR_IN_ENCODEMASK & CR_IN_*)
[out, retval] LONG *pRequestId);
};
const LONG CA_CRL_BASE = 0x00000001; // base CRL
const LONG CA_CRL_DELTA = 0x00000002; // delta CRL
const LONG CA_CRL_REPUBLISH = 0x00000010; // Republish CRL(s) only
const LONG ICF_ALLOWFOREIGN = 0x00010000; // allow foreign cert, key
const LONG IKF_OVERWRITE = 0x00010000; // allow overwriting key
const LONG CDR_EXPIRED = 1; // expired certs, CRLs
const LONG CDR_REQUEST_LAST_CHANGED = 2; // request last update
//+--------------------------------------------------------------------------
// ICertAdmin2 -- local COM interface, implementation uses DCOM
//+--------------------------------------------------------------------------
[
object,
uuid(f7c3ac41-b8ce-4fb4-aa58-3d1dc0e36b39),
dual,
helpstring("ICertAdmin2 Interface"),
pointer_default(unique)
]
interface ICertAdmin2: ICertAdmin
{
HRESULT PublishCRLs(
[in] BSTR const strConfig,
[in] DATE Date,
[in] LONG CRLFlags); // CA_CRL_*
// See certcli.idl/certcli.h for CR_PROP_* and CR_OUT_*.
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 SetCAProperty(
[in] BSTR const strConfig,
[in] LONG PropId, // CR_PROP_*
[in] LONG PropIndex,
[in] LONG PropType, // PROPTYPE_*
[in] 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 GetArchivedKey(
[in] BSTR const strConfig,
[in] LONG RequestId,
[in] LONG Flags, // CR_OUT_*
[out, retval] BSTR *pstrArchivedKey);
HRESULT GetConfigEntry(
[in] BSTR const strConfig,
[in] BSTR const strNodePath,
[in] BSTR const strEntryName,
[out, retval] VARIANT *pvarEntry);
HRESULT SetConfigEntry(
[in] BSTR const strConfig,
[in] BSTR const strNodePath,
[in] BSTR const strEntryName,
[in] VARIANT *pvarEntry);
HRESULT ImportKey(
[in] BSTR const strConfig,
[in] LONG RequestId, // -1: use strCertHash
[in] BSTR const strCertHash, // OPTIONAL
[in] LONG Flags, // IKF_* | (CR_IN_ENCODEMASK & CR_IN_*)
[in] BSTR const strKey);
HRESULT GetMyRoles(
[in] BSTR const strConfig,
[out, retval] LONG *pRoles); // CA_ACCESS_*
HRESULT DeleteRow(
[in] BSTR const strConfig,
[in] LONG Flags, // CDR_*
[in] DATE Date,
[in] LONG Table, // CVRC_TABLE_*
[in] LONG RowId,
[out, retval] LONG *pcDeleted);
};
//+--------------------------------------------------------------------------
// certadm Type library
//+--------------------------------------------------------------------------
[
uuid(35de99a0-7fb6-11d0-8817-00a0c903b83c),
version(1.0),
helpstring("CertAdm 1.0 Type Library")
]
library CERTADMINLib
{
importlib("stdole2.tlb");
//------------------------------------------------
// CCertAdmin
[
uuid(37eabaf0-7fb6-11d0-8817-00a0c903b83c),
helpstring("CertAdmin Class")
]
coclass CCertAdmin
{
[default] interface ICertAdmin2;
};
//------------------------------------------------
// CCertView
[
uuid(a12d0f7a-1e84-11d1-9bd6-00c04fb683fa),
helpstring("CertView Class")
]
coclass CCertView
{
[default] interface ICertView2;
};
};