//+-------------------------------------------------------------------------- // // 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; }; };