Source code of Windows XP (NT5)
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.
|
|
/*++
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_
|