Offline Transaction Signing (OTS) 0.1.0
Loading...
Searching...
No Matches
seed-polyseed.cpp File Reference

Implementation of the Polyseed class. More...

#include <time.h>
#include <openssl/evp.h>
#include <openssl/sha.h>
#include <utf8proc.h>
#include "ots.hpp"
#include "ots-internal.hpp"
#include "seed-polyseed-internal.hpp"
#include "ots-exceptions.hpp"
#include "key-store.hpp"
#include "polyseed-key-store.hpp"
#include "cryptonote_basic/cryptonote_format_utils.h"
#include "memwipe.h"
#include "crypto/crypto.h"
#include "string_tools.h"
Include dependency graph for seed-polyseed.cpp:

Namespaces

namespace  ots
 The library exists complete only in this namespace.
 

Functions

void ots::onPolyseedStatusNotOkThrowException (const polyseed_status &status)
 Translates status to ots::exception's.
 
void ots::injectPolyseedDependency ()
 makes sure dependencies are injected before first use, injection happens only once - first time.
 
void ots::polyseed_random_wrapper (void *result, size_t n)
 provides random bytes to polyseed library
 
void ots::polyseed_pbkdf2_wrapper (const uint8_t *pw, size_t pwlen, const uint8_t *salt, size_t saltlen, uint64_t iterations, uint8_t *key, size_t keylen)
 provides pbkdf2-sha256 to polyseed library
 
void ots::polyseed_memwipe_wrapper (void *const ptr, const size_t len)
 provides memory wipe to polyseed library
 
size_t ots::utf8_nfc (const char *str, polyseed_str norm)
 provides utf8 normalization to polyseed library at the moment utf8proc is used, because it seems that boost::locale will drag more dependencies with in.
 
size_t ots::utf8_nfkd (const char *str, polyseed_str norm)
 provides utf8 normalization to polyseed library, uses also utf8proc
 

Detailed Description

Implementation of the Polyseed class.

Todo:
Refactor, the private header file use of polyseed is ugly, the dependency injection is ugly, too.
See also
monero-seed-internal.hpp for ugly includes and dependency injection wrapper functions
utf8proc in CMakelists.txt for the utf8proc library which is used for utf8 normalization