lime
Lime is a C++ library implementing Open Whisper System Signal protocol
Public Member Functions | List of all members
lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true > Class Template Reference

Public Member Functions

uint16_t Ns (void) const
 read-only accessor to Sender Chain index (Ns) More...
 
uint16_t PN (void) const
 read-only accessor to Previous Sender Chain index (PN) More...
 
const lime::X< typename Algo::EC, lime::Xtype::publicKey > & ECDHr (void) const
 read-only accessor to peer EC Double Ratchet public key More...
 
const lime::ARsKey< Algo >::serializedPublicBuffer & DHr (void) const
 read-only accessor to peer whole set of keys/ct :EC pk, KEM pk, KEM ct More...
 
bool valid (void) const
 is this header valid? (property is set by constructor/parser) More...
 
bool payloadDirectEncryption (void) const
 what encryption mode is advertised in this header More...
 
bool havePKIndex (void) const
 is there a KEM public key in this header or just an index? More...
 
size_t size (void)
 read-only accessor to the size of parsed header More...
 
bool isDHr (const ARrKey< Algo > &DHr)
 compare the DHr in the header to the one given in parameter. Return true if they match More...
 
bool isDHsIndex (const ARsKey< Algo > &DHs)
 compare the given DHs with the KEM DHsIndex present in header More...
 
std::vector< uint8_t > getDHrIndex (void)
 
std::vector< uint8_t > getDHsIndex (void)
 
 DRHeader ()=delete
 
 DRHeader (const std::vector< uint8_t > header)
 
 ~DRHeader ()
 
void dump (std::ostringstream &os, std::string indent=" ") const
 

Constructor & Destructor Documentation

template<typename Algo >
lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::DRHeader ( )
delete
template<typename Algo >
lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::DRHeader ( const std::vector< uint8_t >  header)
inline
template<typename Algo >
lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::~DRHeader ( )
inline

Member Function Documentation

template<typename Algo >
const lime::ARsKey<Algo>::serializedPublicBuffer& lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::DHr ( void  ) const
inline

read-only accessor to peer whole set of keys/ct :EC pk, KEM pk, KEM ct

template<typename Algo >
void lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::dump ( std::ostringstream &  os,
std::string  indent = "        " 
) const
inline
template<typename Algo >
const lime::X<typename Algo::EC, lime::Xtype::publicKey>& lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::ECDHr ( void  ) const
inline

read-only accessor to peer EC Double Ratchet public key

template<typename Algo >
std::vector<uint8_t> lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::getDHrIndex ( void  )
inline

Return the index used in Db:

  • first part is the ECDH index
  • second part is KEM index
template<typename Algo >
std::vector<uint8_t> lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::getDHsIndex ( void  )
inline
template<typename Algo >
bool lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::havePKIndex ( void  ) const
inline

is there a KEM public key in this header or just an index?

template<typename Algo >
bool lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::isDHr ( const ARrKey< Algo > &  DHr)
inline

compare the DHr in the header to the one given in parameter. Return true if they match

template<typename Algo >
bool lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::isDHsIndex ( const ARsKey< Algo > &  DHs)
inline

compare the given DHs with the KEM DHsIndex present in header

template<typename Algo >
uint16_t lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::Ns ( void  ) const
inline

read-only accessor to Sender Chain index (Ns)

template<typename Algo >
bool lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::payloadDirectEncryption ( void  ) const
inline

what encryption mode is advertised in this header

template<typename Algo >
uint16_t lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::PN ( void  ) const
inline

read-only accessor to Previous Sender Chain index (PN)

template<typename Algo >
size_t lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::size ( void  )
inline

read-only accessor to the size of parsed header

template<typename Algo >
bool lime::anonymous_namespace{lime_double_ratchet.cpp}::DRHeader< Algo, true >::valid ( void  ) const
inline

is this header valid? (property is set by constructor/parser)


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