forked from nique_372/MQLArticles
75 lines
2.3 KiB
MQL5
75 lines
2.3 KiB
MQL5
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| Repro.mq5 |
|
||
|
|
//| Copyright 2026, Niquel Mendoza |
|
||
|
|
//| https://www.mql5.com |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
#property copyright "Copyright 2026, Niquel Mendoza"
|
||
|
|
#property link "https://www.mql5.com"
|
||
|
|
#property version "1.00"
|
||
|
|
#property strict
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
namespace TSN
|
||
|
|
{
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
class CFernet
|
||
|
|
{
|
||
|
|
private:
|
||
|
|
uchar hmac[16];
|
||
|
|
uchar aes[16];
|
||
|
|
|
||
|
|
public:
|
||
|
|
CFernet(void) {}
|
||
|
|
~CFernet(void) {}
|
||
|
|
|
||
|
|
//---
|
||
|
|
void PrintData();
|
||
|
|
template <typename TCryptoRandomFunc>
|
||
|
|
void AutoKey();
|
||
|
|
};
|
||
|
|
|
||
|
|
template <typename TCryptoRandomFunc>
|
||
|
|
void CFernet::AutoKey() // 'CFernet' - struct undefined Repro.mq5 36 6
|
||
|
|
{
|
||
|
|
uchar key[32];
|
||
|
|
TCryptoRandomFunc::Fill(key, 32, 0);
|
||
|
|
ArrayCopy(hmac, key, 0, 0, 16);
|
||
|
|
ArrayCopy(aes, key, 0, 16, 16);
|
||
|
|
}
|
||
|
|
|
||
|
|
void CFernet::PrintData(void)
|
||
|
|
{
|
||
|
|
ArrayPrint(hmac, 1, "|");
|
||
|
|
ArrayPrint(aes, 1, "|");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
class CFiller
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
CFiller(void) {}
|
||
|
|
~CFiller(void) {}
|
||
|
|
|
||
|
|
static void Fill(uchar& out[], int oult, int o_s = 0)
|
||
|
|
{
|
||
|
|
ArrayFill(out, o_s, oult, 0);
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
void OnStart(void)
|
||
|
|
{
|
||
|
|
TSN::CFernet fernet;
|
||
|
|
fernet.AutoKey<CFiller>(); //
|
||
|
|
fernet.PrintData();
|
||
|
|
}
|
||
|
|
//+------------------------------------------------------------------+
|