//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 2000-2002. // // File: SaferUtil.h // // Contents: // //---------------------------------------------------------------------------- #ifndef __SAFERUTIL_H #define __SAFERUTIL_H #include #include #include "cookie.h" #include "storegpe.h" #include "StoreRSOP.h" #include "SaferStore.h" CString SaferGetLevelFriendlyName (DWORD dwLevelID, HKEY hGroupPolicyKey, const bool bIsComputer); CString SaferGetLevelDescription (DWORD dwLevelID, HKEY hGroupPolicyKey, const bool bIsComputer); void InitializeSecurityLevelComboBox ( CComboBox& comboBox, bool bLimit, DWORD dwLevelID, HKEY hGroupPolicyKey, DWORD* pdwSaferLevels, bool bIsComputer); HRESULT SaferGetLevelID (SAFER_LEVEL_HANDLE hLevel, DWORD& dwLevelID); class CSaferEntries : public CCertMgrCookie { public: CSaferEntries ( bool bIsMachine, PCWSTR pszMachineName, PCWSTR pszObjectName, IGPEInformation* pGPEInformation, IRSOPInformation* pRSOPInformation, CRSOPObjectArray& m_rsopObjectArray, LPCONSOLE pConsole); virtual ~CSaferEntries (); HRESULT GetDisallowedStore (CCertStore** ppStore); HRESULT GetTrustedPublishersStore (CCertStore** ppStore); protected: private: CCertStore* m_pTrustedPublishersStore; CCertStore* m_pDisallowedStore; }; class CSaferRootCookie : public CCertMgrCookie { public: CSaferRootCookie ( CertificateManagerObjectType objecttype, PCWSTR pszMachineName, PCWSTR pszObjectName) : CCertMgrCookie (objecttype, pszMachineName, pszObjectName), m_bCreateSaferNodes (true), m_bExpandedOnce (false) { } virtual ~CSaferRootCookie () { }; bool m_bCreateSaferNodes; bool m_bExpandedOnce; }; HRESULT SetRegistryScope (HKEY hKey, bool bIsComputer); // Returns S_OK if the file has a valid signed hash HRESULT GetSignedFileHash( IN LPCWSTR pwszFilename, OUT BYTE rgbFileHash[SAFER_MAX_HASH_SIZE], OUT DWORD *pcbFileHash, OUT ALG_ID *pHashAlgid ); HRESULT ComputeMD5Hash(IN HANDLE hFile, BYTE hashresult[SAFER_MAX_HASH_SIZE], DWORD& dwHashSize); CString GetURLZoneFriendlyName (DWORD dwURLZoneID); BOOL GuidFromString(GUID* pGuid, const CString& szGuidString); HRESULT SaferSetDefinedFileTypes (HWND hWnd, HKEY hGroupPolicyKey, PCWSTR pszFileTypes, int nBufLen); #define SAFER_TRUSTED_PUBLISHER_STORE_FRIENDLY_NAME L"Safer Trusted Publisher Store" #define SAFER_DISALLOWED_STORE_FRIENDLY_NAME L"Safer Disallowed Store" #define SAFER_LEVELOBJECTS_REGKEY \ SAFER_HKLM_REGBASE SAFER_OBJECTS_REGSUBKEY #define SAFER_COMPUTER_CODEIDS_REGKEY SAFER_HKLM_REGBASE L"\\" SAFER_CODEIDS_REGSUBKEY #define SAFER_USER_CODEIDS_REGKEY SAFER_HKCU_REGBASE L"\\" SAFER_CODEIDS_REGSUBKEY #define MD5_HASH_LEN 16 #define SHA1_HASH_LEN 20 #define NO_MORE_SAFER_LEVELS -1 #define ILLEGAL_FAT_CHARS L"\"+,;<=>[]|" #endif