windows-nt/Source/XPSP1/NT/inetsrv/iis/inc/iisctl.hxx

94 lines
2.5 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
iisctl.cxx
Abstract:
This module contains the code for the class to deal with Certificate Trust Lists
Author:
Alex Mallet [amallet] 01-09-98
Revision History:
--*/
#ifndef _IISCTL_HXX_
#define _IISCTL_HXX_
#ifndef dllexp
#define dllexp __declspec( dllexport )
#endif
#ifndef IIS_STORE_NAMES
#define IIS_STORE_NAMES
#define MY_STORE_NAME "MY"
#define CA_STORE_NAME "CA"
#define ROOT_STORE_NAME "ROOT"
#endif //IIS_STORE_NAMES
class dllexp IIS_CTL
{
public:
IIS_CTL( IN IMDCOM *pMBObject,
IN LPTSTR pszMBPath );
~IIS_CTL();
LPTSTR QueryMBPath() { return m_strMBPath.QueryStr() ; }
LPTSTR QueryStoreName() { return m_strStoreName.QueryStr() ; }
LPWSTR QueryListIdentifier() { return m_pwszListIdentifier ; }
DWORD QueryStatus() { return m_dwStatus ; }
BOOL IsValid();
HCERTSTORE GetMemoryStore();
HCERTSTORE QueryOriginalStore()
{ return (m_pCTLContext ? m_pCTLContext->hCertStore : NULL); }
PCCTL_CONTEXT QueryCTLContext() { return m_pCTLContext ; }
BOOL QuerySignerCert( PCCERT_CONTEXT *ppcSigner );
BOOL VerifySignature( HCERTSTORE *phSignerStores,
DWORD cSignerStores,
LPBOOL pfTrusted );
BOOL GetContainedCertificates( OUT PCCERT_CONTEXT **pppCertContext,
OUT DWORD *pcCertsFound,
OUT DWORD *pcCertsInCTL );
private:
STR m_strMBPath; //key in metabase under which CTL data is stored
LPWSTR m_pwszListIdentifier; //list identifier read out of metabase
STR m_strStoreName; //name of store in which CTL is
HCRYPTPROV m_hCryptProv; //crypto provider for CTL
HCERTSTORE m_hMemoryStore; //in-memory store that only has this CTL in it
HCERTSTORE m_hMyStore; //cached handle to Local Machine MY store
HCERTSTORE m_hCAStore; //cached handle to Local Machine CA store
HCERTSTORE m_hRootStore;//cached handle to Local Machine ROOT store
PCCTL_CONTEXT m_pCTLContext; //actual CTL
DWORD m_dwStatus; //status of object
BOOL m_fFoundCerts; //bool indicating whether we've retrieved actual certs in CTL
PCCERT_CONTEXT *m_pCTLCerts; //array holding certs in CTL
DWORD m_cCertsFound; //number of certs in CTL that were found
PCCERT_CONTEXT m_pSignerCert; //cert that signed the CTL
};
typedef IIS_CTL *PIIS_CTL;
#endif // _IISCTL_HXX_