Loading...
Searching...
No Matches
lime_double_ratchet.hpp File Reference

Go to the source code of this file.

## Classes

struct | lime::ReceiverKeyChain< Curve >
| Chain storing the DH and MKs associated with Nr(uint16_t map index). More...
class | lime::DR< Curve >
| store a Double Rachet session. More...
struct | lime::RecipientInfos< Curve >
| extend the RecipientData to add a Double Ratchet session shared with the recipient More...

## Namespaces

namespace | lime

## Typedefs

using | lime::DRChainKey = lime::sBuffer<lime::settings::DRChainKeySize>
using | lime::DRMKey = lime::sBuffer<lime::settings::DRMessageKeySize+lime::settings::DRMessageIVSize>
using | lime::SharedADBuffer = std::array<uint8_t, lime::settings::DRSessionSharedADSize>

## Enumerations

enum class | lime::DRSessionDbStatus : uint8_t { lime::clean , lime::dirty_encrypt , lime::dirty_decrypt , lime::dirty_ratchet , lime::dirty }
| the possible status of session regarding the Local Storage More...

## Functions

template<typename Curve>
void | lime::encryptMessage (std::vector< RecipientInfos< Curve > > &recipients, const std::vector< uint8_t > &plaintext, const std::vector< uint8_t > &recipientUserId, const std::string &sourceDeviceId, std::vector< uint8_t > &cipherMessage, const lime::EncryptionPolicy encryptionPolicy, std::shared_ptr< lime::Db > localStorage)
| Encrypt a message to all recipients, identified by their device id.
template<typename Curve>
std::shared_ptr< DR< Curve > > | lime::decryptMessage (const std::string &sourceDeviceId, const std::string &recipientDeviceId, const std::vector< uint8_t > &recipientUserId, std::vector< std::shared_ptr< DR< Curve > > > &DRSessions, const std::vector< uint8_t > &DRmessage, const std::vector< uint8_t > &cipherMessage, std::vector< uint8_t > &plaintext)
| Decrypt a message.