00001 00009 #ifndef __OID_H__ 00010 #define __OID_H__ 00011 00012 #if _MSC_VER > 1000 00013 #pragma once 00014 #endif 00015 00016 00017 #include "PKIFdll.h" 00018 #include "Buffer.h" 00019 #define CAC_API_FACTORY 00020 00021 00022 struct CPKIFOIDImpl; 00023 // smart pointer needs to be forward declared for operator== 00024 FD_SMART_PTR(CPKIFOID); 00025 00026 //ASN1OBJID* ConvertStringToASN1OBJID(CPKIFStringPtr str); 00027 00029 #define MAXOID 255 00030 00035 class CAC_API CPKIFOID 00036 { 00037 public: 00038 CPKIFOID(); 00039 CPKIFOID(const unsigned int oid[], const unsigned int size); 00040 CPKIFOID(const CPKIFOID& alg); 00041 CPKIFOID(const CPKIFStringPtr& oidStr); 00042 CPKIFOID(const CPKIFBufferPtr& oidBuff); 00043 CPKIFOID(const std::string& oidStr); 00044 virtual ~CPKIFOID(); 00045 00046 const char* ToString() const; 00047 00048 bool operator ==(const CPKIFOID& oid) const; 00049 bool operator ==(const CPKIFOIDPtr& oid) const; 00050 bool operator ==(const char* strOID) const; 00051 00052 bool operator !=(const CPKIFOID& oid) const; 00053 00055 bool operator !=(CPKIFOIDPtr& oid) const; 00056 bool operator !=(const char* strOID) const; 00057 00058 //ASN1OBJID* raw() const; 00059 CPKIFBufferPtr rawOID() const; 00060 private: 00061 CPKIFOID& operator=(const CPKIFOID& rhs); 00062 00063 struct CPKIFOIDImpl *m_impl; 00064 }; 00065 00066 typedef std::vector<CPKIFOIDPtr, PKIFAlloc<CPKIFOIDPtr> > CPKIFOIDList; 00067 DECLARE_SMART_POINTERS(CPKIFOIDList); 00068 #endif 00069