Leosac
0.8.0
Open Source Access Control
Random.hpp
Go to the documentation of this file.
1
/*
2
Copyright (C) 2014-2016 Leosac
3
4
This file is part of Leosac.
5
6
Leosac is free software: you can redistribute it and/or modify
7
it under the terms of the GNU Affero General Public License as published by
8
the Free Software Foundation, either version 3 of the License, or
9
(at your option) any later version.
10
11
Leosac is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU Affero General Public License for more details.
15
16
You should have received a copy of the GNU Affero General Public License
17
along with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#pragma once
21
22
#include <cstdint>
23
#include <mutex>
24
#include <vector>
25
26
using
ByteVector
= std::vector<uint8_t>;
27
28
class
Random
29
{
30
public
:
37
static
ByteVector
GetBytes
(
size_t
n);
38
42
static
std::string
GetASCII
(
size_t
n);
43
44
private
:
48
static
std::mutex
mutex_
;
49
};
Random::mutex_
static std::mutex mutex_
OpenSSL's random number generation is not thread-safe.
Definition:
Random.hpp:48
ByteVector
std::vector< uint8_t > ByteVector
Definition:
Random.hpp:26
Random
Definition:
Random.hpp:28
Random::GetBytes
static ByteVector GetBytes(size_t n)
Generate n random bytes.
Definition:
Random.cpp:29
Random::GetASCII
static std::string GetASCII(size_t n)
Return a random ASCII string.
Definition:
Random.cpp:41
src
tools
scrypt
Random.hpp
Generated on Tue Mar 22 2022 10:48:32 for Leosac by
1.8.17