00001 00009 #ifndef __KEYTRANSRECIPIENTINFO_H__ 00010 #define __KEYTRANSRECIPIENTINFO_H__ 00011 00012 #include "PKIFCMSDLL.h" 00013 #include <vector> 00014 00015 FD_SMART_PTR(CPKIFIssuerAndSerialNumber); 00016 FD_SMART_PTR(CPKIFBuffer); 00017 FD_SMART_PTR(CPKIFAlgorithmIdentifier); 00018 00030 class PKIFCMS_API CPKIFKeyTransRecipientInfo 00031 { 00032 public: 00033 CPKIFKeyTransRecipientInfo(); 00034 CPKIFKeyTransRecipientInfo(const CPKIFBufferPtr& ktriBuf); 00035 ~CPKIFKeyTransRecipientInfo(); 00036 00037 //recipient ID is nested in this class 00038 enum RecipientIdentifierChoice {ISSUERSERIAL, SKID, UNSET}; 00039 RecipientIdentifierChoice GetRecipientIdentifierChoice() const; 00040 00041 CPKIFIssuerAndSerialNumberPtr GetIssuerAndSerialNumber() const; 00042 CPKIFBufferPtr GetSKID() const; 00043 00044 CPKIFAlgorithmIdentifierPtr GetKeyEncryptionAlgorithm() const; 00045 CPKIFBufferPtr GetEncryptedKey() const; 00046 00047 private: 00049 CPKIFKeyTransRecipientInfo(const CPKIFKeyTransRecipientInfo& copy); 00051 CPKIFKeyTransRecipientInfo& operator=(const CPKIFKeyTransRecipientInfo& rhs); //added 4/6/2004 00052 00053 struct CPKIFKeyTransRecipientInfoImpl *m_impl; 00054 00055 }; 00056 DECLARE_SMART_POINTERS(CPKIFKeyTransRecipientInfo); 00057 00058 #endif //__KEYTRANSRECIPIENTINFO_H__