lime
Lime is a C++ library implementing Open Whisper System Signal protocol
Public Types | Public Member Functions | Static Public Member Functions | List of all members
lime::ARrKey< Algo, true > Struct Template Reference

Public Types

using serializedBuffer = std::array< uint8_t, X< Algo, lime::Xtype::publicKey >::ssize()+K< Algo, lime::Ktype::publicKey >::ssize()+K< Algo, lime::Ktype::cipherText >::ssize()>
 

Public Member Functions

 ARrKey (const X< typename Algo::EC, lime::Xtype::publicKey > &ecDHr, K< typename Algo::KEM, lime::Ktype::publicKey > &kemDHr, K< typename Algo::KEM, lime::Ktype::cipherText > &kemCTr)
 
 ARrKey (const X< typename Algo::EC, lime::Xtype::publicKey > &ecDHr, K< typename Algo::KEM, lime::Ktype::publicKey > &kemDHr)
 
 ARrKey (const SignedPreKey< Algo > &SPk)
 
 ARrKey (const serializedBuffer &DHr)
 
 ARrKey ()
 
const X< typename Algo::EC, lime::Xtype::publicKey > & ECPublicKey (void) const
 
const K< typename Algo::KEM, lime::Ktype::publicKey > & KEMPublicKey (void) const
 
const K< typename Algo::KEM, lime::Ktype::cipherText > & KEMCipherText (void) const
 
void setECPk (const X< typename Algo::EC, lime::Xtype::publicKey > ec_Pk)
 
std::vector< uint8_t > getKEMIndex (void) const
 
std::vector< uint8_t > getIndex (void) const
 
serializedBuffer serialize (void) const
 

Static Public Member Functions

static constexpr size_t serializedSize (void)
 

Member Typedef Documentation

template<typename Algo >
using lime::ARrKey< Algo, true >::serializedBuffer = std::array<uint8_t, X<Algo, lime::Xtype::publicKey>::ssize() + K<Algo, lime::Ktype::publicKey>::ssize() + K<Algo, lime::Ktype::cipherText>::ssize()>

Constructor & Destructor Documentation

template<typename Algo >
lime::ARrKey< Algo, true >::ARrKey ( const X< typename Algo::EC, lime::Xtype::publicKey > &  ecDHr,
K< typename Algo::KEM, lime::Ktype::publicKey > &  kemDHr,
K< typename Algo::KEM, lime::Ktype::cipherText > &  kemCTr 
)
inline
template<typename Algo >
lime::ARrKey< Algo, true >::ARrKey ( const X< typename Algo::EC, lime::Xtype::publicKey > &  ecDHr,
K< typename Algo::KEM, lime::Ktype::publicKey > &  kemDHr 
)
inline
template<typename Algo >
lime::ARrKey< Algo, true >::ARrKey ( const SignedPreKey< Algo > &  SPk)
inline
template<typename Algo >
lime::ARrKey< Algo, true >::ARrKey ( const serializedBuffer DHr)
inline
template<typename Algo >
lime::ARrKey< Algo, true >::ARrKey ( )
inline

Member Function Documentation

template<typename Algo >
const X<typename Algo::EC, lime::Xtype::publicKey>& lime::ARrKey< Algo, true >::ECPublicKey ( void  ) const
inline
template<typename Algo >
std::vector<uint8_t> lime::ARrKey< Algo, true >::getIndex ( void  ) const
inline

Index is a hash of public key to identify it without storing it all - used to index skipped message key chain Index is composed of EC index and KEM index

template<typename Algo >
std::vector<uint8_t> lime::ARrKey< Algo, true >::getKEMIndex ( void  ) const
inline
template<typename Algo >
const K<typename Algo::KEM, lime::Ktype::cipherText>& lime::ARrKey< Algo, true >::KEMCipherText ( void  ) const
inline
template<typename Algo >
const K<typename Algo::KEM, lime::Ktype::publicKey>& lime::ARrKey< Algo, true >::KEMPublicKey ( void  ) const
inline
template<typename Algo >
serializedBuffer lime::ARrKey< Algo, true >::serialize ( void  ) const
inline
template<typename Algo >
static constexpr size_t lime::ARrKey< Algo, true >::serializedSize ( void  )
inlinestatic
template<typename Algo >
void lime::ARrKey< Algo, true >::setECPk ( const X< typename Algo::EC, lime::Xtype::publicKey ec_Pk)
inline

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