Protocol++® (Protocolpp®)  v5.6.2
ProtocolPP::jtlsa13 Class Reference
Inheritance diagram for ProtocolPP::jtlsa13:
Collaboration diagram for ProtocolPP::jtlsa13:

Public Member Functions

 jtlsa13 ()
 
 jtlsa13 (direction_t dir, tls_ciphersuite_t ciphersuite, tlstype_t type, uint64_t seqnum, uint32_t icvlen, uint32_t ivlen, std::shared_ptr< jarray< uint8_t >> iv, uint32_t ckeylen, std::shared_ptr< jarray< uint8_t >> cipherkey, uint32_t mtu)
 
 jtlsa13 (jtlsa13 &rhs)
 
 jtlsa13 (std::shared_ptr< jtlsa13 > &rhs)
 
 ~jtlsa13 ()
 Standard deconstructor.
 
template<typename T >
void set_field (field_t field, T fieldval)
 
template<typename T >
get_field (field_t field)
 
void to_xml (tinyxml2::XMLPrinter &myxml, direction_t direction)
 
void to_json (std::ofstream &myjson, direction_t direction, std::string &indent)
 
 jtlsa13 (const jtlsa13 &rhs)=delete
 
- Public Member Functions inherited from ProtocolPP::jsecass
 jsecass ()
 
virtual ~jsecass ()=default
 Standard deconstructor.
 
 jsecass (jsecass &jsecass)=delete
 
 jsecass (const jsecass &jsecass)=delete
 

Constructor & Destructor Documentation

◆ jtlsa13() [1/4]

ProtocolPP::jtlsa13::jtlsa13 ( )

Standard Constructor with defaults

TLS13 Defaults
fieldDefault Value
dirdirection_t::ENCAP
ciphersuitetls_ciphersuite_t::TLS_AES_128_GCM_SHA256
typetlstype_t::APPLICATION
icvlen16
seqnum0
ivlen16
ckeylen16
mtu0
cipherkey0
iv0

◆ jtlsa13() [2/4]

ProtocolPP::jtlsa13::jtlsa13 ( direction_t  dir,
tls_ciphersuite_t  ciphersuite,
tlstype_t  type,
uint64_t  seqnum,
uint32_t  icvlen,
uint32_t  ivlen,
std::shared_ptr< jarray< uint8_t >>  iv,
uint32_t  ckeylen,
std::shared_ptr< jarray< uint8_t >>  cipherkey,
uint32_t  mtu 
)

Security Association for TLS13

Parameters
dir- Direction of processing (ENCAP or DECAP)
ciphersuite- Ciphersuite to use with TLS v1.3
icvlen- Length of the ICV tag
mtu- Maximum transmition unit
type- Default type of packet to send (usually Application)
seqnum- Initial sequence number
ivlen- Length of the initialization vector (IV)
iv- Initialization Vector (IV)
ckeylen- Length of the cipher key
cipherkey- Key for the encryption algorithm

◆ jtlsa13() [3/4]

ProtocolPP::jtlsa13::jtlsa13 ( jtlsa13 rhs)

Constructor for TLS Security Association

Parameters
rhs- Security association (SA) for this TLS flow

◆ jtlsa13() [4/4]

ProtocolPP::jtlsa13::jtlsa13 ( std::shared_ptr< jtlsa13 > &  rhs)
explicit

Constructor for TLS Security Association

Parameters
rhs- Security association (SA) for this TLS flow

Member Function Documentation

◆ get_field()

template<typename T >
T ProtocolPP::jtlsa13::get_field ( field_t  field)

Retrieve the field from the TLS security association

TLS Get Fields
field typefield nameExample
direction_tDIRECTIONdirection_t mydir = get_field<direction_t>(field_t::DIRECTION)
tls_ciphersuite_tCIPHERSUITEtls_ciphersuite_t mycsuite = get_field<tls_ciphersuite_t>(field_t::CIPHERSUITE)
tlsver_tVERSIONtlsver_t myver = get_field<tlsver_t>(field_t::VERSION)
tlstype_tTYPEtlstype_t mytype = get_field<tlstype_t>(field_t::TYPE)
uint32_tICVLENuint32_t myicvlen = get_field<uint32_t>(field_t::ICVLEN);
IVLENuint32_t myivlen = get_field<uint32_t>(field_t::IVLEN);
CKEYLENuint32_t myckeylen = get_field<uint32_t>(field_t::CKEYLEN);
MTUuint32_t mymtu = get_field<uint32_t>(field_t::MTU);
uint64_tSEQNUMuint64_t myseqnum = get_field<uint64_t>(field_t::SEQNUM);
std::shared_ptr<jarray<uint8_t>>IVstd::shared_ptr<jarray<uint8_t>> myiv = get_field<std::shared_ptr<jarray<uint8_t>>>(field_t::IV)
CIPHERKEYstd::shared_ptr<jarray<uint8_t>> myckey = get_field<std::shared_ptr<jarray<uint8_t>>>(field_t::CIPHERKEY)
Parameters
field- field to retrieve
Returns
value of the field

◆ set_field()

template<typename T >
void ProtocolPP::jtlsa13::set_field ( field_t  field,
fieldval 
)

Update the field in the TLS security association

TLS Set Fields
field typefield nameExample
direction_tDIRECTIONset_field<direction_t>(field_t::DIRECTION, direction_t::DECAP)
tls_ciphersuite_tCIPHERSUITEset_field<tls_ciphersuite_t>(field_t::CIPHERSUITE, tls_ciphersuite::TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA)
tlsver_tVERSIONset_field<tlsver_t>(field_t::VERSION, tlsver_t::DTLS)
tlstype_tTYPEset_field<tlstype_t>(field_t::TYPE, tlstype_t::APPLICATION)
uint32_tICVLENset_field<uint32_t>(field_t::ICVLEN, 0);
IVLENset_field<uint32_t>(field_t::IVLEN, 0);
CKEYLENset_field<uint32_t>(field_t::CKEYLEN, 0);
MTUset_field<uint32_t>(field_t::MTU, 0);
uint64_tSEQNUMset_field<uint64_t>(field_t::SEQNUM, 0);
std::shared_ptr<jarray<uint8_t>>IVset_field<std::shared_ptr<jarray<uint8_t>>>(field_t::IV, std::make_shared<rotocolPP::jarray<uint8_t>>("000000000000001"))
CIPHERKEYset_field<std::shared_ptr<jarray<uint8_t>>>(field_t::CIPHERKEY, std::make_shared<rotocolPP::jarray<uint8_t>>("000000000000001"))
Parameters
field- TLS field to update
fieldval- new value for the field

◆ to_json()

void ProtocolPP::jtlsa13::to_json ( std::ofstream &  myjson,
direction_t  direction,
std::string &  indent 
)
virtual

Print the protocol and security objects to JSON

Parameters
myjson- JSON object
direction- facilitator for random descriptor generation
indent- indentation for JSON output

Implements ProtocolPP::jsecass.

◆ to_xml()

void ProtocolPP::jtlsa13::to_xml ( tinyxml2::XMLPrinter myxml,
direction_t  direction 
)
virtual

Print the protocol and security objects to XML

Parameters
myxml- XMLPrinter object
direction- facilitator for random descriptor generation

Implements ProtocolPP::jsecass.


The documentation for this class was generated from the following file: