#include <rand.hpp>
|
| OPENVPN_EXCEPTION (rand_error_mbedtls) |
|
| MbedTLSRandom (StrongRandomAPI::Ptr entropy_source) |
|
| MbedTLSRandom () |
|
virtual | ~MbedTLSRandom () |
|
std::string | name () const override |
| Get the name of the random number generation algorithm.
|
|
void | rand_bytes (unsigned char *buf, size_t size) override |
| Fill a buffer with random bytes.
|
|
bool | rand_bytes_noexcept (unsigned char *buf, size_t size) override |
| Fill a buffer with random bytes without throwing exceptions.
|
|
mbedtls_ctr_drbg_context * | get_ctr_drbg_ctx () |
|
Public Member Functions inherited from openvpn::RandomAPI |
template<typename T > |
void | rand_fill (T &obj) |
| Fill a data object with random bytes.
|
|
template<typename T > |
T | rand_get () |
| Create a data object filled with random bytes.
|
|
template<typename T > |
T | rand_get_positive () |
| Create a data object filled with random bytes, always >= 0 for signed types.
|
|
template<typename T > |
T | randrange (const T end) |
| Return a uniformly distributed random number in the range [0, end)
|
|
template<typename T > |
T | randrange (const T start, const T end) |
| Return a uniformly distributed random number in the range [start, end].
|
|
std::uint32_t | randrange32 (const std::uint32_t end) |
| Return a uniformly distributed random number in the range [0, end)
|
|
std::uint32_t | randrange32 (const std::uint32_t start, const std::uint32_t end) |
| Return a uniformly distributed random number in the range [start, end].
|
|
std::uint8_t | randbyte () |
| Return a random byte.
|
|
bool | randbool () |
| Return a random boolean.
|
|
result_type | operator() () |
|
| RC () noexcept=default |
|
| RC (const RC &)=delete |
|
virtual | ~RC ()=default |
|
RC & | operator= (const RC &)=delete |
|
olong | use_count () const noexcept |
| Delegates call to RCImpl and returns the result.
|
|
|
int | rndbytes (unsigned char *buf, size_t size) |
|
|
static int | entropy_poll (void *arg, unsigned char *output, size_t len) |
|
Definition at line 30 of file rand.hpp.
◆ Ptr
◆ MbedTLSRandom() [1/2]
◆ MbedTLSRandom() [2/2]
openvpn::MbedTLSRandom::MbedTLSRandom |
( |
| ) |
|
|
inline |
◆ ~MbedTLSRandom()
virtual openvpn::MbedTLSRandom::~MbedTLSRandom |
( |
| ) |
|
|
inlinevirtual |
◆ entropy_poll()
static int openvpn::MbedTLSRandom::entropy_poll |
( |
void * |
arg, |
|
|
unsigned char * |
output, |
|
|
size_t |
len |
|
) |
| |
|
inlinestaticprivate |
◆ get_ctr_drbg_ctx()
mbedtls_ctr_drbg_context * openvpn::MbedTLSRandom::get_ctr_drbg_ctx |
( |
| ) |
|
|
inline |
function to get the mbedtls_ctr_drbg_context. This is needed for the pk_parse methods in mbed TLS 3.0 that require a random number generator to avoid side channel attacks when loading private keys. The returned context is tied to the internal state of this random number generator.
Definition at line 92 of file rand.hpp.
◆ name()
std::string openvpn::MbedTLSRandom::name |
( |
| ) |
const |
|
inlineoverridevirtual |
Get the name of the random number generation algorithm.
- Returns
- The name of the algorithm
Implements openvpn::RandomAPI.
Definition at line 62 of file rand.hpp.
◆ OPENVPN_EXCEPTION()
openvpn::MbedTLSRandom::OPENVPN_EXCEPTION |
( |
rand_error_mbedtls |
| ) |
|
◆ rand_bytes()
void openvpn::MbedTLSRandom::rand_bytes |
( |
unsigned char * |
buf, |
|
|
size_t |
size |
|
) |
| |
|
inlineoverridevirtual |
Fill a buffer with random bytes.
- Parameters
-
buf | Pointer to the buffer |
size | Number of bytes to generate |
Implements openvpn::RandomAPI.
Definition at line 72 of file rand.hpp.
◆ rand_bytes_noexcept()
bool openvpn::MbedTLSRandom::rand_bytes_noexcept |
( |
unsigned char * |
buf, |
|
|
size_t |
size |
|
) |
| |
|
inlineoverridevirtual |
Fill a buffer with random bytes without throwing exceptions.
- Parameters
-
buf | Pointer to the buffer |
size | Number of bytes to generate |
- Returns
- true on success
-
false on failure
Implements openvpn::RandomAPI.
Definition at line 81 of file rand.hpp.
◆ rndbytes()
int openvpn::MbedTLSRandom::rndbytes |
( |
unsigned char * |
buf, |
|
|
size_t |
size |
|
) |
| |
|
inlineprivate |
◆ ctx
mbedtls_ctr_drbg_context openvpn::MbedTLSRandom::ctx |
|
private |
◆ entropy
The documentation for this class was generated from the following file: