Encrypted Data Set 101


Topics:

Overview
Conditional Directives
Constants
Type Definitions
Data Members
Functions


Overview

The EDS (Encrypted Data Set) class is used to generate encrypted character strings. An encrypted string is a numerical array derived from an encryption table. Each array element represents discrete characters in the string and can only be decoded by matching encryption tables.

EDS version 101 generates platform dependent randomly encrypted data sets and provides methods to read and write encrypted data sets. The edsString class uses a static encryption table by default and also allows dynamic encryption tables to be used at run-time.


Conditional Directives

__USE_EDS_TEST_FUNCTIONS__ - Conditions directive used to enable EDS test functions.


Constants

const unsigned long edsRandomSeed = 123494; // Default random seed
const unsigned edsTableSize = 256;          // Size of EDS tables
const unsigned edsMaxLine = 255;            // Max chars per line
const edsWORD edsEOT = 0x0000;              // End of text marker
const double edsVersionNumber = 4000.101;   // Current version number


Type Definitions

edsWORD - Data type used for encrypted characters.


Public Data Members

edsWORD edsString::eds_table[edsTableSize] - EDS string dynamic table.


Functions

edsString::edsString()
edsString::~edsString()
edsString::DecryptString()
edsString::EncryptString()
edsString::GenRandomNumber()
edsString::InitDynamicTable()
edsString::LoadStaticTable()
edsString::TestDynamicTable()
edsString::edsCopy()
edsPrintStaticEncryptionTable()
edsTestStaticEncryptionTable()

edsString::edsString() - Class constructor used to construct an edsString object and load the static encryption table.

edsString::edsString(const edsString &ob) - Class copy constructor.

edsString edsString::operator=(const edsString &ob) - Assignment operator.

virtual edsString::~edsString() - Virtual class destructor.

int edsString::DecryptString(edsWORD val, unsigned char &c) - Public member function used to decrypt the specified value and pass back the character in "c." Returns false if the encrypted value is not found in the encryption table.

edsWORD edsString::EncryptString(unsigned char c) - Public member function that returns an encrypted value for the specified character.

edsWORD edsString::GenRandomNumber() - Public member function used to generate a random pad value. The random number generator is seeded with the current time so that the numbers will be different each time this function is called.

void edsString::InitDynamicTable(unsigned long r_seed = edsRandomSeed) - Public member function used to initialize the dynamic table. The dynamic table allows the application to change the encryption codes as the program is running.

void edsString::LoadStaticTable() - Public member function used to load the static table defined in the "edst101.h" include file.

void edsString::TestDynamicTable() - Protected member function used to test the table for duplicate matches and automatically correct.

void edsString::edsCopy(const edsString &ob) - Protected member function used to copy edsString objects.

int edsPrintStaticEncryptionTable(ostream &stream) - Standalone function used to prints the static encryption table to the specified stream. Returns false if a duplicate table entry exists. NOTE: This function is used for test purposes only.

int edsTestStaticEncryptionTable(ostream &stream) - Standalone function used to test the static encryption table for duplicate entries.


End Of Document