94 lines
2.5 KiB
C++
94 lines
2.5 KiB
C++
|
/*++
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
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_
|