23 #include <ibrcommon/Logger.h>
26 #include <openssl/err.h>
27 #include <openssl/rsa.h>
30 #ifdef __DEVELOPMENT_ASSERTIONS__
62 unsigned char ephemeral_key[ibrcommon::AES128Stream::key_size_in_bytes];
63 createSaltAndKey(salt, ephemeral_key, ibrcommon::AES128Stream::key_size_in_bytes);
88 unsigned char keydata[ibrcommon::AES128Stream::key_size_in_bytes];
92 IBRCOMMON_LOGGER_ex(critical) <<
"could not get symmetric key decrypted" << IBRCOMMON_LOGGER_ENDL;
93 throw ibrcommon::Exception(
"could not extract the key");
106 while (find_it.next(bundle.
end()))
110 if ((correlator == 0) || (correlator == esb.
_correlator))
dtn::data::Bitset< CIPHERSUITE_FLAGS > _ciphersuite_flags
static void decryptBlock(dtn::data::Bundle &bundle, dtn::data::Bundle::iterator &it, uint32_t salt, const unsigned char key[ibrcommon::AES128Stream::key_size_in_bytes])
static void free(RSA *key)
void setSecurityDestination(const dtn::data::EID &destination)
TLVList _ciphersuite_params
static const dtn::data::block_t BLOCK_TYPE
static bool getKey(const TLVList &security_parameter, unsigned char *key, dtn::data::Length key_size, RSA *rsa)
static void encrypt(dtn::data::Bundle &bundle, const SecurityKey &key, dtn::data::Bundle::iterator it, const dtn::data::EID &source, const dtn::data::EID &destination)
virtual RSA * getRSA() const
dtn::data::Number _correlator
block_list::iterator iterator
virtual ~ExtensionSecurityBlock()
static void addKey(TLVList &security_parameter, unsigned char const *const key, dtn::data::Length key_size, RSA *rsa)
static void addSalt(TLVList &security_parameters, const uint32_t &salt)
virtual dtn::data::Block * create()
ibrcommon::find_iterator< iterator, block_t > find_iterator
static void decrypt(dtn::data::Bundle &bundle, const SecurityKey &key, dtn::data::Bundle::iterator it)
static uint32_t getSalt(const TLVList &security_parameters)
static void createSaltAndKey(uint32_t &salt, unsigned char *key, dtn::data::Length key_size)
void setSecuritySource(const dtn::data::EID &source)