IBR-DTNSuite
0.12
|
#include <SecurityBlock.h>
Classes | |
class | TLV |
class | TLVList |
Public Member Functions | |
virtual | ~SecurityBlock ()=0 |
virtual dtn::data::Length | getLength () const |
virtual dtn::data::Length | getLength_mutable () const |
virtual std::ostream & | serialize (std::ostream &stream, dtn::data::Length &length) const |
virtual std::ostream & | serialize_strict (std::ostream &stream, dtn::data::Length &length) const |
virtual std::istream & | deserialize (std::istream &stream, const dtn::data::Length &length) |
const dtn::data::EID | getSecuritySource () const |
const dtn::data::EID | getSecurityDestination () const |
void | setSecuritySource (const dtn::data::EID &source) |
void | setSecurityDestination (const dtn::data::EID &destination) |
bool | isSecuritySource (const dtn::data::Bundle &, const dtn::data::EID &) const |
bool | isSecurityDestination (const dtn::data::Bundle &, const dtn::data::EID &) const |
const dtn::data::EID | getSecuritySource (const dtn::data::Bundle &) const |
const dtn::data::EID | getSecurityDestination (const dtn::data::Bundle &) const |
template<class T > | |
T & | encryptBlock (dtn::data::Bundle &bundle, dtn::data::Bundle::iterator &it, uint32_t salt, const unsigned char ephemeral_key[ibrcommon::AES128Stream::key_size_in_bytes]) |
Public Member Functions inherited from dtn::data::Block | |
virtual | ~Block () |
Block & | operator= (const Block &block) |
bool | operator== (const block_t &id) const |
virtual void | addEID (const dtn::data::EID &eid) |
virtual void | clearEIDs () |
virtual const eid_list & | getEIDList () const |
const block_t & | getType () const |
void | set (ProcFlags flag, const bool &value) |
bool | get (ProcFlags flag) const |
const Bitset< ProcFlags > & | getProcessingFlags () const |
virtual Length | getLength_strict () const |
Protected Member Functions | |
void | store_security_references () |
SecurityBlock (const SecurityBlock::BLOCK_TYPES type, const CIPHERSUITE_IDS id) | |
SecurityBlock (const SecurityBlock::BLOCK_TYPES type) | |
void | setCiphersuiteId (const CIPHERSUITE_IDS id) |
void | setCorrelator (const dtn::data::Number &corr) |
virtual MutableSerializer & | serialize_mutable (MutableSerializer &serializer, bool include_security_result=true) const |
virtual dtn::data::Length | getSecurityResultSize () const |
Protected Member Functions inherited from dtn::data::Block | |
Block (block_t blocktype) | |
Static Protected Member Functions | |
static bool | isCorrelatorPresent (const dtn::data::Bundle &bundle, const dtn::data::Number &correlator) |
static dtn::data::Number | createCorrelatorValue (const dtn::data::Bundle &bundle) |
static void | createSaltAndKey (uint32_t &salt, unsigned char *key, dtn::data::Length key_size) |
static void | addKey (TLVList &security_parameter, unsigned char const *const key, dtn::data::Length key_size, RSA *rsa) |
static bool | getKey (const TLVList &security_parameter, unsigned char *key, dtn::data::Length key_size, RSA *rsa) |
static void | addSalt (TLVList &security_parameters, const uint32_t &salt) |
static uint32_t | getSalt (const TLVList &security_parameters) |
static void | copyEID (const dtn::data::Block &from, dtn::data::Block &to, dtn::data::Length skip=0) |
template<class T > | |
static T & | encryptBlock (dtn::data::Bundle &bundle, dtn::data::Bundle::iterator &it, uint32_t salt, const unsigned char ephemeral_key[ibrcommon::AES128Stream::key_size_in_bytes]) |
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 | addFragmentRange (TLVList &ciphersuite_params, const dtn::data::Number &fragmentoffset, const dtn::data::Number &payload_length) |
Protected Attributes | |
dtn::data::Number | _ciphersuite_id |
dtn::data::Bitset < CIPHERSUITE_FLAGS > | _ciphersuite_flags |
dtn::data::Number | _correlator |
TLVList | _ciphersuite_params |
TLVList | _security_result |
dtn::data::EID | _security_destination |
dtn::data::EID | _security_source |
Protected Attributes inherited from dtn::data::Block | |
block_t | _blocktype |
eid_list | _eids |
Friends | |
class | StrictSerializer |
class | MutableSerializer |
Abstract base class for BundleAuthenticationBlock, PayloadIntegrityBlock, PayloadConfidentialBlock and ExtensionSecurityBlock. It provides definitions of constants and basic functions, which are shared among the blocks. These blocks can be serialized in three forms. In normal form, which is needed for transmission, in strict canonical form, which is need for the BundleAuthenticationBlock and in mutable canonical form. In strict canonical form the security result can be set to be ignored. In mutable canonical form all SDNVs are unpacked to 8 byte fields, numbers written in network byte order and even the security result may be ignored, too. Because the size of security result of the children cannot be known in advance, the children have to implement a method for getting this size.
Definition at line 104 of file SecurityBlock.h.
the block id for each block type
Enumerator | |
---|---|
BUNDLE_AUTHENTICATION_BLOCK | |
PAYLOAD_INTEGRITY_BLOCK | |
PAYLOAD_CONFIDENTIAL_BLOCK | |
EXTENSION_SECURITY_BLOCK |
Definition at line 110 of file SecurityBlock.h.
the position of each flag in the ciphersuite flags
Enumerator | |
---|---|
CONTAINS_SECURITY_RESULT | |
CONTAINS_CORRELATOR | |
CONTAINS_CIPHERSUITE_PARAMS | |
CONTAINS_SECURITY_DESTINATION | |
CONTAINS_SECURITY_SOURCE | |
BIT5_RESERVED | |
BIT6_RESERVED |
Definition at line 132 of file SecurityBlock.h.
the ids of the supported ciphersuites
Enumerator | |
---|---|
BAB_HMAC | |
PIB_RSA_SHA256 | |
PCB_RSA_AES128_PAYLOAD_PIB_PCB | |
ESB_RSA_AES128_EXT |
Definition at line 143 of file SecurityBlock.h.
the id of each TLV type, which is used in security parameters or
security result
Enumerator | |
---|---|
not_set | |
initialization_vector | |
key_information | |
fragment_range | |
integrity_signature | |
salt | |
PCB_integrity_check_value | |
encapsulated_block | |
block_type_of_encapsulated_block |
Definition at line 119 of file SecurityBlock.h.
|
pure virtual |
does nothing
Definition at line 203 of file SecurityBlock.cpp.
|
protected |
Creates an empty SecurityBlock. This is only needed by children, which add blocks to bundles in a factory
type | type of child block |
id | the ciphersuite |
Definition at line 191 of file SecurityBlock.cpp.
|
protected |
Creates a factory with a partner. If partner is empty, this must be a instance with a private key or a BundleAuthenticationBlock.
type | type of child block |
Definition at line 197 of file SecurityBlock.cpp.
|
staticprotected |
Calculates the Size of the stream and adds a fragment range item to ciphersuite_params
ciphersuite_params | the string which will get a fragment range TLV added |
stream | the stream which size will be calculated |
Definition at line 674 of file SecurityBlock.cpp.
References fragment_range, and dtn::security::SecurityBlock::TLVList::set().
Referenced by dtn::security::PayloadConfidentialBlock::encrypt(), and dtn::security::PayloadIntegrityBlock::sign().
|
staticprotected |
Adds a key as a TLV to a string. The key is encrypted using the public key provided in the rsa object.
security_parameter | the string object which gets the TLV appended which contains the encrypted key |
key | the plaintext key |
key_size | the size of the plaintext key |
rsa | object containing the public key for encryption of the symmetric key |
Definition at line 518 of file SecurityBlock.cpp.
References ibrcommon::LogLevel::critical, IBRCOMMON_LOGGER_ENDL, IBRCOMMON_LOGGER_ex, key_information, and dtn::security::SecurityBlock::TLVList::set().
Referenced by dtn::security::ExtensionSecurityBlock::encrypt(), and dtn::security::PayloadConfidentialBlock::encrypt().
|
staticprotected |
Adds a salt TLV object to a string.
security_parameters | the string |
salt | the salt which shall be added |
Definition at line 573 of file SecurityBlock.cpp.
References GUINT32_TO_BE, salt, and dtn::security::SecurityBlock::TLVList::set().
Referenced by dtn::security::ExtensionSecurityBlock::encrypt(), and dtn::security::PayloadConfidentialBlock::encrypt().
|
staticprotected |
Copys all EIDs from one block to another and skips the first skip EIDs
from | source of the EIDs |
to | destination of the EIDs |
skip | how much EIDs should be skipped at the beginning |
Definition at line 557 of file SecurityBlock.cpp.
Referenced by decryptBlock(), and encryptBlock().
|
staticprotected |
Creates a unique correlatorvalue for bundle
bundle | the bundle for which a new unique correlator shall be created |
Definition at line 293 of file SecurityBlock.cpp.
References isCorrelatorPresent(), and dtn::data::SDNV< E >::random().
Referenced by dtn::security::BundleAuthenticationBlock::auth(), and dtn::security::PayloadConfidentialBlock::encrypt().
|
staticprotected |
Fills salt and key with random numbers.
salt | reference to salt |
key | pointer to key |
key_size | size of key |
Definition at line 503 of file SecurityBlock.cpp.
References ibrcommon::LogLevel::critical, IBRCOMMON_LOGGER_ENDL, and IBRCOMMON_LOGGER_ex.
Referenced by dtn::security::ExtensionSecurityBlock::encrypt(), and dtn::security::PayloadConfidentialBlock::encrypt().
|
staticprotected |
Decrypts the block which is held in the SecurityBlock replaces it. The ciphertext is only substituted and the old block reconstructed if tag verification succeeds.
bundle | the bundle which contains block |
block | the security block with an encrypted block in its security result |
salt | the salt |
ephemeral_key | the key |
Definition at line 586 of file SecurityBlock.cpp.
References _ciphersuite_flags, _ciphersuite_params, _security_result, dtn::data::PayloadBlock::BLOCK_TYPE, ibrcommon::CipherStream::CIPHER_DECRYPT, dtn::data::Block::clearEIDs(), CONTAINS_SECURITY_DESTINATION, CONTAINS_SECURITY_SOURCE, copyEID(), encapsulated_block, dtn::data::Bundle::find(), dtn::data::ExtensionBlock::Factory::get(), dtn::security::SecurityBlock::TLVList::get(), initialization_vector, dtn::data::Bundle::insert(), ibrcommon::AES128Stream::iv_len, dtn::data::Bundle::remove(), ibrcommon::AES128Stream::tag_len, and ibrcommon::AES128Stream::verify().
Referenced by dtn::security::ExtensionSecurityBlock::decrypt(), and dtn::security::PayloadConfidentialBlock::decrypt().
|
virtual |
Parses the SecurityBlock from a Stream
stream | the stream to read from |
Implements dtn::data::Block.
Reimplemented in dtn::security::PayloadIntegrityBlock.
Definition at line 402 of file SecurityBlock.cpp.
References dtn::data::Block::_blocktype, _ciphersuite_flags, _ciphersuite_id, _ciphersuite_params, _correlator, dtn::data::Block::_eids, _security_destination, _security_result, _security_source, BAB_HMAC, BUNDLE_AUTHENTICATION_BLOCK, CONTAINS_CIPHERSUITE_PARAMS, CONTAINS_CORRELATOR, CONTAINS_SECURITY_DESTINATION, CONTAINS_SECURITY_RESULT, CONTAINS_SECURITY_SOURCE, ESB_RSA_AES128_EXT, EXTENSION_SECURITY_BLOCK, PAYLOAD_CONFIDENTIAL_BLOCK, PAYLOAD_INTEGRITY_BLOCK, PCB_RSA_AES128_PAYLOAD_PIB_PCB, and PIB_RSA_SHA256.
Referenced by dtn::security::PayloadIntegrityBlock::deserialize().
|
staticprotected |
Encrypts a Block. The used initialisation vector will be written into the security parameters of the new SecurityBlock. The ciphertext will have the tag appended and be written into security result. The flags that this block contains ciphersuite parameters and security result will be set. If this is the first block, don't forget to add the key and salt to its security parameters.
bundle | the bundle which contains block |
it | The iterator pointing to the block which shall be encrypted and encapsulated |
salt | the salt to be used |
ephemeral_key | the key to be used |
T& dtn::security::SecurityBlock::encryptBlock | ( | dtn::data::Bundle & | bundle, |
dtn::data::Bundle::iterator & | it, | ||
uint32_t | salt, | ||
const unsigned char | ephemeral_key[ibrcommon::AES128Stream::key_size_in_bytes] | ||
) |
Definition at line 470 of file SecurityBlock.h.
References ibrcommon::CipherStream::CIPHER_ENCRYPT, CONTAINS_CIPHERSUITE_PARAMS, CONTAINS_SECURITY_RESULT, copyEID(), encapsulated_block, dtn::data::Bundle::erase(), ibrcommon::AES128Stream::getIV(), ibrcommon::AES128Stream::getTag(), initialization_vector, dtn::data::Bundle::insert(), ibrcommon::AES128Stream::iv_len, and ibrcommon::AES128Stream::tag_len.
|
staticprotected |
Reads a symmetric key TLV object from a string.
securiy_parameter | the TLVs containing string |
key | pointer to an array to which the key will be written |
key_size | size of the array |
rsa | object containing the private key for decryption of the symmetric key |
Definition at line 535 of file SecurityBlock.cpp.
References ibrcommon::LogLevel::critical, dtn::security::SecurityBlock::TLVList::get(), IBRCOMMON_LOGGER_ENDL, IBRCOMMON_LOGGER_ex, and key_information.
Referenced by dtn::security::ExtensionSecurityBlock::decrypt(), and dtn::security::PayloadConfidentialBlock::decrypt().
|
virtual |
Returns the length of this Block
Implements dtn::data::Block.
Definition at line 304 of file SecurityBlock.cpp.
References _ciphersuite_flags, _ciphersuite_id, _ciphersuite_params, _correlator, CONTAINS_CIPHERSUITE_PARAMS, CONTAINS_CORRELATOR, CONTAINS_SECURITY_RESULT, dtn::data::SDNV< E >::get(), dtn::data::SDNV< E >::getLength(), dtn::security::SecurityBlock::TLVList::getLength(), and getSecurityResultSize().
|
virtual |
Returns the length of this Block if it would serialized in mutable canonical form
Definition at line 329 of file SecurityBlock.cpp.
References _ciphersuite_flags, _ciphersuite_params, CONTAINS_CIPHERSUITE_PARAMS, CONTAINS_CORRELATOR, CONTAINS_SECURITY_RESULT, dtn::security::SecurityBlock::TLVList::getLength(), getSecurityResultSize(), and dtn::security::MutableSerializer::sdnv_size.
Referenced by dtn::security::MutableSerializer::getLength(), and dtn::security::MutableSerializer::operator<<().
|
staticprotected |
Reads a salt TLV from a string containing TLVs
security_parameters | string containing TLVs |
Definition at line 579 of file SecurityBlock.cpp.
References dtn::security::SecurityBlock::TLVList::get(), GUINT32_TO_BE, and salt.
Referenced by dtn::security::ExtensionSecurityBlock::decrypt(), and dtn::security::PayloadConfidentialBlock::decrypt().
const dtn::data::EID dtn::security::SecurityBlock::getSecurityDestination | ( | ) | const |
Returns the Security destination of a SecurityBlock or dtn:none if none exists
Definition at line 249 of file SecurityBlock.cpp.
References _security_destination.
Referenced by getSecurityDestination(), and isSecurityDestination().
const dtn::data::EID dtn::security::SecurityBlock::getSecurityDestination | ( | const dtn::data::Bundle & | bundle) | const |
Returns the security destination of a given block
bundle | the bundle to which the block belongs to |
Definition at line 702 of file SecurityBlock.cpp.
References dtn::data::PrimaryBlock::destination, dtn::data::EID::getNode(), getSecurityDestination(), and dtn::data::EID::isNone().
|
protectedvirtual |
Returns the size of the security result if it would be serialized, even if it is empty. This is needed for canonicalisation. If it is empty this will be zero. There is no way to know how big will a payload be in advance. Children have to override it for the canonicalisation forms if nessessary (especial BundleAuthenticationBlock and PayloadIntegrityBlock).
Reimplemented in dtn::security::BundleAuthenticationBlock, and dtn::security::PayloadIntegrityBlock.
Definition at line 495 of file SecurityBlock.cpp.
References _security_result, and dtn::security::SecurityBlock::TLVList::getLength().
Referenced by getLength(), getLength_mutable(), dtn::security::PayloadIntegrityBlock::getSecurityResultSize(), serialize_mutable(), and serialize_strict().
const dtn::data::EID dtn::security::SecurityBlock::getSecuritySource | ( | ) | const |
Returns the Security source of a SecurityBlock or dtn:none if none exists
Definition at line 244 of file SecurityBlock.cpp.
References _security_source.
Referenced by getSecuritySource(), isSecuritySource(), dtn::security::SecurityManager::verifyBAB(), and dtn::security::SecurityManager::verifyPIB().
const dtn::data::EID dtn::security::SecurityBlock::getSecuritySource | ( | const dtn::data::Bundle & | bundle) | const |
Returns the security source of a given block
bundle | the bundle to which the block belongs to |
Definition at line 694 of file SecurityBlock.cpp.
References dtn::data::EID::getNode(), getSecuritySource(), dtn::data::EID::isNone(), and dtn::data::BundleID::source.
|
staticprotected |
Checks if the given correlator value is used in the bundle
bundle | the bundle in which shall be searched for correlators |
correlator | the correlator to be tested for uniqueness |
Definition at line 277 of file SecurityBlock.cpp.
References _correlator, dtn::data::Bundle::begin(), BUNDLE_AUTHENTICATION_BLOCK, dtn::data::Bundle::end(), EXTENSION_SECURITY_BLOCK, dtn::data::Block::getType(), PAYLOAD_CONFIDENTIAL_BLOCK, and PAYLOAD_INTEGRITY_BLOCK.
Referenced by createCorrelatorValue().
bool dtn::security::SecurityBlock::isSecurityDestination | ( | const dtn::data::Bundle & | bundle, |
const dtn::data::EID & | eid | ||
) | const |
Checks if the given EID is a security destination for the given block
bundle | the bundle to which the block belongs to |
eid | the eid of the destination |
Definition at line 688 of file SecurityBlock.cpp.
References dtn::data::EID::getNode(), getSecurityDestination(), dtn::data::EID::getString(), IBRCOMMON_LOGGER_DEBUG_TAG, IBRCOMMON_LOGGER_ENDL, and dtn::data::EID::sameHost().
Referenced by dtn::security::PayloadConfidentialBlock::decrypt(), and dtn::security::SecurityManager::verifyPIB().
bool dtn::security::SecurityBlock::isSecuritySource | ( | const dtn::data::Bundle & | bundle, |
const dtn::data::EID & | eid | ||
) | const |
Checks if the given EID is a security source for the given block
bundle | the bundle to which the block belongs to |
eid | the eid of the source |
Definition at line 682 of file SecurityBlock.cpp.
References dtn::data::EID::getNode(), getSecuritySource(), dtn::data::EID::getString(), IBRCOMMON_LOGGER_DEBUG_TAG, IBRCOMMON_LOGGER_ENDL, and dtn::data::EID::sameHost().
Referenced by dtn::security::PayloadIntegrityBlock::verify(), and dtn::security::BundleAuthenticationBlock::verify().
|
virtual |
Serializes this Block into stream
the | stream in which should be written |
Implements dtn::data::Block.
Definition at line 358 of file SecurityBlock.cpp.
References _ciphersuite_flags, _ciphersuite_id, _ciphersuite_params, _correlator, _security_result, CONTAINS_CIPHERSUITE_PARAMS, CONTAINS_CORRELATOR, and CONTAINS_SECURITY_RESULT.
|
protectedvirtual |
Canonicalizes the block into the stream.
stream | the stream to be written into |
Definition at line 468 of file SecurityBlock.cpp.
References _ciphersuite_flags, _ciphersuite_id, _ciphersuite_params, _correlator, _security_result, CONTAINS_CIPHERSUITE_PARAMS, CONTAINS_CORRELATOR, CONTAINS_SECURITY_RESULT, and getSecurityResultSize().
Referenced by dtn::security::MutableSerializer::operator<<().
|
virtual |
Serializes this block in a strict form. That skips all dynamic field like the security result.
stream |
Reimplemented from dtn::data::Block.
Definition at line 380 of file SecurityBlock.cpp.
References _ciphersuite_flags, _ciphersuite_id, _ciphersuite_params, _correlator, CONTAINS_CIPHERSUITE_PARAMS, CONTAINS_CORRELATOR, CONTAINS_SECURITY_RESULT, and getSecurityResultSize().
|
protected |
Sets the ciphersuite id
id | ciphersuite id |
Definition at line 266 of file SecurityBlock.cpp.
References _ciphersuite_id.
Referenced by dtn::security::BundleAuthenticationBlock::auth(), and dtn::security::PayloadIntegrityBlock::sign().
|
protected |
Sets the correlator
corr | correlator value |
Definition at line 271 of file SecurityBlock.cpp.
References _ciphersuite_flags, _correlator, and CONTAINS_CORRELATOR.
Referenced by dtn::security::BundleAuthenticationBlock::auth(), and dtn::security::PayloadConfidentialBlock::encrypt().
void dtn::security::SecurityBlock::setSecurityDestination | ( | const dtn::data::EID & | destination) |
Sets the security destination of this block
destination | the security destination |
Definition at line 260 of file SecurityBlock.cpp.
References _security_destination, and store_security_references().
Referenced by dtn::security::ExtensionSecurityBlock::encrypt(), dtn::security::PayloadConfidentialBlock::encrypt(), and dtn::security::PayloadIntegrityBlock::sign().
void dtn::security::SecurityBlock::setSecuritySource | ( | const dtn::data::EID & | source) |
Sets the security source of this block
source | the security source |
Definition at line 254 of file SecurityBlock.cpp.
References _security_source, and store_security_references().
Referenced by dtn::security::BundleAuthenticationBlock::auth(), dtn::security::ExtensionSecurityBlock::encrypt(), dtn::security::PayloadConfidentialBlock::encrypt(), and dtn::security::PayloadIntegrityBlock::sign().
|
protected |
stores the security source and destination in the EID reference list
Definition at line 207 of file SecurityBlock.cpp.
References _ciphersuite_flags, dtn::data::Block::_eids, _security_destination, _security_source, CONTAINS_SECURITY_DESTINATION, CONTAINS_SECURITY_SOURCE, and dtn::data::Block::set().
Referenced by setSecurityDestination(), and setSecuritySource().
|
friend |
Definition at line 107 of file SecurityBlock.h.
|
friend |
Definition at line 106 of file SecurityBlock.h.
|
protected |
the ciphersuite flags tell if security result or parameters are
used, if the security destination or source is set and if a correlator is used
Definition at line 293 of file SecurityBlock.h.
Referenced by dtn::security::BundleAuthenticationBlock::auth(), dtn::security::PayloadConfidentialBlock::decrypt(), decryptBlock(), deserialize(), dtn::security::ExtensionSecurityBlock::encrypt(), dtn::security::PayloadConfidentialBlock::encrypt(), getLength(), getLength_mutable(), dtn::security::StrictSerializer::operator<<(), serialize(), serialize_mutable(), serialize_strict(), setCorrelator(), dtn::security::PayloadIntegrityBlock::sign(), store_security_references(), dtn::security::BundleAuthenticationBlock::strip(), and dtn::security::BundleAuthenticationBlock::verify().
|
protected |
the ciphersuite id tells what type of encryption, signature or MAC
is used
Definition at line 289 of file SecurityBlock.h.
Referenced by dtn::security::PayloadConfidentialBlock::decrypt(), deserialize(), getLength(), serialize(), serialize_mutable(), serialize_strict(), setCiphersuiteId(), dtn::security::PayloadIntegrityBlock::verify(), and dtn::security::BundleAuthenticationBlock::verify().
|
protected |
you can find e.g. key information, tags, salts,
initialization_vectors stored als TLVs here
Definition at line 299 of file SecurityBlock.h.
Referenced by dtn::security::ExtensionSecurityBlock::decrypt(), dtn::security::PayloadConfidentialBlock::decrypt(), decryptBlock(), dtn::security::PayloadConfidentialBlock::decryptPayload(), deserialize(), dtn::security::ExtensionSecurityBlock::encrypt(), dtn::security::PayloadConfidentialBlock::encrypt(), getLength(), getLength_mutable(), serialize(), serialize_mutable(), serialize_strict(), and dtn::security::PayloadIntegrityBlock::sign().
|
protected |
a correlator binds several security blocks in a bundle together
Definition at line 295 of file SecurityBlock.h.
Referenced by dtn::security::PayloadConfidentialBlock::decrypt(), dtn::security::ExtensionSecurityBlock::decrypt(), deserialize(), getLength(), isCorrelatorPresent(), dtn::security::StrictSerializer::operator<<(), serialize(), serialize_mutable(), serialize_strict(), setCorrelator(), dtn::security::BundleAuthenticationBlock::strip(), and dtn::security::BundleAuthenticationBlock::verify().
|
protected |
security destination: only set if differs from primary header
Definition at line 305 of file SecurityBlock.h.
Referenced by deserialize(), getSecurityDestination(), setSecurityDestination(), and store_security_references().
|
protected |
you can find encrypted blocks, signatures or MACs here
Definition at line 302 of file SecurityBlock.h.
Referenced by dtn::security::BundleAuthenticationBlock::auth(), decryptBlock(), dtn::security::PayloadConfidentialBlock::decryptPayload(), dtn::security::PayloadIntegrityBlock::deserialize(), deserialize(), dtn::security::PayloadConfidentialBlock::encrypt(), getSecurityResultSize(), serialize(), serialize_mutable(), dtn::security::PayloadIntegrityBlock::sign(), dtn::security::PayloadIntegrityBlock::verify(), and dtn::security::BundleAuthenticationBlock::verify().
|
protected |
security source: only set if differs from primary header
Definition at line 308 of file SecurityBlock.h.
Referenced by deserialize(), getSecuritySource(), setSecuritySource(), and store_security_references().