53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
|
/***
|
||
|
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
||
|
|
||
|
File: RandomDef.hpp
|
||
|
Date: 2022-2-6
|
||
|
Author: Reece
|
||
|
***/
|
||
|
#pragma once
|
||
|
|
||
|
namespace Aurora::RNG
|
||
|
{
|
||
|
struct RandomDef
|
||
|
{
|
||
|
bool secure;
|
||
|
AuOptional<AuUInt32> seed;
|
||
|
AuOptional<AuUInt64> seed64;
|
||
|
AuOptional<AuArray<AuUInt8, 64>> seedMassive;
|
||
|
|
||
|
inline auline void SetSeed(AuUInt32 seed)
|
||
|
{
|
||
|
Reset();
|
||
|
this->seed = seed;
|
||
|
this->secure = false;
|
||
|
}
|
||
|
|
||
|
inline auline void SetSeed64(AuUInt64 seed)
|
||
|
{
|
||
|
Reset();
|
||
|
this->seed64 = seed;
|
||
|
this->secure = false;
|
||
|
}
|
||
|
|
||
|
inline auline void SetMassiveSeed(const AuArray<AuUInt8, 64> &seed)
|
||
|
{
|
||
|
Reset();
|
||
|
this->seedMassive = seed;
|
||
|
this->secure = false;
|
||
|
}
|
||
|
|
||
|
inline auline void SetCSRNG()
|
||
|
{
|
||
|
this->secure = true;
|
||
|
Reset();
|
||
|
}
|
||
|
|
||
|
inline auline void Reset()
|
||
|
{
|
||
|
this->seed.reset();
|
||
|
this->seed64.reset();
|
||
|
this->seedMassive.reset();
|
||
|
}
|
||
|
};
|
||
|
}
|