Electroneum
Namespaces | Macros | Enumerations | Functions | Variables
ringdb.cpp File Reference
#include <lmdb.h>
#include <boost/algorithm/string.hpp>
#include <boost/range/adaptor/transformed.hpp>
#include <boost/filesystem.hpp>
#include "common/util.h"
#include "misc_log_ex.h"
#include "misc_language.h"
#include "wallet_errors.h"
#include "ringdb.h"
Include dependency graph for ringdb.cpp:

Namespaces

 tools
 Various Tools.
 

Macros

#define ELECTRONEUM_DEFAULT_LOG_CATEGORY   "wallet.ringdb"
 

Enumerations

enum  { BLACKBALL_BLACKBALL , BLACKBALL_UNBLACKBALL , BLACKBALL_QUERY , BLACKBALL_CLEAR }
 

Functions

static int compare_hash32 (const MDB_val *a, const MDB_val *b)
 
static int compare_uint64 (const MDB_val *a, const MDB_val *b)
 
static std::string compress_ring (const std::vector< uint64_t > &ring)
 
static std::vector< uint64_t > decompress_ring (const std::string &s)
 
std::string get_rings_filename (boost::filesystem::path filename)
 
static crypto::chacha_iv make_iv (const crypto::key_image &key_image, const crypto::chacha_key &key)
 
static std::string encrypt (const std::string &plaintext, const crypto::key_image &key_image, const crypto::chacha_key &key)
 
static std::string encrypt (const crypto::key_image &key_image, const crypto::chacha_key &key)
 
static std::string decrypt (const std::string &ciphertext, const crypto::key_image &key_image, const crypto::chacha_key &key)
 
static void store_relative_ring (MDB_txn *txn, MDB_dbi &dbi, const crypto::key_image &key_image, const std::vector< uint64_t > &relative_ring, const crypto::chacha_key &chacha_key)
 
static int resize_env (MDB_env *env, const char *db_path, size_t needed)
 
static size_t get_ring_data_size (size_t n_entries)
 

Variables

static const char zerokey [8] = {0}
 
static const MDB_val zerokeyval = { sizeof(zerokey), (void *)zerokey }
 

Macro Definition Documentation

◆ ELECTRONEUM_DEFAULT_LOG_CATEGORY

#define ELECTRONEUM_DEFAULT_LOG_CATEGORY   "wallet.ringdb"

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
BLACKBALL_BLACKBALL 
BLACKBALL_UNBLACKBALL 
BLACKBALL_QUERY 
BLACKBALL_CLEAR 

Function Documentation

◆ compare_hash32()

static int compare_hash32 ( const MDB_val *  a,
const MDB_val *  b 
)
static

◆ compare_uint64()

static int compare_uint64 ( const MDB_val *  a,
const MDB_val *  b 
)
static

◆ compress_ring()

static std::string compress_ring ( const std::vector< uint64_t > &  ring)
static

◆ decompress_ring()

static std::vector<uint64_t> decompress_ring ( const std::string &  s)
static

◆ decrypt()

static std::string decrypt ( const std::string &  ciphertext,
const crypto::key_image key_image,
const crypto::chacha_key &  key 
)
static

◆ encrypt() [1/2]

static std::string encrypt ( const crypto::key_image key_image,
const crypto::chacha_key &  key 
)
static

◆ encrypt() [2/2]

static std::string encrypt ( const std::string &  plaintext,
const crypto::key_image key_image,
const crypto::chacha_key &  key 
)
static

◆ get_ring_data_size()

static size_t get_ring_data_size ( size_t  n_entries)
static

◆ get_rings_filename()

std::string get_rings_filename ( boost::filesystem::path  filename)

◆ make_iv()

static crypto::chacha_iv make_iv ( const crypto::key_image key_image,
const crypto::chacha_key &  key 
)
static

◆ resize_env()

static int resize_env ( MDB_env *  env,
const char *  db_path,
size_t  needed 
)
static

◆ store_relative_ring()

static void store_relative_ring ( MDB_txn *  txn,
MDB_dbi &  dbi,
const crypto::key_image key_image,
const std::vector< uint64_t > &  relative_ring,
const crypto::chacha_key &  chacha_key 
)
static

Variable Documentation

◆ zerokey

const char zerokey[8] = {0}
static

◆ zerokeyval

const MDB_val zerokeyval = { sizeof(zerokey), (void *)zerokey }
static