AusweisApp
Lade ...
Suche ...
Keine Treffer
Randomizer.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include <QList>
12#include <QUuid>
13
14#include <random>
15
16class test_Randomizer;
17
18namespace governikus
19{
20
22{
25
26 private:
27 template<typename T = std::mt19937_64::result_type, typename U = uchar> struct UniversalBuffer
28 {
29 U data[sizeof(T)] = {};
30
31 T get()
32 {
33#if __cpp_lib_bit_cast >= 201806
34 return std::bit_cast<T>(data);
35
36#else
37 T number;
38 memcpy(&number, &data, sizeof(T));
39 return number;
40
41#endif
42 }
43
44
45 void set(T pNumber)
46 {
47 memcpy(&data, &pNumber, sizeof(T));
48 }
49
50
51 static_assert(sizeof(T) == sizeof(data));
52 };
53
54 std::mt19937_64 mGenerator;
55 bool mSecureRandom;
56
57 template<typename T> static QList<T> getEntropy();
58 template<typename T> static QList<T> getEntropyWin();
59 template<typename T> static QList<T> getEntropyUnixoid();
60 template<typename T> static QList<T> getEntropyApple();
61
62 protected:
63 Randomizer();
64 ~Randomizer() = default;
65
66 public:
68
69 [[nodiscard]] std::mt19937_64& getGenerator();
70 [[nodiscard]] bool isSecureRandom() const;
71
73
74};
75
76} // namespace governikus
Definition Randomizer.h:22
friend class ::test_Randomizer
Definition Randomizer.h:24
Randomizer()
Definition Randomizer.cpp:142
QUuid createUuid()
Definition Randomizer.cpp:171
bool isSecureRandom() const
Definition Randomizer.cpp:165
std::mt19937_64 & getGenerator()
Definition Randomizer.cpp:159
static Randomizer & getInstance()
#define T(v)
Definition http_parser.cpp:237
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114