lime
Lime is a C++ library implementing Open Whisper System Signal protocol
Namespaces | Functions
lime_double_ratchet_protocol.cpp File Reference

Namespaces

 lime
 
 lime::double_ratchet_protocol
 Group in this namespace all the functions related to building or parsing double ratchet packets.
 

Functions

template<typename Curve >
void lime::double_ratchet_protocol::buildMessage_X3DHinit (std::vector< uint8_t > &message, const DSA< Curve, lime::DSAtype::publicKey > &Ik, const X< Curve, lime::Xtype::publicKey > &Ek, const uint32_t SPk_id, const uint32_t OPk_id, const bool OPk_flag) noexcept
 build an X3DH init message to insert in DR header More...
 
template<typename Curve >
void lime::double_ratchet_protocol::parseMessage_X3DHinit (const std::vector< uint8_t >message, DSA< Curve, lime::DSAtype::publicKey > &Ik, X< Curve, lime::Xtype::publicKey > &Ek, uint32_t &SPk_id, uint32_t &OPk_id, bool &OPk_flag) noexcept
 Parse the X3DH init message and extract peer Ik, peer Ek, self SPk id and seld OPk id if present. More...
 
template<typename Curve >
bool lime::double_ratchet_protocol::parseMessage_get_X3DHinit (const std::vector< uint8_t > &message, std::vector< uint8_t > &X3DH_initMessage) noexcept
 check the message for presence of X3DH init in the header, extract it if there is one More...
 
template<typename Curve >
void lime::double_ratchet_protocol::buildMessage_header (std::vector< uint8_t > &header, const uint16_t Ns, const uint16_t PN, const X< Curve, lime::Xtype::publicKey > &DHs, const std::vector< uint8_t > X3DH_initMessage, const bool payloadDirectEncryption) noexcept
 Build a header string from needed info. More...