00001 00009 #if !defined(__IPKIFKEYAGREECONTEXT_H__) 00010 #define __IPKIFKEYAGREECONTEXT_H__ 00011 00012 #include "PKIFdll.h" 00013 00014 class CPKIFAlgorithm; 00015 class IPKIFCryptoKeyAgree; 00016 FD_LIST_PTR(CPKIFBuffer); 00017 00026 class CAC_API CAC_NO_VTABLE IPKIFKeyAgreeContext 00027 { 00028 public: 00029 IPKIFKeyAgreeContext(); 00030 virtual ~IPKIFKeyAgreeContext(); 00031 virtual void SetAlgorithm(const CPKIFAlgorithm * alg) = 0; 00032 virtual const CPKIFAlgorithm * GetAlgorithm() const = 0; 00033 virtual void PrependSharedInfo(const CPKIFBufferPtr & data) = 0; 00034 virtual void AppendSharedInfo(const CPKIFBufferPtr & data) = 0; 00035 virtual CPKIFBufferList & GetPrependedSharedInfo() const = 0; 00036 virtual CPKIFBufferList & GetAppendedSharedInfo() const = 0; 00037 virtual void SetOwner(IPKIFCryptoKeyAgree * owner) = 0; 00038 virtual IPKIFCryptoKeyAgree * GetOwner() const = 0; 00039 private: 00041 IPKIFKeyAgreeContext(const IPKIFKeyAgreeContext& copy); 00043 IPKIFKeyAgreeContext& operator=(const IPKIFKeyAgreeContext& rhs); 00044 }; 00045 00046 DECLARE_SMART_POINTERS(IPKIFKeyAgreeContext); 00047 00048 #endif