lime
Lime is a C++ library implementing Open Whisper System Signal protocol
Public Member Functions | List of all members
lime::X3DHi< Curve > Class Template Reference

a X3DH engine, implements the X3DH interface. More...

Inheritance diagram for lime::X3DHi< Curve >:
lime::X3DH

Public Member Functions

template<typename Curve_ = Curve, std::enable_if_t<!std::is_base_of_v< genericKEM, Curve_ >, bool > = true>
 X3DHi (std::shared_ptr< lime::Db > localStorage, const std::string &selfDeviceId, const std::string &X3DHServerURL, const limeX3DHServerPostData &X3DH_post_data, std::shared_ptr< lime::RNG > RNG_context, const long int Uid)
 
template<typename Curve_ = Curve, std::enable_if_t< std::is_base_of_v< genericKEM, Curve_ >, bool > = true>
 X3DHi (std::shared_ptr< lime::Db > localStorage, const std::string &selfDeviceId, const std::string &X3DHServerURL, const limeX3DHServerPostData &X3DH_post_data, std::shared_ptr< lime::RNG > RNG_context, const long int Uid)
 
 X3DHi ()=delete
 
 X3DHi (X3DHi< Curve > &a)=delete
 
X3DHi< Curve > & operator= (X3DHi< Curve > &a)=delete
 
 ~X3DHi ()
 
std::string get_x3dhServerUrl (void) override
 
void set_x3dhServerUrl (const std::string &x3dhServerUrl) override
 
void get_Ik (std::vector< uint8_t > &Ik) override
 
long int get_dbUid (void) const noexcept override
 
void publish_user (std::shared_ptr< callbackUserData > userData, uint16_t OPkInitialBatchSize) override
 
void delete_user (std::shared_ptr< callbackUserData > userData) override
 
bool is_currentSPk_valid (void) override
 
void update_SPk (std::shared_ptr< callbackUserData > userData) override
 
void update_OPk (std::shared_ptr< callbackUserData > userData) override
 
void fetch_peerBundles (std::shared_ptr< callbackUserData > userData, std::vector< std::string > &peerDeviceIds) override
 
std::shared_ptr< DRinit_receiver_session (const std::vector< uint8_t > X3DH_initMessage, const std::string &senderDeviceId) override
 
- Public Member Functions inherited from lime::X3DH
virtual ~X3DH ()=default
 

Detailed Description

template<typename Curve>
class lime::X3DHi< Curve >

a X3DH engine, implements the X3DH interface.

Template Parameters
CurveThe elliptic curve to use: C255 or C448

Constructor & Destructor Documentation

template<typename Curve >
template<typename Curve_ = Curve, std::enable_if_t<!std::is_base_of_v< genericKEM, Curve_ >, bool > = true>
lime::X3DHi< Curve >::X3DHi ( std::shared_ptr< lime::Db localStorage,
const std::string &  selfDeviceId,
const std::string &  X3DHServerURL,
const limeX3DHServerPostData X3DH_post_data,
std::shared_ptr< lime::RNG RNG_context,
const long int  Uid 
)
inline
template<typename Curve >
template<typename Curve_ = Curve, std::enable_if_t< std::is_base_of_v< genericKEM, Curve_ >, bool > = true>
lime::X3DHi< Curve >::X3DHi ( std::shared_ptr< lime::Db localStorage,
const std::string &  selfDeviceId,
const std::string &  X3DHServerURL,
const limeX3DHServerPostData X3DH_post_data,
std::shared_ptr< lime::RNG RNG_context,
const long int  Uid 
)
inline
template<typename Curve >
lime::X3DHi< Curve >::X3DHi ( )
delete
template<typename Curve >
lime::X3DHi< Curve >::X3DHi ( X3DHi< Curve > &  a)
delete
template<typename Curve >
lime::X3DHi< Curve >::~X3DHi ( )
inline

Member Function Documentation

template<typename Curve >
void lime::X3DHi< Curve >::delete_user ( std::shared_ptr< callbackUserData userData)
inlineoverridevirtual

delete current user from server

Implements lime::X3DH.

template<typename Curve >
void lime::X3DHi< Curve >::fetch_peerBundles ( std::shared_ptr< callbackUserData userData,
std::vector< std::string > &  peerDeviceIds 
)
inlineoverridevirtual

fetch key bundles from server

Implements lime::X3DH.

template<typename Curve >
long int lime::X3DHi< Curve >::get_dbUid ( void  ) const
inlineoverridevirtualnoexcept

get the User Id in database

Implements lime::X3DH.

template<typename Curve >
void lime::X3DHi< Curve >::get_Ik ( std::vector< uint8_t > &  Ik)
inlineoverridevirtual

Implements lime::X3DH.

template<typename Curve >
std::string lime::X3DHi< Curve >::get_x3dhServerUrl ( void  )
inlineoverridevirtual

Implements lime::X3DH.

template<typename Curve >
std::shared_ptr<DR> lime::X3DHi< Curve >::init_receiver_session ( const std::vector< uint8_t >  X3DH_initMessage,
const std::string &  senderDeviceId 
)
inlineoverridevirtual

Implements lime::X3DH.

template<typename Curve >
bool lime::X3DHi< Curve >::is_currentSPk_valid ( void  )
inlineoverridevirtual

Implements lime::X3DH.

template<typename Curve >
X3DHi<Curve>& lime::X3DHi< Curve >::operator= ( X3DHi< Curve > &  a)
delete
template<typename Curve >
void lime::X3DHi< Curve >::publish_user ( std::shared_ptr< callbackUserData userData,
uint16_t  OPkInitialBatchSize 
)
inlineoverridevirtual

publish a new user

Implements lime::X3DH.

template<typename Curve >
void lime::X3DHi< Curve >::set_x3dhServerUrl ( const std::string &  x3dhServerUrl)
inlineoverridevirtual

Implements lime::X3DH.

template<typename Curve >
void lime::X3DHi< Curve >::update_OPk ( std::shared_ptr< callbackUserData userData)
inlineoverridevirtual

Implements lime::X3DH.

template<typename Curve >
void lime::X3DHi< Curve >::update_SPk ( std::shared_ptr< callbackUserData userData)
inlineoverridevirtual

Implements lime::X3DH.


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