00001 00009 #ifndef __AlgorithmIdentifier_H__ 00010 #define __AlgorithmIdentifier_H__ 00011 00012 #include "PKIFdll.h" 00013 #define CAC_API_FACTORY 00014 00015 00016 00017 // forward declaration 00018 struct CPKIFAlgorithmIdentifierImpl; 00019 struct CACX509V3AlgorithmIdentifier; 00020 00021 FD_SMART_PTR(CPKIFOID); 00022 FD_SMART_PTR(CPKIFBuffer); 00023 00043 class CAC_API CPKIFAlgorithmIdentifier 00044 { 00045 public: 00046 CPKIFAlgorithmIdentifier(); 00047 CPKIFAlgorithmIdentifier(const CPKIFOIDPtr &oid, const CPKIFBufferPtr& params); 00048 //CPKIFAlgorithmIdentifier(const CACX509V3AlgorithmIdentifier& alg); //added reference 4/12/2004 00049 CPKIFAlgorithmIdentifier(const CPKIFAlgorithmIdentifier& alg); 00050 CPKIFAlgorithmIdentifier(const CPKIFOIDPtr& oid); 00051 virtual ~CPKIFAlgorithmIdentifier(); 00052 CPKIFOIDPtr oid() const; 00053 bool hasParameters() const; 00054 CPKIFBufferPtr parameters() const; 00055 00056 bool operator==(const CPKIFAlgorithmIdentifier& rhs) const; 00057 00058 private: 00060 //CPKIFAlgorithmIdentifier(const CPKIFAlgorithmIdentifier& alg); 00062 CPKIFAlgorithmIdentifier& operator=(const CPKIFAlgorithmIdentifier& rhs); //added 4/6/2004 00063 00064 struct CPKIFAlgorithmIdentifierImpl *m_impl; 00065 }; 00066 DECLARE_SMART_POINTERS(CPKIFAlgorithmIdentifier); 00067 typedef std::vector<CPKIFAlgorithmIdentifierPtr, PKIFAlloc<CPKIFAlgorithmIdentifierPtr> > CPKIFAlgorithmIdentifierList; 00068 DECLARE_SMART_POINTERS(CPKIFAlgorithmIdentifierList); 00069 00070 00071 #endif