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.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: ccert.hxx
//
// Contents: Microsoft Internet Security Certificate Class
//
// History: 15-Aug-1997 pberkman created
//
//--------------------------------------------------------------------------
#ifndef CCERT_HXX
#define CCERT_HXX
#define CCERT_MAXSTORES 5
class CCert_ { public: CCert_(PCCERT_CONTEXT pCertContext); virtual ~CCert_(void);
WCHAR *PublisherName(void); WCHAR *AgencyName(void);
WCHAR *ProviderName(void); DWORD ProviderType(void); WCHAR *PrivateKeyContainer(void);
PCCERT_CONTEXT CertContext(void) { return(m_pCertContext); }
BOOL BuildChain(FILETIME *psftVerifyAsOf = NULL); CCert_ *IssuerCCert_(void) { return(m_pCCert_Issuer); } // build the chain first!
DWORD IssuersConfidence(void) { return(m_dwConfidence); }
protected: BOOL ExtractCommonNameExt(WCHAR **pwszRet); BOOL ExtractCommonNameAttr(WCHAR **pwszRet);
private: HCERTSTORE m_pahStores[CCERT_MAXSTORES]; DWORD m_chStores; PCCERT_CONTEXT m_pCertContext; CCert_ *m_pCCert_Issuer; WCHAR *m_pwszPublisherName; WCHAR *m_pwszAgencyName; DWORD m_dwConfidence;
BOOL m_fTriedPrivateKey; WCHAR *m_pwszProvider; // if signing cert
DWORD m_dwProviderType; WCHAR *m_pwszKeyContainer; // if signing cert
WCHAR *GetRDNAttr(char *pszObjId, PCERT_NAME_BLOB pNameBlob); void OpenStores(void); BOOL BuildChainPrivate(DWORD chStores, HCERTSTORE *pahStores, FILETIME *psftVerifyAsOf); BOOL FindPrivateKey(void); BOOL EnumContainer(HCRYPTPROV *phProv, DWORD dwIndex, DWORD dwProvType, WCHAR *pwszProv, WCHAR **ppwszContainer); BOOL CheckContainerForKey(WCHAR *pwszProv, DWORD dwProvType, WCHAR *pwszContainer); };
#endif // CCERT_HXX
|