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.
 
 
 
 
 
 

99 lines
3.1 KiB

//+---------------------------------------------------------------------------
//
// 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__