70 lines
2.4 KiB
C++
70 lines
2.4 KiB
C++
//+-------------------------------------------------------------------------
|
|
//
|
|
// 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
|
|
|
|
|