xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
crypto
csprng.h
1
#pragma once
2
3
#include <
cstddef
>
4
#include <
cstdint
>
5
#include <
limits
>
6
#include <
mutex
>
7
8
namespace
xrpl
{
9
19
class
CsprngEngine
20
{
21
private
:
22
std::mutex
mutex_
;
23
24
public
:
25
using
result_type
=
std::uint64_t
;
26
27
CsprngEngine
(
CsprngEngine
const
&) =
delete
;
28
CsprngEngine
&
29
operator=
(
CsprngEngine
const
&) =
delete
;
30
31
CsprngEngine
(
CsprngEngine
&&) =
delete
;
32
CsprngEngine
&
33
operator=
(
CsprngEngine
&&) =
delete
;
34
35
CsprngEngine
();
36
~CsprngEngine
();
37
41
void
42
mixEntropy
(
void
* buffer =
nullptr
,
std::size_t
count = 0);
43
47
result_type
48
operator()
();
49
53
void
54
operator()
(
void
* ptr,
std::size_t
count);
55
56
/* The smallest possible value that can be returned */
57
static
constexpr
result_type
58
min
()
59
{
60
return
std::numeric_limits<result_type>::min
();
61
}
62
63
/* The largest possible value that can be returned */
64
static
constexpr
result_type
65
max
()
66
{
67
return
std::numeric_limits<result_type>::max
();
68
}
69
};
70
80
CsprngEngine&
81
cryptoPrng
();
82
83
}
// namespace xrpl
xrpl::CsprngEngine::max
static constexpr result_type max()
Definition
csprng.h:65
xrpl::CsprngEngine::mutex_
std::mutex mutex_
Definition
csprng.h:22
xrpl::CsprngEngine::min
static constexpr result_type min()
Definition
csprng.h:58
xrpl::CsprngEngine::CsprngEngine
CsprngEngine(CsprngEngine &&)=delete
xrpl::CsprngEngine::CsprngEngine
CsprngEngine(CsprngEngine const &)=delete
xrpl::CsprngEngine::operator=
CsprngEngine & operator=(CsprngEngine const &)=delete
xrpl::CsprngEngine::~CsprngEngine
~CsprngEngine()
Definition
libxrpl/crypto/csprng.cpp:23
xrpl::CsprngEngine::operator()
result_type operator()()
Generate a random integer.
Definition
libxrpl/crypto/csprng.cpp:73
xrpl::CsprngEngine::operator=
CsprngEngine & operator=(CsprngEngine &&)=delete
xrpl::CsprngEngine::result_type
std::uint64_t result_type
Definition
csprng.h:25
xrpl::CsprngEngine::CsprngEngine
CsprngEngine()
Definition
libxrpl/crypto/csprng.cpp:16
xrpl::CsprngEngine::mixEntropy
void mixEntropy(void *buffer=nullptr, std::size_t count=0)
Mix entropy into the pool.
Definition
libxrpl/crypto/csprng.cpp:32
cstddef
cstdint
std::uint64_t
limits
std::numeric_limits::max
T max(T... args)
std::numeric_limits::min
T min(T... args)
mutex
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::cryptoPrng
CsprngEngine & cryptoPrng()
The default cryptographically secure PRNG.
Definition
libxrpl/crypto/csprng.cpp:81
std::size_t
Generated by
1.17.0