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

Holds everything found in a key bundle received from X3DH server. More...

Public Member Functions

 X3DH_peerBundle (std::string &&deviceId, std::vector< uint8_t >::const_iterator Ik, std::vector< uint8_t >::const_iterator SPk, uint32_t SPk_id, std::vector< uint8_t >::const_iterator SPk_sig, std::vector< uint8_t >::const_iterator OPk, uint32_t OPk_id)
 
 X3DH_peerBundle (std::string &&deviceId, std::vector< uint8_t >::const_iterator Ik, std::vector< uint8_t >::const_iterator SPk, uint32_t SPk_id, std::vector< uint8_t >::const_iterator SPk_sig)
 
 X3DH_peerBundle (std::string &&deviceId)
 

Public Attributes

const std::string deviceId
 
const DSA< Curve, lime::DSAtype::publicKeyIk
 
const X< Curve, lime::Xtype::publicKeySPk
 
const uint32_t SPk_id
 
const DSA< Curve, lime::DSAtype::signatureSPk_sig
 
const lime::X3DHKeyBundleFlag bundleFlag
 
const X< Curve, lime::Xtype::publicKeyOPk
 
const uint32_t OPk_id
 

Detailed Description

template<typename Curve>
struct lime::X3DH_peerBundle< Curve >

Holds everything found in a key bundle received from X3DH server.

Note
Data members are set once by constructor and then the object is used to pass this data around, so they all are const

Constructor & Destructor Documentation

◆ X3DH_peerBundle() [1/3]

template<typename Curve >
lime::X3DH_peerBundle< Curve >::X3DH_peerBundle ( std::string &&  deviceId,
std::vector< uint8_t >::const_iterator  Ik,
std::vector< uint8_t >::const_iterator  SPk,
uint32_t  SPk_id,
std::vector< uint8_t >::const_iterator  SPk_sig,
std::vector< uint8_t >::const_iterator  OPk,
uint32_t  OPk_id 
)
inline

Constructor gets vector<uint8_t> iterators to all needed data and copy them into correct data types

Parameters
[in]deviceIdpeer Device Id providing this key bundle
[in]Ikpeer public identity key (DSA format)
[in]SPkpeer public Signed-Pre-key (X format)
[in]SPk_idid of the public Signed-Pre-key
[in]SPk_sigSignature of the public Signed-Pre-key(signed with peer Identity key)
[in]OPkOne-time Pre-key (X format) - this parameter is optionnal
[in]OPk_idid of the One-time Pre-key - this parameter is optionnal

◆ X3DH_peerBundle() [2/3]

template<typename Curve >
lime::X3DH_peerBundle< Curve >::X3DH_peerBundle ( std::string &&  deviceId,
std::vector< uint8_t >::const_iterator  Ik,
std::vector< uint8_t >::const_iterator  SPk,
uint32_t  SPk_id,
std::vector< uint8_t >::const_iterator  SPk_sig 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. construct without OPk when not present in the parsed bundle

◆ X3DH_peerBundle() [3/3]

template<typename Curve >
lime::X3DH_peerBundle< Curve >::X3DH_peerBundle ( std::string &&  deviceId)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. construct without bundle when not present in the parsed server response

Member Data Documentation

◆ bundleFlag

template<typename Curve >
const lime::X3DHKeyBundleFlag lime::X3DH_peerBundle< Curve >::bundleFlag

Flag this bundle as empty and if not if it holds an OPk, possible values

◆ deviceId

template<typename Curve >
const std::string lime::X3DH_peerBundle< Curve >::deviceId

peer device Id

◆ Ik

template<typename Curve >
const DSA<Curve, lime::DSAtype::publicKey> lime::X3DH_peerBundle< Curve >::Ik

peer device public identity key

◆ OPk

template<typename Curve >
const X<Curve, lime::Xtype::publicKey> lime::X3DH_peerBundle< Curve >::OPk

peer device One Time preKey

◆ OPk_id

template<typename Curve >
const uint32_t lime::X3DH_peerBundle< Curve >::OPk_id

id of the peer device current public pre-signed key

◆ SPk

template<typename Curve >
const X<Curve, lime::Xtype::publicKey> lime::X3DH_peerBundle< Curve >::SPk

peer device current public pre-signed key

◆ SPk_id

template<typename Curve >
const uint32_t lime::X3DH_peerBundle< Curve >::SPk_id

id of the peer device current public pre-signed key

◆ SPk_sig

template<typename Curve >
const DSA<Curve, lime::DSAtype::signature> lime::X3DH_peerBundle< Curve >::SPk_sig

signature of the peer device current public pre-signed key


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