23 #ifndef KEYEXCHANGESESSION_H_
24 #define KEYEXCHANGESESSION_H_
39 static const std::string TAG;
94 void putKey(const std::
string &data, const dtn::security::
SecurityKey::KeyType type, const dtn::security::
SecurityKey::TrustLevel trust) const;
108 if (!_state)
throw ibrcommon::Exception(
"no state found");
111 return dynamic_cast<T&
>(*_state);
112 }
catch (std::bad_cast&) {
113 throw ibrcommon::Exception(
"State does not match the exchange protocol.");
119 unsigned int _unique_id;
121 std::string _session_key;
124 SessionState *_state;
KeyExchangeSession(int protocol, const dtn::data::EID &peer, unsigned int uniqueId, SessionState *state=NULL)
const dtn::data::EID & getPeer() const
dtn::security::SecurityKey getKey(const dtn::security::SecurityKey::KeyType type=dtn::security::SecurityKey::KEY_UNSPEC) const
unsigned int getUniqueId() const
const std::string & getSessionKey() const
void putKey(const std::string &data, const dtn::security::SecurityKey::KeyType type, const dtn::security::SecurityKey::TrustLevel trust) const
virtual ~KeyExchangeSession()
virtual ~SessionState()=0
dtn::data::Timestamp getExpiration() const