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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997 - 2001.
//
// File: StoreGPE.h
//
// Contents: CertStoreGPE class definition
//
//----------------------------------------------------------------------------
#ifndef __STOREGPE_H_INCLUDED__
#define __STOREGPE_H_INCLUDED__
#include "cookie.h"
class CERT_CONTEXT_PSID_STRUCT { public: CERT_CONTEXT_PSID_STRUCT (PCCERT_CONTEXT pCertContext, PSID psid); ~CERT_CONTEXT_PSID_STRUCT (); PCCERT_CONTEXT m_pCertContext; PSID m_psid; };
class CCertStoreGPE : public CCertStore { public: virtual PCCERT_CONTEXT EnumCertificates (PCCERT_CONTEXT pPrevCertContext); HRESULT PolicyChanged (); HRESULT DeleteEFSPolicy (bool bCommitChanges); virtual HRESULT AddCertificateContext(PCCERT_CONTEXT pContext, LPCONSOLE pConsole, bool bDeletePrivateKey); void AllowEmptyEFSPolicy(); virtual bool IsNullEFSPolicy(); void AddCertToList (PCCERT_CONTEXT pCertContext, PSID userPSID); virtual HKEY GetGroupPolicyKey(); IGPEInformation* GetGPEInformation() const; virtual bool IsMachineStore() ; virtual bool CanContain (CertificateManagerObjectType nodeType); virtual HCERTSTORE GetStoreHandle (BOOL bSilent = FALSE, HRESULT* phr = 0); virtual HRESULT Commit (); CCertStoreGPE ( DWORD dwFlags, LPCWSTR lpcszMachineName, LPCWSTR objectName, const CString & pcszLogStoreName, const CString & pcszPhysStoreName, IGPEInformation * pGPTInformation, const GUID& compDataGUID, IConsole* pConsole);
virtual void SetAdding () { m_bAddInCallToPolicyChanged = TRUE; } virtual void SetDeleting () { m_bAddInCallToPolicyChanged = FALSE; }
virtual ~CCertStoreGPE ();
private: bool m_fIsNullEFSPolicy; IGPEInformation * m_pGPEInformation; CTypedPtrList<CPtrList, CERT_CONTEXT_PSID_STRUCT*> m_EFSCertList; HKEY m_hGroupPolicyKey; BOOL m_bAddInCallToPolicyChanged; // corresponds to bAdd
// argument in IGPEInformation::PolicyChanged ()
protected: virtual void FinalCommit(); PSID GetPSIDFromCert (PCCERT_CONTEXT pCertContext); HRESULT WriteEFSBlobToRegistry(); HRESULT CreatePublicKeyInformationCertificate( IN PSID pUserSid OPTIONAL, PBYTE pbCert, DWORD cbCert, OUT PEFS_PUBLIC_KEY_INFO * PublicKeyInformation, DWORD* pcbPublicKeyInfo); };
class CEnrollmentNodeCookie : public CCertMgrCookie { public: CEnrollmentNodeCookie ( CertificateManagerObjectType objecttype, LPCWSTR objectName, IGPEInformation* pGPEInformation); virtual ~CEnrollmentNodeCookie ();
IGPEInformation* GetGPEInformation ();
private: IGPEInformation* m_pGPEInformation; };
#endif // ~__STOREGPE_H_INCLUDED__
|