00001 00009 #ifndef __PKIFCAPIHASHCONTEXT_H__ 00010 #define __PKIFCAPIHASHCONTEXT_H__ 00011 00012 #include "PKIFdll.h" 00013 #include "IPKIFHashContext.h" 00014 00015 #include <wincrypt.h> 00016 #include <bcrypt.h> 00017 00018 class CPKIFCAPIRaw; 00019 00033 class CPKIFCAPIHashContext : 00034 public IPKIFHashContext 00035 { 00036 friend class CPKIFCAPIRaw; 00037 friend class CPKIFCNGCAPIRaw; 00038 public: 00039 virtual ~CPKIFCAPIHashContext(void); 00040 00041 private: 00043 CPKIFCAPIHashContext& operator=(const CPKIFCAPIHashContext& rhs); 00045 CPKIFCAPIHashContext(void); //disallow creation except by friend class 00046 00047 HCRYPTPROV m_hashContext; 00048 HCRYPTHASH m_hash; 00049 BCRYPT_HASH_HANDLE m_cngHashHandle; 00050 00051 PBYTE m_pbHashObject; 00052 BCRYPT_ALG_HANDLE m_hHashAlg; 00053 }; 00054 00055 #endif