Protocol++® (Protocolpp®)
v5.6.2
|
Public Member Functions | |
jdtls13 (std::shared_ptr< jrand > &rand, std::shared_ptr< jdtlsa13 > &security, std::string &replay) | |
jdtls13 (std::shared_ptr< jrand > &rand, std::shared_ptr< jdtlsa13 > &security, std::string &file, std::string &replay) | |
virtual | ~jdtls13 ()=default |
Standard deconstructor. | |
void | encap_packet (std::shared_ptr< jarray< uint8_t >> &input, std::shared_ptr< jarray< uint8_t >> &output) |
void | decap_packet (std::shared_ptr< jarray< uint8_t >> &input, std::shared_ptr< jarray< uint8_t >> &output) |
void | set_hdr (jarray< uint8_t > &hdr) |
void | set_field (field_t field, uint64_t value) |
jarray< uint8_t > | get_hdr () |
uint64_t | get_field (field_t field) |
uint64_t | get_field (field_t field, jarray< uint8_t > &header) |
void | get_security (std::shared_ptr< jdtlsa13 > &sec) |
void | to_xml (tinyxml2::XMLPrinter &myxml, direction_t direction) |
void | to_json (std::ofstream &myjson, direction_t direction, std::string &indent) |
jdtls13 (jdtls13 &jdtls13)=delete | |
jdtls13 (const jdtls13 &jdtls13)=delete | |
Public Member Functions inherited from ProtocolPP::jprotocol | |
jprotocol (direction_t dir) | |
jprotocol (direction_t dir, std::string &file) | |
jprotocol (direction_t dir, std::shared_ptr< jrand > &rand) | |
jprotocol (direction_t dir, std::shared_ptr< jrand > &rand, std::string &file) | |
virtual | ~jprotocol () |
Standard deconstructor. | |
virtual void | encap_packet (std::shared_ptr< jarray< uint8_t >> &output) |
virtual void | decap_packet (std::shared_ptr< jarray< uint8_t >> &input) |
bool | hasfile () |
uint32_t | get_status () |
jarray< uint8_t > | checksum (iana_t prot, direction_t dir, jarray< uint8_t > &check, uint32_t offset=0) |
jarray< uint8_t > | pad (pad_t padtype, uint32_t len) |
jprotocol (jprotocol &jprotocol)=delete | |
jprotocol (const jprotocol &jprotocol)=delete | |
Static Public Member Functions | |
static void | hkdf_extract (tls_ciphersuite_t ciphersuite, jarray< uint8_t > &salt, jarray< uint8_t > &ikm, std::shared_ptr< jarray< uint8_t >> &prk) |
static void | hkdf_expand (tls_ciphersuite_t ciphersuite, uint32_t keymatlen, std::shared_ptr< jarray< uint8_t >> &prk, std::shared_ptr< jarray< uint8_t >> &info, std::shared_ptr< jarray< uint8_t >> &okm) |
Static Public Member Functions inherited from ProtocolPP::jprotocol | |
const static std::string | currentDateTime () |
static std::string | str_status (uint32_t status) |
static jarray< uint8_t > | to_array (uint8_t input) |
static jarray< uint8_t > | to_array (uint16_t input) |
static jarray< uint8_t > | to_array (uint32_t input) |
static jarray< uint8_t > | to_array (uint64_t input) |
static uint8_t | to_u8 (jarray< uint8_t > src_array) |
static uint16_t | to_u16 (jarray< uint8_t > src_array) |
static uint32_t | to_u32 (jarray< uint8_t > src_array) |
static uint64_t | to_u64 (jarray< uint8_t > src_array) |
static uint32_t | fnv_hash (std::shared_ptr< jarray< uint8_t >> &header, jarray< uint8_t > &mask, uint32_t hdrlen) |
Additional Inherited Members | |
Protected Member Functions inherited from ProtocolPP::jprotocol | |
template<typename T , typename TE > | |
std::shared_ptr< jreplay< T, TE > > | update_replay (protocol_t prot, T &seqnum, TE &extseq, bool usext, uint32_t size) |
template<typename T , typename TE > | |
std::shared_ptr< jreplay< T, TE > > | update_replay (protocol_t prot, T &seqnum, TE &extseq, bool usext, uint32_t size, jarray< uint8_t > &window) |
void | update_status (uint32_t stat) |
void | get_data (std::shared_ptr< jarray< uint8_t >> &data) |
void | put_data (std::shared_ptr< jarray< uint8_t >> &wdata) |
void | encryptdat (std::shared_ptr< jarray< uint8_t >> &red, std::shared_ptr< jarray< uint8_t >> &black) |
void | decryptdat (std::shared_ptr< jarray< uint8_t >> &black, std::shared_ptr< jarray< uint8_t >> &red) |
uint32_t | roundup (uint32_t value, uint32_t mult) |
Protected Attributes inherited from ProtocolPP::jprotocol | |
direction_t | m_dir |
direction of processing | |
uint32_t | m_status |
std::shared_ptr< jrand > | m_rand |
random data generator passed into constructor | |
std::string | m_filename |
file input string for this protocol | |
std::fstream | m_file |
input file stream object for this protocol | |
endian_t | m_endian |
endianess string for this protocol | |
ProtocolPP::jdtls13::jdtls13 | ( | std::shared_ptr< jrand > & | rand, |
std::shared_ptr< jdtlsa13 > & | security, | ||
std::string & | replay | ||
) |
Constructor for DTLS13
rand | - Random data generation for IVs and padding |
security | - Security association (SA) for this DTLS flow |
replay | - Type of packet |
ProtocolPP::jdtls13::jdtls13 | ( | std::shared_ptr< jrand > & | rand, |
std::shared_ptr< jdtlsa13 > & | security, | ||
std::string & | file, | ||
std::string & | replay | ||
) |
Constructor for DTLS13
rand | - Random data generation for IVs and padding |
security | - Security association (SA) for this DTLS flow |
file | - file for input/output data |
replay | - Type of packet |
|
virtual |
Decap will produce a payload from the packet passed
input | - packet to decapsulate with DTLS |
output | - packet encapsulated with DTLS |
Implements ProtocolPP::jprotocol.
|
virtual |
Encap will produce a packet from the payload passed
input | - payload to protect with DTLS |
output | - packet encapsulated with DTLS |
Implements ProtocolPP::jprotocol.
|
virtual |
Retrieve the field from the security association
field | - field to retrieve |
Reimplemented from ProtocolPP::jprotocol.
Retrieve the field from the DTLS header
field | - field to retrieve |
header | - DTLS header to retrieve field from |
Implements ProtocolPP::jprotocol.
|
virtual |
void ProtocolPP::jdtls13::get_security | ( | std::shared_ptr< jdtlsa13 > & | sec | ) |
get_security
sec | - Shared pointer to hold the security association |
|
static |
hkdf_expand that expands the psuedorandom key material into the output key material using the PRK, INFO that uniquifies the output key material, and generates enough material for keymatlen
ciphersuite | - Ciphersuite to generate PRF data for |
keymatlen | - length in bytes of the output key material |
prk | - psuedorandom key for the hash function |
info | - optional context and application specific information |
okm | - output keying material (of length keymatlen) |
|
static |
hkdf_extract creates the pseudorandom key using the random salt and input key material (IKM). The PRK is then expanded by hkdf_expand() to create the required output key material
ciphersuite | - Ciphersuite to generate PRF data for |
salt | - optional salt (a non-secret random value) |
ikm | - input keying material (IKM) |
prk | - a pseudorandom key of length equal to the hash output |
|
virtual |
Update the type field in the DTLS header
field | - DTLS field to update |
value | - new value for the field |
Implements ProtocolPP::jprotocol.
|
virtual |
Update the type field in the DTLS header
hdr | - new header |
Implements ProtocolPP::jprotocol.
|
virtual |
Print the protocol and security objects to JSON
myjson | - JSON object |
direction | - facilitator for random descriptor generation |
indent | - indentation for JSON output |
Implements ProtocolPP::jprotocol.
|
virtual |
Print the protocol and security objects to XML
myxml | - XMLPrinter object |
direction | - facilitator for random descriptor generation |
Implements ProtocolPP::jprotocol.