00001 00010 #if !defined(__PKIFXSECKEYINFORESOLVER_H__) 00011 #define __PKIFXSECKEYINFORESOLVER_H__ 00012 00013 #include "pkif.h" 00014 #include "PKIFXSECProviderDll.h" 00015 00016 #include <xsec/enc/XSECKeyInfoResolver.hpp> 00017 00018 struct PKIFXSECKeyInfoResolverImpl; 00026 class PKIFXML_API IPKIFXSECNotificationCallback 00027 { 00028 public: 00029 IPKIFXSECNotificationCallback(); 00030 virtual ~IPKIFXSECNotificationCallback(); 00034 virtual bool operator()( 00036 CPKIFCertificatePathPtr path, 00038 CPKIFPathValidationResultsPtr pvr, 00040 bool trusted) = 0; 00041 private: 00043 IPKIFXSECNotificationCallback(const IPKIFXSECNotificationCallback & copy); 00045 IPKIFXSECNotificationCallback & operator=(const IPKIFXSECNotificationCallback & rhs); 00046 }; 00047 00048 00049 00050 00058 class PKIFXML_API PKIFXSECKeyInfoResolver : public XSECKeyInfoResolver { 00059 00060 public : 00061 PKIFXSECKeyInfoResolver(IPKIFMediatorPtr & med, CPKIFPathSettingsPtr & ps, CPKIFFuncStoragePtr & kuChecker); 00062 virtual ~PKIFXSECKeyInfoResolver(); 00063 virtual XSECCryptoKey * resolveKey(DSIGKeyInfoList * lst); 00064 virtual XSECKeyInfoResolver * clone(void) const; 00065 00066 virtual void SetCallback(IPKIFXSECNotificationCallback * cb); 00067 00068 00069 private: 00070 00071 PKIFXSECKeyInfoResolverImpl * m_impl; 00072 00073 00074 }; 00075 00076 00077 #endif 00078