00001 00009 #ifndef __KEKRECIPINFODETAILS_H__ 00010 #define __KEKRECIPINFODETAILS_H__ 00011 00012 #include "PKIFCMSDLL.h" 00013 #include <vector> 00014 00015 FD_SMART_PTR(CPKIFKeyMaterial); 00016 FD_SMART_PTR(CPKIFBuffer); 00017 FD_SMART_PTR(CPKIFAlgorithmIdentifier); 00018 00028 class PKIFCMS_API CPKIFKEKRecipInfoDetails 00029 { 00030 public: 00031 CPKIFKEKRecipInfoDetails(); 00032 CPKIFKEKRecipInfoDetails(const CPKIFBufferPtr& kekBuf); 00033 ~CPKIFKEKRecipInfoDetails(); 00034 00035 CPKIFKeyMaterialPtr GetKEK() const; 00036 void SetKEK(CPKIFKeyMaterialPtr& kek); 00037 00038 CPKIFBufferPtr GetKeyIdentifier() const; 00039 void SetKeyIdentifier(CPKIFBufferPtr& kid); 00040 00041 //encrypted keys & algorithm are ONLY AVAILABLE when a kek was parsed 00042 //i.e. when you create a CPKIFKEKRecipInfoDetails there is no encrypted key nor alg 00043 CPKIFBufferPtr GetEncryptedKey() const; 00044 CPKIFAlgorithmIdentifierPtr GetKEKAlgorithm() const; 00045 00046 private: 00048 CPKIFKEKRecipInfoDetails(const CPKIFKEKRecipInfoDetails& copy); 00050 CPKIFKEKRecipInfoDetails& operator=(const CPKIFKEKRecipInfoDetails& rhs); //added 4/6/2004 00051 00052 struct CPKIFKEKRecipInfoDetailsImpl *m_impl; 00053 00054 }; 00055 DECLARE_SMART_POINTERS(CPKIFKEKRecipInfoDetails); 00056 typedef std::vector<CPKIFKEKRecipInfoDetailsPtr, PKIFAlloc<CPKIFKEKRecipInfoDetailsPtr> > CPKIFKEKRecipInfoDetailsList; 00057 00058 00059 #endif //__KEKRECIPINFODETAILS_H__