Monero
Loading...
Searching...
No Matches
crypto.cpp File Reference
#include <unistd.h>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <boost/thread/mutex.hpp>
#include <boost/thread/lock_guard.hpp>
#include <boost/shared_ptr.hpp>
#include "common/varint.h"
#include "warnings.h"
#include "crypto.h"
#include "hash.h"
#include "cryptonote_config.h"
#include "crypto-ops.h"
#include "random.h"
Include dependency graph for crypto.cpp:

Classes

struct  crypto::ge_p2
struct  crypto::ge_p3
struct  crypto::ge_p1p1
struct  crypto::ge_precomp
struct  crypto::ge_cached
struct  crypto::s_comm
struct  crypto::s_comm_2_v1
struct  crypto::s_comm_2
struct  crypto::ec_point_pair
struct  crypto::rs_comm

Namespaces

namespace  crypto
 crypto namespace.

Typedefs

typedef int32_t crypto::fe[10]
typedef ge_cached crypto::ge_dsmp[8]

Functions

void crypto::ge_add (ge_p1p1 *, const ge_p3 *, const ge_cached *)
void crypto::ge_dsm_precomp (ge_dsmp r, const ge_p3 *s)
void crypto::ge_double_scalarmult_base_vartime (ge_p2 *, const unsigned char *, const ge_p3 *, const unsigned char *)
void crypto::ge_triple_scalarmult_base_vartime (ge_p2 *, const unsigned char *, const unsigned char *, const ge_dsmp, const unsigned char *, const ge_dsmp)
void crypto::ge_double_scalarmult_base_vartime_p3 (ge_p3 *, const unsigned char *, const ge_p3 *, const unsigned char *)
int crypto::ge_frombytes_vartime (ge_p3 *, const unsigned char *)
void crypto::ge_p1p1_to_p2 (ge_p2 *, const ge_p1p1 *)
void crypto::ge_p1p1_to_p3 (ge_p3 *, const ge_p1p1 *)
void crypto::ge_p2_dbl (ge_p1p1 *, const ge_p2 *)
void crypto::ge_p3_to_cached (ge_cached *, const ge_p3 *)
void crypto::ge_p3_to_p2 (ge_p2 *, const ge_p3 *)
void crypto::ge_p3_tobytes (unsigned char *, const ge_p3 *)
void crypto::ge_scalarmult_base (ge_p3 *, const unsigned char *)
void crypto::ge_tobytes (unsigned char *, const ge_p2 *)
void crypto::sc_reduce (unsigned char *)
void crypto::ge_scalarmult (ge_p2 *, const unsigned char *, const ge_p3 *)
void crypto::ge_scalarmult_p3 (ge_p3 *, const unsigned char *, const ge_p3 *)
void crypto::ge_double_scalarmult_precomp_vartime (ge_p2 *, const unsigned char *, const ge_p3 *, const unsigned char *, const ge_dsmp)
void crypto::ge_triple_scalarmult_precomp_vartime (ge_p2 *, const unsigned char *, const ge_dsmp, const unsigned char *, const ge_dsmp, const unsigned char *, const ge_dsmp)
void crypto::ge_double_scalarmult_precomp_vartime2 (ge_p2 *, const unsigned char *, const ge_dsmp, const unsigned char *, const ge_dsmp)
void crypto::ge_double_scalarmult_precomp_vartime2_p3 (ge_p3 *, const unsigned char *, const ge_dsmp, const unsigned char *, const ge_dsmp)
void crypto::ge_mul8 (ge_p1p1 *, const ge_p2 *)
void crypto::ge_fromfe_frombytes_vartime (ge_p2 *, const unsigned char *)
void crypto::sc_0 (unsigned char *)
void crypto::sc_reduce32 (unsigned char *)
void crypto::sc_add (unsigned char *, const unsigned char *, const unsigned char *)
void crypto::sc_sub (unsigned char *, const unsigned char *, const unsigned char *)
void crypto::sc_mulsub (unsigned char *, const unsigned char *, const unsigned char *, const unsigned char *)
void crypto::sc_mul (unsigned char *, const unsigned char *, const unsigned char *)
void crypto::sc_muladd (unsigned char *s, const unsigned char *a, const unsigned char *b, const unsigned char *c)
int crypto::sc_check (const unsigned char *)
int crypto::sc_isnonzero (const unsigned char *)
uint64_t crypto::load_3 (const unsigned char *in)
uint64_t crypto::load_4 (const unsigned char *in)
void crypto::ge_sub (ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
void crypto::fe_add (fe h, const fe f, const fe g)
void crypto::fe_tobytes (unsigned char *, const fe)
void crypto::fe_invert (fe out, const fe z)
int crypto::ge_p3_is_point_at_infinity_vartime (const ge_p3 *p)
void crypto::generate_random_bytes_not_thread_safe (size_t n, void *result)
void crypto::add_extra_entropy_not_thread_safe (const void *ptr, size_t bytes)
static unsigned char * crypto::operator& (ec_point &point)
static const unsigned char * crypto::operator& (const ec_point &point)
static unsigned char * crypto::operator& (ec_scalar &scalar)
static const unsigned char * crypto::operator& (const ec_scalar &scalar)
boost::mutex & crypto::get_random_lock ()
void crypto::generate_random_bytes_thread_safe (size_t N, uint8_t *bytes)
void crypto::add_extra_entropy_thread_safe (const void *ptr, size_t bytes)
static bool crypto::less32 (const unsigned char *k0, const unsigned char *k1)
void crypto::random32_unbiased (unsigned char *bytes)
static void crypto::random_scalar (ec_scalar &res)
void crypto::hash_to_scalar (const void *data, size_t length, ec_scalar &res)
static void crypto::hash_to_ec (const public_key &key, ge_p3 &res)
static POP_WARNINGS size_t crypto::rs_comm_size (size_t pubs_count)

Variables

const ge_precomp crypto::ge_Bi [8]
const fe crypto::fe_sqrtm1
const fe crypto::fe_d
const fe crypto::fe_d2
const ge_precomp crypto::ge_base [32][8]
const fe crypto::fe_ma2
const fe crypto::fe_ma
const fe crypto::fe_fffb1
const fe crypto::fe_fffb2
const fe crypto::fe_fffb3
const fe crypto::fe_fffb4
const ge_p3 crypto::ge_p3_identity
const ge_p3 crypto::ge_p3_H
const crypto::public_key crypto::null_pkey = crypto::public_key{}
const crypto::secret_key crypto::null_skey = crypto::secret_key{}