00001 00009 #ifndef __SubjectPublicKeyInfo_H__ 00010 #define __SubjectPublicKeyInfo_H__ 00011 00012 #if _MSC_VER > 1000 00013 #pragma once 00014 #endif // _MSC_VER > 1000 00015 00016 00017 #include "PKIFdll.h" 00018 #include "AlgorithmIdentifier.h" 00019 #define CAC_API_FACTORY 00020 00021 struct CPKIFSubjectPublicKeyInfoImpl; 00022 FD_SMART_PTR(CPKIFAlgorithmIdentifier); 00023 00024 00031 class CAC_API CPKIFSubjectPublicKeyInfo 00032 { 00033 public: 00034 CPKIFSubjectPublicKeyInfo(); 00035 CPKIFSubjectPublicKeyInfo(const CPKIFAlgorithmIdentifierPtr& algID, const CPKIFBufferPtr& key); 00036 //CPKIFSubjectPublicKeyInfo(const CACX509V3SubjectPublicKeyInfo spki); 00037 virtual ~CPKIFSubjectPublicKeyInfo(); 00038 00039 CPKIFAlgorithmIdentifierPtr alg() const ; 00040 00041 //ASN1DynBitStr* rawKey(); 00042 CPKIFBufferPtr rawKey() const; 00043 unsigned long numBits(void) const; 00044 00045 bool operator==(const CPKIFSubjectPublicKeyInfo& rhs) const; 00046 private: 00047 CPKIFSubjectPublicKeyInfo(const CPKIFSubjectPublicKeyInfo& spki); 00048 CPKIFSubjectPublicKeyInfo& operator=(const CPKIFSubjectPublicKeyInfo& rhs); // added 4/6/2004 00049 00050 struct CPKIFSubjectPublicKeyInfoImpl *m_impl; 00051 }; 00052 DECLARE_SMART_POINTERS(CPKIFSubjectPublicKeyInfo); 00053 00054 #endif