62 lines
1.2 KiB
C++
62 lines
1.2 KiB
C++
#ifndef GCRYPTCLI_CONFIGURATION_H
|
|
#define GCRYPTCLI_CONFIGURATION_H
|
|
|
|
#include <string>
|
|
|
|
class Configuration {
|
|
public:
|
|
static enum class INPUT_FROM {
|
|
STDIN,
|
|
FILE,
|
|
PARAMETER
|
|
} inputFrom;
|
|
|
|
static enum class OUTPUT_TO {
|
|
STDOUT,
|
|
FILE
|
|
} outputTo;
|
|
|
|
static enum class IOBASE_FORMAT {
|
|
BASE_BYTES,
|
|
BASE_2,
|
|
BASE_8,
|
|
BASE_10,
|
|
BASE_16,
|
|
BASE_64,
|
|
BASE_UWU,
|
|
BASE_UGH
|
|
}
|
|
formatIn,
|
|
formatOut;
|
|
|
|
static std::string inputFilename;
|
|
static std::string outputFilename;
|
|
|
|
static enum class MODULE {
|
|
ENCRYPTION,
|
|
DECRYPTION,
|
|
HASH,
|
|
GENERATE_KEY
|
|
} activeModule;
|
|
|
|
//! Will analyze the supplied cli parameters,
|
|
//! and decide what the configuration will be.
|
|
static void Parse();
|
|
|
|
private:
|
|
static void DecideInputFrom();
|
|
static void DecideOutputTo();
|
|
static void DecideCiphertextFormat();
|
|
static void MapCiphertextFormatToIOBases();
|
|
static void DecideModule();
|
|
|
|
// This is just an intermediary value, used between methods
|
|
static IOBASE_FORMAT ciphertextFormat;
|
|
|
|
// No instanciation! >:(
|
|
Configuration() {};
|
|
};
|
|
|
|
#endif
|
|
|