00001 00009 #ifndef __AuthorityKeyIdentifier_H__ 00010 #define __AuthorityKeyIdentifier_H__ 00011 00012 #if _MSC_VER > 1000 00013 #pragma once 00014 #endif // _MSC_VER > 1000 00015 00016 00017 #include "PKIFdll.h" 00018 #define CAC_API_FACTORY 00019 00020 #include <vector> 00021 #include <iosfwd> 00022 00023 #include "X509Extension.h" 00024 00025 // forward declaration 00026 struct CPKIFAuthorityKeyIdentifierImpl; 00027 00028 FD_LIST_PTR(CPKIFGeneralName); 00029 00049 class CAC_API CPKIFAuthorityKeyIdentifier : public CPKIFX509Extension 00050 { 00051 public: 00052 CPKIFAuthorityKeyIdentifier(); 00053 //CPKIFAuthorityKeyIdentifier(const CACX509V3Extension& ext); 00054 CPKIFAuthorityKeyIdentifier(const bool& criticality, const CPKIFBufferPtr& ext); 00055 virtual ~CPKIFAuthorityKeyIdentifier(); 00058 static char extOID[]; 00059 const CPKIFOIDPtr oid() const; 00060 00061 bool IssDNAndSerialNumberPresent() const; 00062 bool KeyIDPresent() const; 00063 00064 void Issuer(CPKIFGeneralNameList& issuer) const; 00065 const char* SerialNumber() const; 00066 CPKIFBufferPtr KeyIdentifier() const; 00067 00068 CPKIFBufferPtr value() const; 00069 00070 private: 00071 // TO DO 00072 CPKIFAuthorityKeyIdentifier(const CPKIFAuthorityKeyIdentifier& ext); //added 4/6/2004 00073 CPKIFAuthorityKeyIdentifier& operator=(const CPKIFAuthorityKeyIdentifier& rhs); //added 4/6/2004 00074 00075 struct CPKIFAuthorityKeyIdentifierImpl *m_impl; 00076 }; 00077 DECLARE_SMART_POINTERS(CPKIFAuthorityKeyIdentifier); 00078 00079 CAC_API std::ostream& operator<<(std::ostream & os, const CPKIFAuthorityKeyIdentifierPtr & akid); 00080 CAC_API std::ostream& operator<<(std::ostream & os, const CPKIFAuthorityKeyIdentifier & akid); 00081 00082 #endif 00083