23 #ifndef KEYEXCHANGER_H_
24 #define KEYEXCHANGER_H_
36 #include <ibrcommon/data/File.h>
37 #include <ibrcommon/thread/Queue.h>
39 #include <openssl/bn.h>
53 static const std::string TAG;
88 virtual const std::string
getName()
const;
117 virtual void execute(
KeyExchanger &exchanger)
throw () = 0;
120 class ExchangeTask :
public Task
124 virtual ~ExchangeTask() {};
136 class ExpireTask :
public Task
140 virtual ~ExpireTask() {};
154 void freeSession(
const dtn::data::EID &peer,
const unsigned int uniqueId);
159 ibrcommon::Queue<KeyExchanger::Task*> _queue;
161 std::map<std::string, KeyExchangeSession*> _sessionmap;
163 std::map<int, KeyExchangeProtocol*> _protocols;
165 ibrcommon::Mutex _expiration_lock;
virtual void componentDown()
virtual void componentRun()
virtual void callbackBundleReceived(const dtn::data::Bundle &b)
virtual void componentUp()
virtual void error(KeyExchangeSession &session, bool reportError)
virtual void __cancellation()
virtual void raiseEvent(const dtn::security::KeyExchangeEvent &evt)
virtual void finish(KeyExchangeSession &session)
virtual const std::string getName() const
virtual void submit(KeyExchangeSession &session, const KeyExchangeData &data)