Passwordfile library 5.1.0
C++ library to read/write passwords from/to encrypted files
Loading...
Searching...
No Matches
opensslrandomdevice.cpp
Go to the documentation of this file.
2
4
5#include <c++utilities/conversion/binaryconversion.h>
6
7#include <openssl/err.h>
8#include <openssl/rand.h>
9
10#include <string>
11
12using namespace CppUtilities;
13
14namespace Util {
15
20
27
32{
33 unsigned char buf[4];
34 if (RAND_bytes(buf, sizeof(buf))) {
35 return LE::toUInt32(reinterpret_cast<char *>(buf));
36 }
37
38 // handle error case
39 std::string errorMsg;
40 while (unsigned long errorCode = ERR_get_error()) {
41 if (!errorMsg.empty()) {
42 errorMsg += '\n';
43 }
44 errorMsg += ERR_error_string(errorCode, nullptr);
45 }
46 throw Io::CryptoException(std::move(errorMsg));
47}
48
53{
54 return RAND_status();
55}
56} // namespace Util
The exception that is thrown when an encryption/decryption error occurs.
result_type operator()() const
Generates a new random number.
bool status() const
Returns the status.
OpenSslRandomDevice()
Constructs a new random device.
Contains utility classes and functions.
Definition openssl.h:17