00001 00010 #ifndef __KEYAGREEPUBLICKEY_H__ 00011 #define __KEYAGREEPUBLICKEY_H__ 00012 00013 00014 #include "PKIFSCVPDLL.h" 00015 #include "PKIFdll.h" 00016 00017 00018 // forward declarations 00019 struct CPKIFKeyAgreePublicKeyImpl; 00020 00021 00022 FD_SMART_PTR(CPKIFOID); 00023 FD_SMART_PTR(CPKIFBuffer); 00024 FD_SMART_PTR(CPKIFAlgorithmIdentifier); 00025 00031 class PKIFSCVP_API CPKIFKeyAgreePublicKey 00032 { 00033 public: 00034 CPKIFKeyAgreePublicKey(); 00035 CPKIFKeyAgreePublicKey(const CPKIFBufferPtr&); 00036 virtual ~CPKIFKeyAgreePublicKey(void); 00037 00038 //required field 00039 void SetPublicKey(CPKIFBufferPtr& nonce); 00040 const CPKIFBufferPtr GetPublicKey() const; 00041 00042 void SetAlgorithm(CPKIFAlgorithmIdentifierPtr& valAlg); 00043 CPKIFAlgorithmIdentifierPtr GetAlgorithm() const; 00044 00045 void SetMACAlgorithm(CPKIFAlgorithmIdentifierPtr& macAlgorithm); 00046 CPKIFAlgorithmIdentifierPtr GetMACAlgorithm() const; 00047 00048 //optional fields 00049 void SetKDF(CPKIFAlgorithmIdentifierPtr& kdf); 00050 CPKIFAlgorithmIdentifierPtr GetKDF() const; 00051 00052 private: 00054 CPKIFKeyAgreePublicKey(const CPKIFKeyAgreePublicKey& copy); 00056 CPKIFKeyAgreePublicKey& operator=(const CPKIFKeyAgreePublicKey& rhs); 00057 00058 struct CPKIFKeyAgreePublicKeyImpl *m_impl; 00059 }; 00060 DECLARE_SMART_POINTERS(CPKIFKeyAgreePublicKey); 00061 00062 typedef std::vector<CPKIFKeyAgreePublicKeyPtr, PKIFAlloc<CPKIFKeyAgreePublicKeyPtr> > CPKIFKeyAgreePublicKeyList; 00063 DECLARE_SMART_POINTERS(CPKIFKeyAgreePublicKeyList); 00064 #endif //__VALPOLREQUEST_H__