Loading...
Searching...
No Matches
lime_double_ratchet_protocol.cpp File Reference

## Namespaces

namespace | lime
namespace | 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
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.
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
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.