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

Public Member Functions

 jdilithiumsa ()
 Dilithium security association with default values.
 
 jdilithiumsa (keymode_t mode, dilithium_algorithm_t algorithm)
 
 jdilithiumsa (keymode_t mode, dilithium_algorithm_t algorithm, std::shared_ptr< jarray< uint8_t >> &prvkey, std::shared_ptr< jarray< uint8_t >> &pubkey)
 
 jdilithiumsa (jdilithiumsa &security)
 
 jdilithiumsa (std::shared_ptr< jdilithiumsa > &security)
 
 ~jdilithiumsa ()
 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)
 
 jdilithiumsa (const jdilithiumsa &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

◆ jdilithiumsa() [1/4]

ProtocolPP::jdilithiumsa::jdilithiumsa ( keymode_t  mode,
dilithium_algorithm_t  algorithm 
)

Dilithium security association with values chosen by algorithm

Parameters
mode- Mode of operation (GENKEYPAIR, PKISIGN, PKIVERIFY)
algorithm- Dilithium algorithm to use for keys and signature generation

◆ jdilithiumsa() [2/4]

ProtocolPP::jdilithiumsa::jdilithiumsa ( keymode_t  mode,
dilithium_algorithm_t  algorithm,
std::shared_ptr< jarray< uint8_t >> &  prvkey,
std::shared_ptr< jarray< uint8_t >> &  pubkey 
)

Dilithium security association with values chosen by algorithm

Parameters
mode- Mode of operation (GENKEYPAIR, PKISIGN, PKIVERIFY)
algorithm- Dilithium algorith to use for keys and signature generation
prvkey- Previously generated private key
pubkey- Previously generated public key

◆ jdilithiumsa() [3/4]

ProtocolPP::jdilithiumsa::jdilithiumsa ( jdilithiumsa security)

dilithium security association copy constructor

Parameters
security- dilithium security association

◆ jdilithiumsa() [4/4]

ProtocolPP::jdilithiumsa::jdilithiumsa ( std::shared_ptr< jdilithiumsa > &  security)
explicit

dilithium security association copy constructor from shared descriptor

Parameters
security- Dilithium security association

Member Function Documentation

◆ get_field()

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

Returns the field in dilithiumSA

Dilithium SA Get Fields
field typefield nameExample
direction_tDIRECTIONProtocolPP::direction_t mydir = get_field<ProtocolPP::direction_t>(ProtocolPP::field_t::DIRECTION)
dilithium_algorithm_tAUTHProtocolPP::dilithium_algorithm_t myalg = get_field<ProtocolPP::dilithium_algorithm_t>(ProtocolPP::field_t::AUTH)
uint32_tPRVKEYLENuint32_t myprvlen = get_field<uint32_t>(ProtocolPP::field_t::PRVKEYLEN)
uint32_tPUBKEYLENuint32_t mypublen = get_field<uint32_t>(ProtocolPP::field_t::PUBKEYLEN)
uint32_tLENGTHuint32_t mylen = get_field<uint32_t>(ProtocolPP::field_t::LENGTH)
jarray<uint8_t>PUBKEYjarray<uint8_t> mypubkey = get_field<jarray<uint8_t>>(ProtocolPP::field_t::PUBKEY)
uint8_t*PRVKEYuint8_t* myprvkey = get_field<uint8_t*>(ProtocolPP::field_t::PRVKEY)
uint8_t*PUBKEYuint8_t* mypubkey = get_field<uint8_t*>(ProtocolPP::field_t::PUBKEY)
std::shared_ptr<jarray<uint8_t>>PRVKEYstd::shared_ptr<jarray<uint8_t>> myprvkey = get_field<std::shared_ptr<jarray<uint8_t>>>(ProtocolPP::field_t::PRVKEY)
std::shared_ptr<jarray<uint8_t>>PUBKEYstd::shared_ptr<jarray<uint8_t>> mypubkey = get_field<std::shared_ptr<jarray<uint8_t>>>(ProtocolPP::field_t::PUBKEY)
Parameters
field- field to retrieve from the security association
Returns
value of the field in the security association

◆ set_field()

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

Allows the user to update the fields of dilithiumSA security association

Dilithium SA Set Fields
field typefield nameExample
dilithium_algorithm_tAUTHset_field<dilithium_algorithm_t>(ProtocolPP::field_t::AUTH, dilithium_algorithm_t& fieldval)
jarray<uint8_t>PRVKEYset_field<jarray<uint8_t>>(ProtocolPP::field_t::PRVKEY, jarray<uint8_t>& fieldval)
jarray<uint8_t>PUBKEYset_field<jarray<uint8_t>>(ProtocolPP::field_t::PUBKEY, jarray<uint8_t>& fieldval)
std::shared_ptr<jarray<uint8_t>>PRVKEYset_field<std::shared_ptr<jarray<uint8_t>>>(ProtocolPP::field_t::PRVKEY, std::shared_ptr<jarray<uint8_t>>& fieldval)
std::shared_ptr<jarray<uint8_t>>PUBKEYset_field<std::shared_ptr<jarray<uint8_t>>>(ProtocolPP::field_t::PUBKEY, std::shared_ptr<jarray<uint8_t>>& fieldval)
Parameters
field- field to update the security association with
fieldval- value to update the security association with

◆ to_json()

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

Prints the protocol as an JSON object

Parameters
myjson- JSON object to print with
direction- randomization
indent- indentation for JSON output

Implements ProtocolPP::jsecass.

◆ to_xml()

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

Prints the protocol as an XML object

Parameters
myxml- XMLPrinter object to print with
direction- randomization

Implements ProtocolPP::jsecass.


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