#include "magx_keyGenerator.h"
#include "magx_UnitComposer.h"
#include "magx_Encryptor.h"
#include "math.h"
String MeterID="24217303072";
String s_unit;
float units=0;
String plainText="";
String cipherText="";
void setup() {
Serial.begin(9600);
}
void loop() {
Enc_method();
}
String keyArray[3];
void Enc_method(){
int key=random(1,9999);
Serial.println(key);
Serial.println(F("Enter Amount of Units prescribed"));
float amt=Input().toFloat();
units=amt;
Serial.println(units);
String s_unit=unitComposer(units);
Serial.print(" compose units :");
Serial.println(s_unit);
String formattedKey=keyComposer(key);
Serial.print(" s_key:");
Serial.println(formattedKey);
plainText=MeterID+s_unit;
Serial.print(" plaintext:");
Serial.println( plainText);
Serial.println("--------------");
// for 3DES
// 3DES KEYS
for (int i=0;i<3;i++){
keyArray[i]=keyGenerated(key);
key=keyArray[i].substring(0,4).toInt();
Serial.print(keyArray[i]);
Serial.print("\n");
}
Serial.println("--------------");
cipherText=TripleDES_Encryption(plainText);
Serial.print(F("Encrypted text is : "));
Serial.println(cipherText+formattedKey);
}
String TripleDES_Encryption(String plain){
return processDES(processDES(processDES(plain,keyArray[0],false),keyArray[1],true),keyArray[2],false);
}